![cmd를 사용하여 언어 서버 생성: `lua-언어-서버`](https://rvso.com/image/1684441/cmd%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%96%B8%EC%96%B4%20%EC%84%9C%EB%B2%84%20%EC%83%9D%EC%84%B1%3A%20%60lua-%EC%96%B8%EC%96%B4-%EC%84%9C%EB%B2%84%60.png)
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