This module adds Haskell support to Doom Emacs.
- @iyefrat
Become a maintainer?
- +lsp
-
Enable LSP support for
haskell-mode
. Requires doom-module::tools lsp and a langserver (supports haskell-language-server). - +tree-sitter
- Leverages tree-sitter for better syntax highlighting and structural text editing. Requires doom-module::tools tree-sitter.
- doom-package:haskell-mode
- doom-package:lsp-haskell if doom-module:+lsp
No hacks documented for this module.
Enable this module in your doom!
block.
It is recommended to install the haskell tooling using ghcup. Only ghc is needed for basic functionality:
ghcup install ghc
but +lsp
users should also install the language server:
ghcup install hls
Installing cabal or stack as well is recommended, and can be done through
ghcup
.
haskell-mode
provides support for hoogle, which can be installed through
system package manager, cabal, or stack.
haskell-language-server
provides support for hlint, and haskell code
formatters such as brittany, floskell, ormolu, fourmolu, and stylish-haskell,
which can be installed through system package manager, cabal, or stack.
doom-module::editor format by default uses fourmolu to format code when not relying on hls, follow the linked install instructions.
This module’s usage documentation is incomplete. Complete it?
This module integrates the haskell packages into Doom by providing things such as REPL support, project root recognition, etc. It also provide the following keybindings:
Keybinding | Description |
---|---|
<localleader> b | Build the current cabal project |
<localleader> c | Visit the .cabal file of the current buffer |
<localleader> h | Toggle visibility of the form at point |
<localleader> H | hides all top level functions |
This module’s configuration documentation is incomplete. Complete it?
After installing your preferred formatter, make sure to set
lsp-haskell-formatting-provider
to it.
Make sure to configure the lsp to use your perfered formatter, e.g.:
;; ~/.doom.d/config.el
(after! lsp-haskell
(setq lsp-haskell-formatting-provider "brittany"))
There are no known problems with this module. Report one?
This module has no FAQs yet. Ask one?
This module has no appendix yet. Write one?