This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+lang/idris
syl20bnr ebe4c60264 Revert "Defer packages by default using use-package-always-defer"
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.

The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
2018-03-03 23:40:10 -05:00
..
img Rename the idris-lang layer to idris 2015-09-22 11:08:22 +02:00
packages.el Revert "Defer packages by default using use-package-always-defer" 2018-03-03 23:40:10 -05:00
README.org Fix doc for chinese, transmission, d, command-log and idris layer 2018-01-19 19:41:40 +01:00

Idris layer

/TakeV/spacemacs/media/commit/5d830fca43bf22799f4367bb92d36c6882df968f/layers/+lang/idris/img/idris.png

Description

This layer adds support for the Idris language to Spacemacs.

Features:

  • Syntax highlighting
  • Syntax checking via flycheck
  • Integration of the Idris REPL
  • Integration of the Idris build system

Install

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add idris to the existing dotspacemacs-configuration-layers list in this file.

Idris

Idris can be installed using Haskell's cabal:

cabal install idris

Binaries are also available for some platforms at https://www.idris-lang.org/download/

Key bindings

Shorthands

Several (but not all) of the evil-leader shorthands that idris-mode provides are reproduced under the local leader.

Key Binding Description
SPC m c Case split the pattern variable under point, or make it into a case expression.
SPC m d Create an initial pattern match clause for a type declaration.
SPC m l Extract lemma from hole
SPC m p Attempt to solve a metavariable automatically.
SPC m r Load current buffer into Idris.
SPC m t Get the type for the identifier under point.
SPC m w Add a with block for the pattern-match clause under point.

Interactive editing

Key Binding Description
SPC m i a Attempt to solve a metavariable automatically.
SPC m i c Case split the pattern variable under point, or make it into a case expression.
SPC m i e Extract a metavariable or provisional definition name to an explicit top level definition.
SPC m i m Add missing pattern-match cases to an existing definition.
SPC m i r Refine by name, without recursive proof search.
SPC m i s Create an initial pattern match clause for a type declaration.
SPC m i w Add a with block for the pattern-match clause under point.

Documentation

Key Binding Description
SPC m h a Search the documentation for a string.
SPC m h d Search the documentation for the name under point.
SPC m h s Search the documentation regarding a particular type.
SPC m h t Get the type for the identifier under point.

REPL

Key Binding Description
SPC m s b Load the current buffer into Idris.
SPC m s B Load the current buffer into Idris and switch to REPL in insert state
SPC m s i Start Idris inferior process
SPC m s n Extend the region to be loaded one line at a time.
SPC m s N Extend the region to be loaded one line at a time and switch to REPL in insert state
SPC m s p Contract the region to be loaded one line at a time
SPC m s P Contract the region to be loaded one line at a time and switch to REPL in insert state
SPC m s s Switch to REPL buffer
SPC m s q Quit the Idris process

Active term manipulations

Key Binding Description
SPC m m c Show the core language for the term at point.
SPC m m i Show implicits for the term at point.
SPC m m h Hide implicits for the term at point.
SPC m m n Normalize the term at point.

Build system

Key Binding Description
SPC m b c Build the package.
SPC m b C Clean the package, removing .ibc files
SPC m b i Install the package to the user's repository, building first if necessary.
SPC m b p Open package file.

When inside a package file, you can insert a field with SPC m f.