[Haskell-cafe] State of Haskell IDE Engine

Alan & Kim Zimmerman alan.zimm at gmail.com
Sat Apr 29 21:42:43 UTC 2017

It needs a plugin at the IDE to tell it that there is a language server,
and how to start it.

I was hoping that could be done by configuration, but it appears not.

Also, support for registering server-specific commands (such as HaRe
refactorings) is still immature.

Hopefully this will improve in future, there are some issues under
discussion for it[1]


[1] https://github.com/Microsoft/language-server-protocol/issues/61

On 29 April 2017 at 23:34, Benno Fünfstück <benno.fuenfstueck at gmail.com>

> 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 at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170429/db36d406/attachment.html>

More information about the Haskell-Cafe mailing list