Elixir

ElixirのサポートはElixir拡張機能を利用できます。

言語サーバーの選択

Elixir拡張機能はelixir-lsnext-ls、およびlexicalに言語サーバーサポートを提供しています。

elixir-lsは初期設定で有効になっています。

next-lsに切り替えるには、settings.jsonに以下を追加します。

{
  "languages": {
    "Elixir": {
      "language_servers": ["next-ls", "!elixir-ls", "..."]
    }
  }
}

lexicalに切り替えるには、settings.jsonに以下を追加します。

{
  "languages": {
    "Elixir": {
      "language_servers": ["lexical", "!elixir-ls", "..."]
    }
  }
}

elixir-lsの設定

  1. elixirをインストールします。
brew install elixir
  1. elixir-lsをインストールします。
brew install elixir-ls
  1. Zedを再起動します。

elixirプロジェクトでelixir-lsが実行されていない場合は、コマンドパレットアクションzed: open logでエラーログを確認します。次のようなエラーメッセージが表示される場合は、Hexをインストールする必要があります。コマンドラインからelixir-lsを実行し、プロンプトに従ってHexをインストールします。

Mixによるフォーマット

Mixでコードをフォーマットする場合は、settings.jsonファイルで次のスニペットを使用して外部フォーマッターとして構成します。ファイルが保存されるとフォーマットされます。

{
  "languages": {
    "Elixir": {
      "format_on_save": {
        "external": {
          "command": "mix",
          "arguments": ["format", "--stdin-filename", "{buffer_path}", "-"]
        }
      }
    }
  }
}

追加のワークスペース設定オプション(Zed0.128.0が必要です)

settings.jsonのlsp設定でelixir-lsワークスペースの追加設定オプションを渡すことができます。

次の例ではdialyzerを無効にします。

"lsp": {
  "elixir-ls": {
    "settings": {
      "dialyzerEnabled": false
    }
  }
}

ElixirLSの設定で他のオプションを確認してください。