A language server implementation for the Elm programming language providing IDE features like diagnostics, formatting, and code navigation.
elm-language-server is a language server implementation for the Elm programming language that provides IDE-like features such as diagnostics, code formatting, completions, and navigation. It integrates Elm's compiler and tooling to enhance developer productivity within supported code editors.
Elm developers using editors like VSCode, Vim, Emacs, or Sublime who want enhanced code intelligence and tooling integration.
It offers a unified, editor-agnostic solution for Elm development with deep integration of Elm's ecosystem, including elm-format and elm-test, reducing setup complexity and improving the coding experience.
Language server implementation for Elm
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Seamlessly integrates Elm's core tools like the compiler, elm-test, and elm-format for real-time diagnostics and formatting, providing a unified development experience as highlighted in the features table.
Supports a wide range of editors including VSCode, Vim, Emacs, and Sublime with detailed configuration guides, making it accessible for diverse developer preferences.
Offers features like linked editing, workspace symbols, and selection range navigation, enhancing productivity beyond basic completions and hover documentation.
Automatically finds entrypoints from elm.json and requires no initial setup for basic usage, reducing onboarding time as stated in the configuration section.
Feature support varies across editors; for example, linked editing is unavailable in Vim CoC and ALE, and code lenses are missing in some setups, as shown in the editor support table.
Requires separate installation and management of elm, elm-test, elm-format, and optionally elm-review, adding setup complexity and potential version compatibility issues.
Only supports Elm 0.19 and newer versions, excluding projects stuck on older Elm releases, which may limit adoption in legacy codebases.