配置 Vim/Neovim ALE 插件以支持 JavaScript 文件中的 :ALEGoToDefinition

Fal*_*tes 8 vim vim-plugin language-server-protocol

我使用 vim-plug 为 Vim安装了ALE插件:

Plug 'dense-analysis/ale'
Run Code Online (Sandbox Code Playgroud)

该插件似乎已正确安装。例如,我可以使用 ALE 使用 Prettier 自动格式化文件。但我似乎无法得到任何使用语言服务器工作的东西。

例如,在以下 JavaScript 文件中,将光标add放在第 5 行的名称上并使用该:ALEGoToDefinition命令无效。

Plug 'dense-analysis/ale'
Run Code Online (Sandbox Code Playgroud)

我真的很努力地阅读文档。如果 LSP 服务器不提供跳转到的位置,ALE 帮助文件说“ALE 将不做任何事情”。那似乎是我的问题。但是GitHub 上ALE 文档也说“ALE 与几乎所有 JavaScript 工具都很好地集成在一起,大多数事情应该无需任何配置即可运行。”

我肯定错过了什么。除了安装 ALE,是否需要启用使用语言服务器的功能?我应该在我的机器上全局安装某种语言服务器吗?

Fal*_*tes 7

Reddit 上的用户toupeira为我回答了这个问题。在撰写本文时,ALE 支持的唯一 JavaScript 语言服务器是 tsserver。它随 TypeScript 一起提供。为了启用 ALE 的语言服务器功能,我需要全局安装 typescript 包。

npm install -g typescript
Run Code Online (Sandbox Code Playgroud)

我不需要手动启动服务器。ALE 似乎解决了这个问题。

唯一的另一个要求是 tsserver 作为 JavaScript“linter”启用。它是默认的。运行:AleInfo以查看为当前文件启用了哪些 linter。