nvim-lspconfig 是一个“仅数据”存储库,为各种 LSP 服务器提供基本的默认 Nvim LSP 客户端配置。
查看所有配置的文档或来自 Nvim 的:help lspconfig-all
。
:help lsp
) 中的错误,请将其报告给 Neovim 核心。 git clone https://github.com/neovim/nvim-lspconfig ~/.config/nvim/pack/nvim/start/nvim-lspconfig
npm i -g pyright
require ' lspconfig ' . pyright . setup {}
:help lspconfig-all
中指定的服务器要求的根标记。 nvim main.py
:checkhealth lsp
查看状态或进行故障排除。阅读:help lspconfig
了解详细信息。请阅读:help lspconfig-all
以获取特定于服务器的详细信息的完整列表。对于不在$PATH
上的服务器(例如jdtls
、 elixirls
),您必须在调用setup()
时手动设置cmd
参数。
当缓冲区附加到 LSP 时,Nvim 设置一些默认选项和映射(请参阅:help lsp-config
)。尤其:
'tagfunc'
和其他标签命令启用“转到定义”功能。'omnifunc'
启用(手动)全向模式完成。对于自动完成,需要自动完成插件。'formatexpr'
gq
启用 LSP 格式化。K
在正常模式下映射到vim.lsp.buf.hover()
。[d
和]d
分别映射到vim.diagnostic.goto_prev()
和vim.diagnostic.goto_next()
。d
映射到vim.diagnostic.open_float()
。可以使用LspAttach
自动命令事件来实现进一步的自定义。如果缓冲区与 LSP 服务器分离,则LspDetach
自动命令事件可用于“清理”映射。有关详细信息和示例,请参阅:h LspAttach
和:h LspDetach
。有关其他 LSP 功能的详细信息,请参见:h lsp-buf
。
通过将参数传递给setup
函数,可以为每个 LSP 服务器提供附加配置选项。有关详细信息,请参阅:h lspconfig-setup
。例子:
local lspconfig = require ( ' lspconfig ' )
lspconfig . rust_analyzer . setup {
-- Server-specific settings. See `:help lspconfig-setup`
settings = {
[ ' rust-analyzer ' ] = {},
},
}
语言服务器无法启动或附加的最常见原因是:
cmd
,并看到语言服务器启动。如果cmd
是可执行文件名称而不是可执行文件的绝对路径,请确保它位于您的路径上。:set ft?
显示文件类型而不是空值。.git
文件夹,但每个服务器都在 lua 文件中定义根配置。请参阅 doc/configs.md 或根目录列表的源代码。capabilities
setup {}
。setup {}
两次。第二次调用setup {}
将覆盖第一次调用。 如果您发现 LSP 功能的错误,请将其报告给 Neovim 核心。
在报告错误之前,请检查您的日志和:LspInfo
的输出。将以下内容添加到 init.vim 以启用日志记录:
vim . lsp . set_log_level ( " debug " )
尝试运行语言服务器,并使用以下命令打开日志:
:LspLog
大多数时候,失败的原因都存在于日志中。
:LspInfo
(已弃用:che lspconfig
的别名)显示活动和配置的语言服务器的状态。:LspStart
启动请求的服务器名称。仅当命令检测到与当前配置匹配的根目录时才会成功启动。如果您想仅使用此命令启动客户端,请将autostart = false
传递给语言服务器的.setup{}
调用。默认为匹配当前缓冲区文件类型的所有服务器。:LspStop
默认停止所有缓冲区客户端。:LspRestart
默认重新启动所有缓冲区客户端。 如果 configs.md 中缺少语言服务器,为其贡献新配置可以帮助其他人,特别是如果服务器需要特殊设置。请按照下列步骤操作:
lua/lspconfig/configs/SERVER_NAME.lua
创建一个新文件。发布版本:
Neovim 贡献者版权所有。版权所有。
nvim-lspconfig 根据 Apache 2.0 许可证条款获得许可。
请参阅 LICENSE.md