Haskell library for the Microsoft Language Server Protocol.
An implementation of the types, and basic message server to allow language implementors to support the Language Server Protocol for their specific language.
An example of this is for Haskell via the Haskell IDE Engine, at https://github.com/haskell/haskell-ide-engine
haskell-lsp
Haskell library for the Microsoft Language Server Protocol
Warning: this library and its associated ecosystem is under development at the moment. So do not have high expectations, it is not ready for casual use.
Hacking
To see this library in use you need to install the haskell-ide-engine
git clone https://github.com/haskell/haskell-ide-engine --recursive
cd haskell-ide-engine
stack install
This will put the hie
executable in your path.
Then, run the plugin in vscode:
git clone https://github.com/alanz/vscode-hie-server
cd vscode-hie-server
code .
In vscode, press F5 to run the extension in development mode.
You can see a log from hie
by doing
tail -F /tmp/hie-vscode.log
There are also facilities on the code to send back language-server-protocol log and show events.
It can also be used with emacs, see https://github.com/emacs-lsp/lsp-haskell
Using the example server
stack install :lsp-hello --flag haskell-lsp:demo
will generate a lsp-hello
executable.
Changing the server to be called in the vscode-hie-server
plugin from hie
to lsp-hello
will run the example server instead of hie.
Likewise, changing the executable in lsp-haskell
for emacs.
Useful links
- https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md
Other resource
See #haskell-ide-engine on IRC freenode.