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.
| 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]γ | β | β | πΒ² | π₯Β² | β | π₯Β² | β | π±ΒΉ | β | β | π₯Β² | β | β | π± | β |
| 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
- 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