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'<C-]>和其他标签命令启用“转到定义”功能。'omnifunc'<CX><CO>启用(手动)全向模式完成。对于自动完成,需要自动完成插件。'formatexpr'gq启用 LSP 格式化。K在正常模式下映射到vim.lsp.buf.hover() 。[d和]d分别映射到vim.diagnostic.goto_prev()和vim.diagnostic.goto_next() 。<CW>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 <config_name>启动请求的服务器名称。仅当命令检测到与当前配置匹配的根目录时才会成功启动。如果您想仅使用此命令启动客户端,请将autostart = false传递给语言服务器的.setup{}调用。默认为匹配当前缓冲区文件类型的所有服务器。:LspStop <client_id>默认停止所有缓冲区客户端。:LspRestart <client_id>默认重新启动所有缓冲区客户端。 如果 configs.md 中缺少语言服务器,为其贡献新配置可以帮助其他人,特别是如果服务器需要特殊设置。请按照下列步骤操作:
lua/lspconfig/configs/SERVER_NAME.lua创建一个新文件。发布版本:
Neovim 贡献者版权所有。版权所有。
nvim-lspconfig 根据 Apache 2.0 许可证条款获得许可。
请参阅 LICENSE.md