![Sprachserver mit cmd erstellen: „lua-language-server“](https://rvso.com/image/1684441/Sprachserver%20mit%20cmd%20erstellen%3A%20%E2%80%9Elua-language-server%E2%80%9C.png)
Ich bin vor kurzem gewechselt vonPackerPlugin-Manager zuFaul.
Durch die Nutzung von LSP,LspConfig,Mason,MasonLspConfigmit mehreren Sprachservern zur Programmierung.
Das Problem ist, dass Neovim Probleme beim Zugriff auf diese Server hat. Mit dem Paketmanager Packer hat es funktioniert. Vielleicht habe ich etwas falsch konfiguriert, aber ich habe keine Ahnung, was das Problem sein könnte.
Die Sprachserver werden installiert und zu PATH hinzugefügt.
Spawning language server with cmd: `lua-language-server` failed with error message: EACCES: permission denied
Der Befehl „lua-language-server“ als solcher ist aufrufbar.
Ich benutzeFischschaleals Standard-Shell.
Hier ist meine Plugin-Konfigurationsdatei:
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 = "
Antwort1
Nachdem ich das System neu gestartet hatte, erkannte die LSP-Konfiguration das lua-language-server
. Ich vermute, dass der Pfad nicht richtig angegeben wurde.
Für alle, die ähnliche Probleme haben: Stellen Sie sicher, dass Sie die Sprachserver installiert und korrekt zum PATH hinzugefügt haben, und vergessen Sie nicht, Ihre Konfigurationsdatei mit Variablen zu versehen.
Hier sind meine Variablen für den lua-language-server
und gopls
Server im Fish-Shell-Format:
# 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
Und hier sind sie im Bash-Format:
# 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