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
+intero
Enables intero; a comprehensive, stack-based development environment for Haskell.+dante
Enables dante; a fork of intero aimed at lightweightedness. It doesn't depend onstack
, supports bothcabal
-only andstack
projects, but lacks eldoc support.+lsp
Enables lsp-haskell (this requires the:tools lsp
to 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
,ghc
andghc-mod
- LSP users need the
haskell-ide-engine
LSP server - All users will need the
hoogle
package
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-mod
stack install ghc-mod # or cabal install ghc-mod
-
hoogle
cabal 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-config
file in your project may cause ghc-mod to not work.