Создание языкового сервера с помощью cmd: `lua-language-server`

Создание языкового сервера с помощью cmd: `lua-language-server`

Я недавно перевелся изУпаковщикменеджер плагинов дляЛенивый.

Используя LSP,LspConfig,Мейсон,MasonLspConfigс несколькими языковыми серверами для программирования.

Проблема в том, что у Neovim возникли проблемы с доступом к этим серверам. С менеджером пакетов Packer все получилось. Может, я что-то неправильно настроил, но я понятия не имею, в чем может быть проблема.

Языковые серверы установлены и добавлены в PATH.

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

Команда "lua-language-server" как таковая является вызываемой.

я используюРаковина рыбыкак оболочка по умолчанию.

Вот мой файл конфигурации плагина:

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 и не забудьте указать в файле конфигурации переменные.

Вот мои переменные для lua-language-serverи goplsсервера в формате fish shell:

# 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

Связанный контент