Elixir

Elixir 支持可通过 Elixir 扩展获得。

选择语言服务器

Elixir 扩展为 expertelixir-lsnext-lslexical 提供语言服务器支持。

elixir-ls 默认启用。

Expert

要切换到 expert,请在您的 settings.json 中添加以下内容

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

Next LS

要切换到 next-ls,请在您的 settings.json 中添加以下内容

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

Lexical

要切换到 lexical,请在您的 settings.json 中添加以下内容

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

设置 elixir-ls

  1. 安装 elixir
brew install elixir
  1. 安装 elixir-ls
brew install elixir-ls
  1. 重启 Zed

如果 elixir-ls 在 elixir 项目中未运行,请通过命令面板操作 zed: open log 检查错误日志。如果您发现错误消息提及:invalid LSP message header "Shall I install Hex? (if running non-interactively, use \"mix local.hex --force\") [Yn],您可能需要安装 Hex。您可以从命令行运行 elixir-ls 并接受提示安装 Hex

使用 Mix 格式化

如果您更喜欢使用 Mix 格式化代码,请在您的 settings.json 文件中使用以下片段将其配置为外部格式化程序。格式化将在文件保存时进行。

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

附加工作区配置选项

您可以通过 settings.json 中的 lsp 设置传递附加的 elixir-ls 工作区配置选项。

以下示例禁用 dialyzer

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

有关更多选项,请参阅 ElixirLS 配置设置

HEEx

Zed 还支持 HEEx 模板。HEEx 是 EEx (Embedded Elixir) 和 HTML 的混合,用于 Phoenix LiveView 应用程序。