ElixirLS 插件无反应,90% 是因 Erlang(≥25.0)或 Elixir(≥1.14)未正确安装或未被识别;需验证 erl/elixir 命令可用、VSCode 打开含 mix.exs 的根目录、.eex/.leex 文件关联为 eelixir。

ElixirLS 插件装了但没反应,90% 是 Erlang/Elixir 本身没跑通,不是插件问题。
确认 erlang 和 elixir 命令在终端可用
VSCode 不运行 Elixir,ElixirLS 是个语言服务器,它完全依赖你系统里已安装的 erl 和 elixir 可执行文件。插件启动失败时,第一件事永远是打开终端验证:
- 运行
erl -version,必须输出类似Erlang/OTP 25的信息(≥25.0是硬性要求) - 运行
elixir --version,必须输出Elixir 1.14或更高(≥1.14) - Mac 用户用
asdf管理版本时,确保当前 shell 已激活对应版本:asdf current erlang和asdf current elixir要有输出,且路径指向asdf/shims下的可执行文件 - Windows 用户用 Chocolatey 安装后,检查
PATH是否含choco install写入的路径,erl命令必须存在(不是werl.exe)
任一命令报 command not found,ElixirLS 启动日志里必然出现 Failed to start language server,此时装再多个插件也没用。
只装 ElixirLS 官方扩展,别碰第三方打包版
VSCode 商店搜 “ElixirLS”,认准作者是 Jake Beacher、GitHub 仓库为 elixir-lsp/elixir-ls 的那个。名字必须是 ElixirLS: Elixir support and debugger。
- 别搜
elixirvscode或vscode-elixir-ls—— 这些是旧版或非官方打包,调试支持缺失、路径硬编码、不更新 - 安装完必须重启 VSCode,否则插件进程不加载,右下角状态栏不会显示
ElixirLS ready - 首次打开
.ex文件时,系统可能弹窗提示“运行未签名的扩展”,点Allow,否则 macOS / Windows 会拦截进程,状态栏显示ElixirLS: not connected
装完后打开一个 .ex 文件,看右下角是否显示 Elixir,再试试 Ctrl+Click 跳转函数定义 —— 能跳就是通了,不能跳先回上一步查环境。
Phoenix 项目必须打开根目录,且 mix.exs 存在
ElixirLS 不是全局生效的,它只在检测到 mix.exs 的文件夹里才启动完整服务。常见失效场景:
- 你在
lib/my_app_web/controllers目录下用code .打开 VSCode —— 没有mix.exs,补全、跳转、hover 提示全部降级 - Umbrella 项目打开了子应用目录(如
apps/my_app),而不是顶层根目录(含mix.exs)—— 跨应用调用无法解析 - 手动建空文件夹写了个
mix.exs,但缺.formatter.exs或config/结构 ——mix format按钮灰掉,ElixirLS 加载时卡在Starting ElixirLS…
正确做法:进终端,cd 到含 mix.exs 的目录,再执行 code .。Phoenix 项目还要确保已运行过 mix deps.get,否则依赖模块加载超时,hover 类型提示为空。
让 .eex/.leex 文件获得 Elixir 语法支持
VSCode 默认把 .eex 当 HTML 处理,导致嵌入式表达式 不高亮、不补全、无法跳转到控制器函数。必须手动关联文件类型:
- 按
Cmd+Shift+P(macOS)或Ctrl+Shift+P(Win/Linux),输入Preferences: Configure File Association - 输
*.eex→ 回车 → 选eelixir(不是html,也不是eex) - 重复操作,对
*.leex和*.html.eex同样绑定到eelixir - 关掉再重开一个
.eex文件,左下角状态栏应显示eelixir,且中的@user能 hover 看类型
注意:有些教程写成 "files.associations": {"*.eex": "html"},这是错的 —— 那只会强化 HTML 解析,彻底关闭 Elixir 支持。
最常被忽略的是 mix.exs 所在目录层级和文件类型绑定这两处。很多人反复重装插件,其实只是 VSCode 没打开对地方,或者模板文件根本没被识别成 Elixir 代码。


















