我正在尝试利用NVIM的内置LSP。虽然我已经能够为css和python实现LSP,但在javascript和html方面还没有成功。
我安装了LSPs
:LspInstall <LSP>下面是我加载LSP的方式:
packadd nvim-lspconfig
packadd completion-nvim
:lua << EOF
local nvim_lsp = require('nvim_lsp')
local on_attach = function(_, bufnr)
require('completion').on_attach()
local opts = { noremap=true, silent=true }
end
local servers = {'tsserver', 'cssls', 'html', 'pyls'}
for _, lsp in ipairs(servers) do
nvim_lsp[lsp].setup {
on_attach = on_attach
}
print("lsp istalled -", lsp)
end
EOF*LspInstallInfo显示:
{
cssls = {
bin_dir = "~/.cache/nvim/nvim_lsp/cssls/node_modules/.bin",
binaries = {
["css-languageserver"] = "~/.cache/nvim/nvim_lsp/cssls/node_modules/.bin/css-languageserver"
},
install_dir = "~/.cache/nvim/nvim_lsp/cssls",
is_installed = true
},
html = {
bin_dir = "~/.cache/nvim/nvim_lsp/html/node_modules/.bin",
binaries = {
["html-languageserver"] = "~/.cache/nvim/nvim_lsp/html/node_modules/.bin/html-languageserver"
},
install_dir = "~/.cache/nvim/nvim_lsp/html",
is_installed = true
},
tsserver = {
bin_dir = "~/.cache/nvim/nvim_lsp/tsserver/node_modules/.bin",
binaries = {
["typescript-language-server"] = "~/.cache/nvim/nvim_lsp/tsserver/node_modules/.bin/typescript
-language-server"
},
install_dir = "~/.cache/nvim/nvim_lsp/tsserver",
is_installed = true
}
} 它们似乎已经安装好了,用于*.css和*.py的LSP运行得很好。
当我打开*.js、*.ts或*.html文件时,我会得到与:LspInstallInfo命令相同的响应。但是,我不认为LSP是活动的,因为我没有收到任何警告或错误消息无视我所输入的内容。
我尝试过以不同的方式加载LSP,包括:
require'nvim_lsp'.tsserver.setup{}
require'nvim_lsp'.html.setup{}我偶然看到一篇关于安装打字本的帖子,但它似乎没有任何效果。
我已经关闭了所有其他插件,并有相同的结果。
发布于 2021-06-28 06:00:14
安装之后,您应该考虑root_dir。因此,如果没有匹配的根目录,LSP就不会启动。
为了自动启动语言服务器,lspconfig从当前缓冲区中搜索目录树,以找到与每个服务器配置中定义的root_dir模式匹配的文件。对于pyright,这是包含".git“、"setup.py”、"setup.cfg“、"pyproject.toml”或“requirements.txt”的任何目录)。 语言服务器要求每个项目都有一个根,以便在当前文件中可能没有定义的符号之间提供完成和搜索,并避免在每次启动时对整个文件系统进行索引。
,但是如果您想在任何目录中启动LSP,您可以对Javscript使用如下内容:
require'lspconfig'.tsserver.setup{
filetypes = { "typescript", "typescriptreact", "typescript.tsx" },
root_dir = function() return vim.loop.cwd() end -- run lsp for javascript in any directory
}发布于 2021-02-19 09:41:20
我今天正致力于建立neovim 0.5,并在这里寻找其他与LSP相关的东西。总之,我确实有一个工作安排,这里有一个简短的:
nvim-lspconfig软件包(我使用vim-插件)npm i -g typescript-language-serverlua << EOF
require'lspconfig'.tsserver.setup{}
EOF 我注意到您正在使用像LspInstall和LspInstallInfo这样的命令,但是它们不在我的设置中。恐怕我不能评论他们为什么会像预期的那样工作。
LSP本身并不显示自动完成。必须使用另一个插件。我在completion-nvim上取得了很好的成绩
这是一个很好的参考:neovim-and-its-built-in-language-server-protocol
哦,如果你还没读过的话,一定要给:help lsp读一读。干杯!
https://stackoverflow.com/questions/64868071
复制相似问题