Andersbakken/rtags@65113e2a13 -> Andersbakken/rtags@cdff9b47fc Emacs-Kotlin-Mode-Maintainers/kotlin-mode@0e4bafb31d -> Emacs-Kotlin-Mode-Maintainers/kotlin-mode@876cc27dc1 Groovy-Emacs-Modes/groovy-emacs-modes@99eaf70720 -> Groovy-Emacs-Modes/groovy-emacs-modes@84f89b68ec JuliaEditorSupport/julia-emacs@fe6f6f7a80 -> JuliaEditorSupport/julia-emacs@06f6fdb94c NixOS/nix-mode@3cca5b6527 -> NixOS/nix-mode@8e20de5ba7 OVYA/php-cs-fixer@c5b5d8a498 -> OVYA/php-cs-fixer@cc9a3624dc ProofGeneral/PG@bc86736abb -> ProofGeneral/PG@e2b4227e1f Raku/raku-mode@7496ad3a03 -> Raku/raku-mode@eaac071f17 Somelauw/evil-markdown@064fe9b476 -> Somelauw/evil-markdown@8e6cc68af8 StanfordLegion/terra-mode@eab9e59ded -> StanfordLegion/terra-mode@ceef8cae5b amake/flutter.el@960b63576a -> amake/flutter.el@81c524a43c ananthakumaran/tide@ccff099e94 -> ananthakumaran/tide@296c0e0e3a asok/projectile-rails@6a18ada356 -> asok/projectile-rails@30828afbfa beancount/beancount-mode@02fe03ee44 -> beancount/beancount-mode@dbafe6a73d bradyt/dart-mode@43975c9208 -> bradyt/dart-mode@3bac14200f brianc/jade-mode@4dbde92542 -> brianc/jade-mode@111460b056 brotzeit/rustic@6ca73bb3cc -> brotzeit/rustic@804ebfe029 cdominik/cdlatex@614a8d94f6 -> cdominik/cdlatex@f215b70c5c clojure-emacs/clojure-mode@3e426b3a47 -> clojure-emacs/clojure-mode@e1dc7caee7 cython/cython@fae33cf7d4 -> cython/cython@aea4e6b84b dgutov/robe@e1304d123d -> dgutov/robe@fd972e912d emacs-csharp/csharp-mode@093f0f21a9 -> emacs-csharp/csharp-mode@fe8a68e984 emacs-ess/ESS@4fefd0feaa -> emacs-ess/ESS@a7ce81bb76 emacs-geiser/gauche@66e51430bd -> emacs-geiser/gauche@fd52cbaed9 emacs-geiser/geiser@4099dce8f5 -> emacs-geiser/geiser@327ff01e5b emacs-lsp/lsp-metals@ca927e5a83 -> emacs-lsp/lsp-metals@695291761b emacs-php/php-mode@cbf2723264 -> emacs-php/php-mode@535aec8173 emacs-straight/auctex@ea410dce4f -> emacs-straight/auctex@3b0a080ae5 emacs-typescript/typescript.el@1043025d42 -> emacs-typescript/typescript.el@2a58631230 erlang/otp@645ea8110d -> erlang/otp@118cb37bd5 ethereum/emacs-solidity@5f6ef3156f -> ethereum/emacs-solidity@6f7bd1641e factor/factor@b989a860d1 -> factor/factor@7b451bb813 fsharp/emacs-fsharp-mode@93b1fbc31d -> fsharp/emacs-fsharp-mode@c90d762c06 fxbois/web-mode@8ef47935d6 -> fxbois/web-mode@61f057a6ba greghendershott/racket-mode@7f12cb1ff2 -> greghendershott/racket-mode@a879a8d67b haskell/haskell-mode@98ba392236 -> haskell/haskell-mode@8402caa341 hhvm/hack-mode@f9315be699 -> hhvm/hack-mode@4c1c2b0939 idris-hackers/idris-mode@f52ad0b477 -> idris-hackers/idris-mode@3cc9361b4c immerrr/lua-mode@2bd9077dd0 -> immerrr/lua-mode@5a9bee8d5f iyefrat/evil-tex@87445d4d23 -> iyefrat/evil-tex@aa0ddf8e76 jimhourihan/glsl-mode@b071120164 -> jimhourihan/glsl-mode@9b2e5f28e4 joaotavora/sly@41f4d65048 -> joaotavora/sly@540a8c5b9a jrblevin/markdown-mode@359347b2bb -> jrblevin/markdown-mode@862ae8addd jwiegley/emacs-async@9a8cd0c3d5 -> jwiegley/emacs-async@5d365ffc6a liblit/demangle-mode@aaef0bd77a -> liblit/demangle-mode@04f545adab necaris/conda.el@6db0720b6d -> necaris/conda.el@4de6eccda5 ocaml-ppx/ocamlformat@5dd6574d8f -> ocaml-ppx/ocamlformat@22a3707da3 ocaml/dune@75ecfe3421 -> ocaml/dune@4d0a47edd5 ocaml/merlin@5731826810 -> ocaml/merlin@e4791e2298 ocaml/merlin@5731826810 -> ocaml/merlin@e4791e2298 ocaml/tuareg@b59c422759 -> ocaml/tuareg@00faf47a7c pashky/restclient.el@2cc1fd3496 -> pashky/restclient.el@176d9cb655 polymode/polymode@7d1f822f08 -> polymode/polymode@54888d6c15 s-kostyaev/go-gen-test@44c202ac97 -> s-kostyaev/go-gen-test@35df36dcd5 seagle0128/grip-mode@c0ca789903 -> seagle0128/grip-mode@1c82e27bee smihica/emmet-mode@1acb821e01 -> smihica/emmet-mode@6b2e554f7f swift-emacs/swift-mode@1b47a09f1c -> swift-emacs/swift-mode@800efe2910 technomancy/fennel-mode@a908db8696 -> technomancy/fennel-mode@47152970a9 vspinu/company-math@a796053590 -> vspinu/company-math@45778f5731 yoshiki/yaml-mode@3a57058468 -> yoshiki/yaml-mode@63b637f846 ziglang/zig-mode@0babe7ec52 -> ziglang/zig-mode@aba01b6199
lang/haskell
Table of Contents TOC
Description
Adds Haskell support to Doom Emacs.
Maintainers
This module has no dedicated maintainers.
Module Flags
+lsp
Enable LSP support with for haskell-language-server (requires the:tools lsp
module).
Plugins
- haskell-mode
- lsp-haskell (
+lsp
,:tools lsp
)
Prerequisites
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.
Features
This module intergrates 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 |
Configuration
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!
(setq lsp-haskell-formatting-provider "brittany"))