[Haskell-cafe] State of Haskell IDE Engine

Alan & Kim Zimmerman alan.zimm at gmail.com
Sat Apr 29 16:40:41 UTC 2017


Some of you have been wondering what has happened to the
haskell-ide-engine[1],
and whether it may perhaps have died.

Development has resumed, based mainly on the existence of an enabling
technology
in the Language Server Protocol[2] which is starting to have implementations
for IDEs and Languages[3].

It was always the intention to leverage off common infrastructure at the IDE
side, and this protocol is making that possible.

The current state for haskell-ide-engine is that support is provided in
master[4], which has been tested in emacs using[5] (and [6] until the
branch is
merged).

It is also tested against vscode[7] using the vscode-hie-server plugin[8].

Current features include

  - diagnostics provided via hlint and ghc-mod (using flycheck in emacs)
  - hover support giving the type under the cursor
  - ability to apply hlint suggestions as codeActions, via apply-refact
  - HaRe refactorings exposed in the emacs version. The vscode plugin lags
in
    this, my skills are limited

There is a lot of development happening on the emacs lsp-mode, as it
benefits
many languages, not just haskell, and so developers from other languages are
also contributing.

The LSP support for haskell-ide-engine is supplied by a separate library[9]
which is being used in at least 3 other LSP servers to my knowledge. These
will
be made public when/if it suits their creators to do so.

The general plan going forward is to focus HIE on being an LSP server. Other
transports will not be removed, but the driving paradigm will be LSP
support.

The longer term plan is to use this as a platform to drive more
interactivity
back into GHC, starting with exploring incremental parsing driven by the
document change notifications provided in the LSP protocol, and supported in
haskell-lsp[9].

Alan

[1] https://github.com/haskell/haskell-ide-engine/issues/218
[2] https://github.com/Microsoft/language-server-protocol
[3]
https://github.com/Microsoft/language-server-protocol/wiki/Protocol-Implementations
[4] https://github.com/haskell/haskell-ide-engine
[5] https://github.com/alanz/lsp-haskell
[6] https://github.com/alanz/lsp-mode/tree/project-ask
[7] http://code.visualstudio.com/
[8] https://github.com/alanz/vscode-hie-server
[9] https://github.com/alanz/haskell-lsp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170429/d75a8eb4/attachment.html>


More information about the Haskell-Cafe mailing list