Elm - Zed

# Elm

Elm support is available through the Elm extension.

- Tree-sitter: elm-tooling/tree-sitter-elm
- Language Server: elm-tooling/elm-language-server

## Setup

Zed support for Elm requires installation of `elm`, `elm-format`, and `elm-review`.

1. Install Elm (or run `brew install elm` on macOS).
2. Install `elm-review` to support code linting:

       npm install elm-review --save-dev

3. Install `elm-format` to support automatic formatting

       npm install -g elm-format

## Configuring `elm-language-server`

Elm language server can be configured in your `settings.json`, e.g.:

    {
      "lsp": {
        "elm-language-server": {
          "initialization_options": {
            "disableElmLSDiagnostics": true,
            "onlyUpdateDiagnosticsOnSave": false,
            "elmReviewDiagnostics": "warning"
          }
        }
      }
    }

`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.

## Known Issues

There is an upstream issue with `elm-language-server` incorrectly supporting `linked_edits`. It is recommend you disable that feature in your Zed settings.json with:

      "languages": {
        "Elm": {
          "linked_edits": false
        }
      }