cmd를 사용하여 언어 서버 생성: `lua-언어-서버`

cmd를 사용하여 언어 서버 생성: `lua-언어-서버`

최근에 전학했어요포장 기계플러그인 관리자게으른.

LSP를 활용하여,Lsp구성,석공,MasonLsp구성프로그래밍을 위한 여러 언어 서버가 있습니다.

문제는 Neovim이 이러한 서버에 액세스하는 데 문제가 있다는 것입니다. Packer 패키지 관리자와 함께 작동했습니다. 뭔가 잘못 구성했을 수도 있지만 문제가 무엇인지 알 수 없습니다.

언어 서버가 설치되고 PATH에 추가됩니다.

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

"lua-언어-서버" 명령 자체를 호출할 수 있습니다.

나는 사용하고있다생선 껍질기본 쉘로.

내 플러그인 구성 파일은 다음과 같습니다.

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

# 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

관련 정보