These instructions were tested on openSUSE Tumbleweed and openSUSE Leap 15.1. There are some modules left that are not documented yet, but this already improves the sitution for common openSUSE users.
4.7 KiB
lang/haskell
Table of Contents TOC
Description
This module adds Haskell support, powered by either intero (the default), dante or LSP.
- Code completion (
company-ghc) - Look up documentation (
hoogle) - eldoc support (
dante) - REPL (
ghci) - Syntax-checking (
flycheck) - Code navigation (
dante) - Snippets
External resources
Here are a few resources I've found indespensible in my Haskell adventures:
- Learn you a haskell for great good
- Haskell Programming from first principles
- Awesome Haskell: an extensive list of haskell resources
- The Haskell Tool Stack docs
Module Flags
+interoEnables intero; a comprehensive, stack-based development environment for Haskell.+danteEnables dante; a fork of intero aimed at lightweightedness. It doesn't depend onstack, supports bothcabal-only andstackprojects, but lacks eldoc support.+lspEnables lsp-haskell (this requires the:tools lspto be enabled).
Plugins
- haskell-mode
-
+dante -
+intero -
+lsp
Prerequisites
Depending on whether you use Intero, Dante or LSP, your dependencies will differ:
- Intero and LSP users need
stack - Dante users need
cabal,ghcandghc-mod - LSP users need the
haskell-ide-engineLSP server - All users will need the
hooglepackage
Stack
To use Intero, you need stack:
MacOS
brew install haskell-stack
stack setup
Arch Linux
sudo pacman -S stack
# Replace pacaur with your AUR package manager of choice
pacaur -S ncurses5-compat-lib
stack setup
openSUSE
sudo zypper install stack
stack setup
Cabal
To use Dante, you need cabal (the haskell package builder) and ghci (the
compiler, syntax checker & repl):
MacOS
brew install cabal-install ghc
Arch Linux
sudo pacman -S cabal-install ghc
openSUSE
sudo zypper install cabal-install ghc
LSP
You will need stack and git installed.
You will find a comprehensive install guide for haskell-ide-engine on its project page, but here's a TL;DR:
MacOS
haskell-ide-engine must be build and installed manually on MacOS, e.g.
git clone https://github.com/haskell/haskell-ide-engine
cd haskell-ide-engine
make
Arch Linux
haskell-ide-engine-git is available on the AUR
yay -S haskell-ide-engine-git
Haskell packages
You'll need to install the following packages using stack or cabal:
-
(Dante users)
ghc-modstack install ghc-mod # or cabal install ghc-mod -
hooglecabal update cabal install happy haskell-src-exts # ghc-mod/hoogle dependencies cabal ghc-mod hoogle # or stack install ghc-mod stack install hoogle
And ensure the binaries for these packages are in your PATH, e.g.
# place this in your profile file, like ~/.bash_profile or ~/.zshenv
export PATH="~/.local/bin:$PATH"
Configuration
Using the new-style cabal REPL
haskell-mode will typically detect what REPL to run based on your project
(e.g. stack, (old-style) cabal or ghc). If you want the new-style cabal REPL you
must set haskell-process-type manually:
(setq haskell-process-type 'cabal-new-repl)
Troubleshooting
- Stack users: a
dist/setup-configfile in your project may cause ghc-mod to not work.