使用 cmd 產生語言伺服器:`lua-language-server`

使用 cmd 產生語言伺服器:`lua-language-server`

我最近轉自包裝機外掛程式管理器懶惰的

利用LSP,Lsp配置,石匠,梅森Lsp配置具有用於程式設計的多種語言伺服器。

問題是 Neovim 訪問這些伺服器時遇到問題。它與 Packer 套件管理器一起使用。也許我配置錯誤,但我不知道問題是什麼。

語言伺服器已安裝並新增至 PATH。

Spawning language server with cmd: `lua-language-server` failed with error message: EACCES: permission denied

“lua-language-server”指令本身是可呼叫的。

我在用著魚殼作為預設 shell。

這是我的插件設定檔:

return {
    { "lvimuser/lsp-inlayhints.nvim" },
    { 
        "neovim/nvim-lspconfig",
        dependencies = { "lvimuser/lsp-inlayhints.nvim" },
        config = function()
          local lspconfig = require("lspconfig")

          lspconfig.gopls.setup({
            on_attach = function(client, bufnr)
              require("settings/shared").on_attach(client, bufnr)
              require("lsp-inlayhints").setup({
                inlay_hints = {
                  type_hints = {
                    prefix = "=> "
                  },
                },
              })
              require("lsp-inlayhints").on_attach(client, bufnr)
              require("illuminate").on_attach(client)
            end,
            settings = {
              gopls = {
                analyses = {
                  nilness = true,
                  unusedparams = true,
                  unusedwrite = true,
                  useany = true,
                },
                experimentalPostfixCompletions = true,
                gofumpt = true,
                staticcheck = true,
                usePlaceholders = true,
                hints = {
                  assignVariableTypes = true,
                  compositeLiteralFields = true,
                  compositeLiteralTypes = true,
                  constantValues = true,
                  functionTypeParameters = true,
                  parameterNames = true,
                  rangeVariableTypes = true,
                }
              },
            },
      })
      end
    },

    { "williamboman/mason.nvim" },
    { "Afourcat/treesitter-terraform-doc.nvim" },
    { "williamboman/mason-lspconfig.nvim", 
        dependencies = { "williamboman/mason.nvim" },
        config = function()
            local mason_lspconfig = require("mason-lspconfig")

            mason_lspconfig.setup({
                PATH = "prepend",
                ensure_installed = {
                  "eslint",
                  "gopls", -- WARNING: This could be an issue with goenv switching.
                  "marksman",
                  "rust_analyzer",
                  "sumneko_lua",
                  "terraformls",
                  "tflint",
                  "tsserver",
                  "yamlls",
                }
            })

            mason_lspconfig.setup_handlers({
                function(server_name)
                    require("lspconfig")[server_name].setup({
                    on_attach = function(client, bufnr)
                        require("settings/shared").on_attach(client, bufnr)
                        require("illuminate").on_attach(client)

                        if server_name == "terraformls" then
                        require("treesitter-terraform-doc").setup()
                        end
                    end
                  })
                end
                })
            end
            },

  { "simrat39/symbols-outline.nvim",
    config = function()
      require("symbols-outline").setup({
        -- autofold_depth = 1, -- h: close, l: open, W: close all, E: open all
        auto_close = false,
        highlight_hovered_item = true,
        position = "left",
        width = 15,
        symbols = {
          File = { icon = "", hl = "GruvboxAqua" }, -- TSURI
          Module = { icon = "", hl = "GruvboxBlue" }, -- TSNamespace
          Namespace = { icon = "", hl = "GruvboxBlue" }, -- TSNamespace
          Package = { icon = "", hl = "GruvboxBlue" }, -- TSNamespace
          Class = { icon = "

答案1

重新啟動系統後,lsp-config 偵測到lua-language-server.我的猜測是 PATH 來源不正確。

對於遇到類似問題的任何人 - 確保您已安裝語言伺服器,正確新增至 PATH,並且不要忘記使用變數來取得設定檔。

以下是Fish shell 格式的lua-language-server和伺服器變數:gopls

# Lua
set -gx PATH ~/.config/lsp/lua-language-server/bin $PATH

# Go
set -gx GOPATH ~/go
set -gx PATH /usr/local/go/bin $PATH
set -gx PATH $GOPATH/bin $PATH

這裡它們是 bash 格式的:

# Lua
export PATH=$PATH:$HOME/.config/lsp/lua-language-server/bin

# Go
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$GOPATH/bin

相關內容