Elm Language Server 无法与 Neovim 配合使用求助
解决elmls与Neovim LSP配合故障的方案
问题核心
从LSP日志可定位两个关键问题:
- Node.js的Fetch API实验性警告(仅环境提示,不影响核心功能)
- 无法解析
tree-sitter.wasm的本地路径,这是LSP失效的直接原因
修复步骤
1. 升级Node.js版本
低版本Node.js(低于18.x)中Fetch API为实验特性,且对本地文件URL的处理逻辑与web-tree-sitter不兼容:
- 安装Node.js 18.x及以上LTS版本
- 验证版本:执行
node --version确认
2. 重新安装elm-language-server
nvim-lspinstaller安装过程中可能出现文件损坏或路径配置异常:
- 在Neovim中执行
:LspUninstall elmls卸载现有服务 - 执行
:LspInstall elmls重新安装 - 重启Neovim后测试LSP功能
3. 调整elmls配置(前两步无效时尝试)
手动指定web-tree-sitter的加载路径,避免URL解析错误:
lspconfig.elmls.setup { root_dir = require "lspconfig.util".root_pattern("elm.json","git"), cmd = { "node", "--no-warnings", "/Users/bokutotu/.local/share/nvim/lsp_servers/elmls/node_modules/@elm-tooling/elm-language-server/lib/server.js", "--stdio" }, init_options = { elmPath = "elm", elmFormatPath = "elm-format", elmTestPath = "elm-test", treeSitterWasmPath = "file:///Users/bokutotu/.local/share/nvim/lsp_servers/elmls/node_modules/@elm-tooling/elm-language-server/node_modules/web-tree-sitter/tree-sitter.wasm" } }
4. 验证本地依赖完整性
检查tree-sitter.wasm文件是否存在:
ls /Users/bokutotu/.local/share/nvim/lsp_servers/elmls/node_modules/@elm-tooling/elm-language-server/node_modules/web-tree-sitter/tree-sitter.wasm
若文件缺失,手动安装依赖:
cd /Users/bokutotu/.local/share/nvim/lsp_servers/elmls/node_modules/@elm-tooling/elm-language-server npm install web-tree-sitter
内容的提问来源于stack exchange,提问作者musako
相关产品推荐
相关产品推荐

