I'm very glad to hear this, huge thanks for taking the time to work on this!One question: why does the haskell LSP require a separate plugin? I thought LSP was meant to not require any editor plugins to use a different backend?Alan & Kim Zimmerman <alan.zimm@gmail.com> schrieb am Sa., 29. Apr. 2017 um 18:43 Uhr:______________________________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 _________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell- cafe
Only members subscribed via the mailman list are allowed to post.