无法在 neovim 中为 .sol 文件附加 Solidity-lsp

问题描述 投票:0回答:1

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 编程新手,所以提前道歉,以防问题太愚蠢。谢谢。

solidity neovim language-server-protocol
1个回答
0
投票

mason 使用的命令对于他如何在您的系统上安装 Solidity-ls 来说是不正确的。

您的设置中应该有正确的 cmd 配置。

require("lspconfig")["solidity"].setup {
  cmd = { 'vscode-solidity-server', '--stdio' },
}

此外,您必须意识到 Solidity-ls 不为您提供 solc 编译器。我建议您安装 solc-select 来安装最新版本的 solc。

© www.soinside.com 2019 - 2024. All rights reserved.