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/contrib/!lang/idris
..
img
packages.el
README.md

Idris contribution layer for Spacemacs

logo

Table of Contents

Description

This layer adds support for the Idris language.

This layer is in construction, it needs your contributions and bug reports.

Install

Layer

To use this layer, add it to your ~/.spacemacs

(setq-default dotspacemacs-configuration-layers '(idris))

Idris

Idris can be installed using Haskell's cabal:

cabal install idris

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

Key bindings

All Idris specific bindings are prefixed with the major-mode leader SPC m.

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 r | Load current buffer into Idris. SPC m t | Get the type for the identifier under point. SPC m d | Create an initial pattern match clause for a type declaration. SPC m c | Case split the pattern variable under point. SPC m w | Add a with block for the pattern-match clause under point. SPC m p | Attempt to solve a metavariable automatically.

Interactive editing

Interactive editing commands are prefixed by SPC m i.

Key Binding      |                 Description

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

Documentation

Documentation commands are prefixed by SPC m h.

Key Binding      |                 Description

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

File loading

File loading commands are prefixed by SPC m l.

Key Binding      |                 Description

---------------------|------------------------------------------------------------ SPC m l b | Load the current buffer into Idris. SPC m l n | Extend the region to be loaded, if such a region exists, one line at a time. SPC m l p | Contract the region to be loaded, if such a region exists, one line at a time. SPC m l N | Contract the region to be loaded, if such a region exists, one line at a time.

Active term manipulations

Active term manipulations are prefixed by SPC m m.

Key Binding      |                 Description

---------------------|------------------------------------------------------------ SPC m m n | Normalize 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 c | Show the core language for the term at point.

Build system

Commands for ipkg are prefixed by SPC m b.

Key Binding      |                 Description

---------------------|------------------------------------------------------------ SPC m b c | Clean the package, removing .ibc files.` SPC m b b | Build the package. SPC m b i | Install the package to the user's repository, building first if necessary.

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

REPL

You can pop to the corresponding Idris REPL with SPC m s.