<div dir="ltr">I'm very glad to hear this, huge thanks for taking the time to work on this!<div><br></div><div>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?</div></div><br><div class="gmail_quote"><div dir="ltr">Alan & Kim Zimmerman <<a href="mailto:alan.zimm@gmail.com">alan.zimm@gmail.com</a>> schrieb am Sa., 29. Apr. 2017 um 18:43 Uhr:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Some of you have been wondering what has happened to the haskell-ide-engine[1],<br>and whether it may perhaps have died.<br><br>Development has resumed, based mainly on the existence of an enabling technology<br>in the Language Server Protocol[2] which is starting to have implementations<br>for IDEs and Languages[3].<br><br>It was always the intention to leverage off common infrastructure at the IDE<br>side, and this protocol is making that possible.<br><br>The current state for haskell-ide-engine is that support is provided in<br>master[4], which has been tested in emacs using[5] (and [6] until the branch is<br>merged).<br><br>It is also tested against vscode[7] using the vscode-hie-server plugin[8].<br><br>Current features include<br><br>  - diagnostics provided via hlint and ghc-mod (using flycheck in emacs)<br>  - hover support giving the type under the cursor<br>  - ability to apply hlint suggestions as codeActions, via apply-refact<br>  - HaRe refactorings exposed in the emacs version. The vscode plugin lags in<br>    this, my skills are limited<br><br>There is a lot of development happening on the emacs lsp-mode, as it benefits<br>many languages, not just haskell, and so developers from other languages are<br>also contributing.<br><br>The LSP support for haskell-ide-engine is supplied by a separate library[9]<br>which is being used in at least 3 other LSP servers to my knowledge. These will<br>be made public when/if it suits their creators to do so.<br><br>The general plan going forward is to focus HIE on being an LSP server. Other<br>transports will not be removed, but the driving paradigm will be LSP support.<br><br>The longer term plan is to use this as a platform to drive more interactivity<br>back into GHC, starting with exploring incremental parsing driven by the<br>document change notifications provided in the LSP protocol, and supported in<br>haskell-lsp[9].<br><br>Alan<br><br>[1] <a href="https://github.com/haskell/haskell-ide-engine/issues/218" target="_blank">https://github.com/haskell/haskell-ide-engine/issues/218</a><br>[2] <a href="https://github.com/Microsoft/language-server-protocol" target="_blank">https://github.com/Microsoft/language-server-protocol</a><br>[3] <a href="https://github.com/Microsoft/language-server-protocol/wiki/Protocol-Implementations" target="_blank">https://github.com/Microsoft/language-server-protocol/wiki/Protocol-Implementations</a><br>[4] <a href="https://github.com/haskell/haskell-ide-engine" target="_blank">https://github.com/haskell/haskell-ide-engine</a><br>[5] <a href="https://github.com/alanz/lsp-haskell" target="_blank">https://github.com/alanz/lsp-haskell</a><br>[6] <a href="https://github.com/alanz/lsp-mode/tree/project-ask" target="_blank">https://github.com/alanz/lsp-mode/tree/project-ask</a><br>[7] <a href="http://code.visualstudio.com/" target="_blank">http://code.visualstudio.com/</a><br>[8] <a href="https://github.com/alanz/vscode-hie-server" target="_blank">https://github.com/alanz/vscode-hie-server</a><br>[9] <a href="https://github.com/alanz/haskell-lsp" target="_blank">https://github.com/alanz/haskell-lsp</a><br><br></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>