mason 通过 neovim 命令安装了 Firtsble Solidity-ls
:LspInstall solidity-ls
无法从终端执行,尽管在 .sol 文件中输入 :LspInfo 时它显示为可执行文件。我通过 npm 手动安装后
npm i solidity-ls -g
这是solidity-ls的配置
require'lspconfig'.solidity.setup({
on_attach = on_attach,
})
使用这个空配置,但是找不到根目录,solidity-ls 也没有附加到文件中,我想这只是一个结果。
按照以下方式手动添加root_dir并通过luafile检查文件后%
require'lspconfig'.solidity.setup({
on_attach = on_attach,
root_dir = function(fname)
return vim.fn.getcwd()
end,
})
我收到此错误
LSP[solidity]: Error SERVER_REQUEST_HANDLER_ERROR: "/usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:86: bad argument #1 to 'ipairs' (table expected, got nil)"
尽管 :LspInfo 显示 root_dir 已设置,但 Solidity-ls 仍未附加
来自 .sol 文件的 LspInfo
有什么建议如何解决这个问题吗?
Ubuntu 20.04.3 LTS NVIM v0.7.2
我是 vim、neovim 和 lua 编程新手,所以提前道歉,以防问题太愚蠢。谢谢。
mason 使用的命令对于他如何在您的系统上安装 Solidity-ls 来说是不正确的。
您的设置中应该有正确的 cmd 配置。
require("lspconfig")["solidity"].setup {
cmd = { 'vscode-solidity-server', '--stdio' },
}
此外,您必须意识到 Solidity-ls 不为您提供 solc 编译器。我建议您安装 solc-select 来安装最新版本的 solc。