spacemacs/contrib/lang/haskell/README.md

3.7 KiB

Haskell contribution layer for Spacemacs

logo

This layer adds support for the Haskell language. The layer uses company-ghc for completetion.

This layer is still not fully adapted for Spacemacs, it needs you, Haskell experts, to improve it and make it consistent with the Spacemacs experience.

Install

To use this contribution add it to your ~/.spacemacs

(setq-default dotspacemacs-configuration-layers '(haskell)
  "List of contribution to load."
)

Key bindings

All Haskell specific bindings are prefixed with SPC m

Haskell source code:

Haskell commands:

Top-level commands are prefixed by SPC m:

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m t | gets the type of the identifier under the cursor SPC m i | gets information for the identifier under the cursor SPC m u | finds uses of identifier SPC m g | go to definition or tag SPC m f | format buffer using haskell-stylish

Documentation commands:

Documentation commands are prefixed by SPC m h

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m h d | find or generate Haddock documentation for the identifier under the cursor SPC m h h | do a Hoogle lookup SPC m h y | do a Hayoo lookup

Cabal commands:

Cabal commands are prefixed by SPC m c:

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m c a | cabal actions SPC m c b | build the current cabal project, i.e. invoke cabal build SPC m c c | compile the current project, i.e. invoke ghc SPC m c v | visit the cabal file

Debug commands:

Debug commands are prefixed by SPC m d:

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m d d | start debug process, needs to be run first SPC m d b | insert breakpoint at function SPC m d n | next breakpoint SPC m d N | previous breakpoint SPC m d B | delete breakpoint SPC m d c | continue current process SPC m d a | abandon current process SPC m d r | refresh process buffer

REPL commands:

REPL commands are prefixed by SPC m s:

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m s b | load or reload the current buffer into the REPL SPC m s c | clear the REPL SPC m s s | show the REPL SPC m s S | show and switch to the REPL

Cabal files:

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m d | add a dependency to the project SPC m b | go to benchmark section SPC m e | go to executable section SPC m t | go to test-suite section SPC m m | go to exposed modules SPC m l | go to libary section SPC m n | go to next subsection SPC m p | go to previous subsection SPC m N | go to next section SPC m P | go to previous section SPC m f | find or create source-file under the cursor

TODO