It's very early in development, please keep that in mind
First attempt to write a language server for Elm.
See https://microsoft.github.io/language-server-protocol/specification for a description of the protocol.
If you want to work on more, please reach out and create an issue, before you start working on it.
Conceptual workings of the language server
The editor should start one language server for each Elm project (there may be multiple).
rootPath should be set to the location of the
- On the initialize notification, the language server will copy all files in the project to a temporary directory. This is so that we can handle open files by saving them there. It will then compile all files in the project, to get diagnostics. It will then send diagnostics for all files to the editor.
- When a file is changed in the editor, we change it in our copy, and recompile everything to get new diagnostics.
- elm-compiler-library (which is a version of elm-compiler)
- Code formatted using
Clone the repository and its subrepositories:
git clone https://github.com/elm-tooling/elm-language-server
git submodule update --init --recursiveInstall ghc and dependencies. You need to have stack installed