diff --git a/docs/layers/lang/haskell.md b/docs/layers/lang/haskell.md index 3cdf81a25..f671649f9 100644 --- a/docs/layers/lang/haskell.md +++ b/docs/layers/lang/haskell.md @@ -10,12 +10,19 @@ description: "Haskell language support for SpaceVim, includes code completion, s - [Description](#description) - [Install](#install) - [Features](#features) +- [Key bindings](#key-bindings) + - [Running current script](#running-current-script) + - [Inferior REPL process](#inferior-repl-process) ## Description -This layer is for Haskell development. +This layer is for Haskell development. This layer includes following plugins: + +- haskell.vim: syntax highlight and indent +- vim-syntax-shakespeare: syntax files for the shakespeare templating languages +- neco-ghc: completion plugin for Haskell ## Install @@ -26,11 +33,31 @@ To use this configuration layer, update custom configuration file with: name = "lang#haskell" ``` +After updating configuration file, restart SpaceVim and run `:SPInstall`. + ## Features -- auto-completion +- code completion - syntax checking - goto definition - refernce finder - language server protocol (need lsp layer) +## Key bindings + +### Running current script + +To running a haskell file, you can press `SPC l r` to run current file +without loss focus, and the result will be shown in a runner buffer. + +### Inferior REPL process + +Start a `ghci` inferior REPL process with `SPC l s i`. + +Send code to inferior process commands: + +| Key Bindings | Descriptions | +| ------------ | ------------------------------------------------ | +| `SPC l s b` | send buffer and keep code buffer focused | +| `SPC l s l` | send line and keep code buffer focused | +| `SPC l s s` | send selection text and keep code buffer focused |