/haskell-ide-chart

Haskell state of editor/IDE support

Creative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

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:

  1. native support (probably minimal)
  2. via main plug-in
  3. 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 like
    case ___ 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