elm.md

 1---
 2title: Elm
 3description: "Configure Elm language support in Zed, including language servers, formatting, and debugging."
 4---
 5
 6# Elm
 7
 8Elm support is available through the [Elm extension](https://github.com/zed-extensions/elm).
 9
10- Tree-sitter: [elm-tooling/tree-sitter-elm](https://github.com/elm-tooling/tree-sitter-elm)
11- Language Server: [elm-tooling/elm-language-server](https://github.com/elm-tooling/elm-language-server)
12
13## Setup
14
15Zed support for Elm requires installation of `elm`, `elm-format`, and `elm-review`.
16
171. [Install Elm](https://guide.elm-lang.org/install/elm.html) (or run `brew install elm` on macOS).
182. Install `elm-review` to support code linting:
19   ```sh
20   npm install elm-review --save-dev
21   ```
223. Install `elm-format` to support automatic formatting
23   ```sh
24   npm install -g elm-format
25   ```
26
27## Configuring `elm-language-server`
28
29Elm language server can be configured in your `settings.json`, e.g.:
30
31```json [settings]
32{
33  "lsp": {
34    "elm-language-server": {
35      "initialization_options": {
36        "disableElmLSDiagnostics": true,
37        "onlyUpdateDiagnosticsOnSave": false,
38        "elmReviewDiagnostics": "warning"
39      }
40    }
41  }
42}
43```
44
45`elm-format`, `elm-review` and `elm` need to be installed and made available in the environment or configured in the settings. See the [full list of server settings here](https://github.com/elm-tooling/elm-language-server?tab=readme-ov-file#server-settings).