State of Haskell editor/IDE support
This chart describes the support level of each Haskell editor/IDE plug-in combination.
In most cases there is a main plug-in which acts as a base for the provided features.
Each known plug-in has an associated link and tooltip with its name.
The chart (with a link to each plug-in)
IDE | Backend | Easy to install | Syntax highlight | Code Completion | Error Reporting | Lint | Code Format | Goto Def | Find Usages | Stepwise Debugger | Doc. tooltips | Snippets | Hoogle | REPL Integration | Build Command |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Atom 「ide-haskell [gh]」 |
|||||||||||||||
Emacs 「Intero [gh]」 | intero | ||||||||||||||
Haskell for Mac | |||||||||||||||
Intellij 「HaskForce [gh]」 | |||||||||||||||
Intellij 「intellij‑haskell [gh]」 |
|||||||||||||||
Leksah | |||||||||||||||
Vim | |||||||||||||||
VSCode 「GHC Simple [gh]」 | ghci | ||||||||||||||
VSCode 「Haskelly [gh]」 | intero | ||||||||||||||
VSCode 「Haskero [gl]」 | intero | ||||||||||||||
Spacemacs | |||||||||||||||
Sublime 「SublimeHaskell [gh]」 |
Meaning of each level
Symbol | Support Level |
---|---|
? | Unknown, support is uncertain |
Absent, you are on your own | |
Immature, only for early-adopters | |
Mature, suitable for most programmers | |
The best™ possible experience |
Notes:
- native support (probably minimal)
- via main plug-in
- this plug-in needs special config and/or system deps, refer to its documentation
Features
- Backend - The engine which makes some processing behind scenes to make most of the features available
- Easy to install - Is this setup easy to reproduce? Better when it is one-click and it just works, less when it needs special config, compile by hand, etc
- Syntax highlight
- Code Completion
- Error Reporting
- Lint
- Code Format
- Goto Def
- Find Usages
- Stepwise Debugger
- Doc. tooltips
- Snippets - Predefined and customizable templates for pieces of code you write often. For example, if you write
case
, an editor might provide a completion likecase ___ of __ -> ___
- Hoogle
- REPL Integration - Be able to load/reload a file to e.g. ghci and provide interaction. Autocompletion and syntax highlighting are also welcomed.
- Build Command - Project compilation cycle can be started using the editor preferred way