nvim-lspconfig ist ein „nur Daten“-Repository, das grundlegende, standardmäßige Nvim-LSP-Clientkonfigurationen für verschiedene LSP-Server bereitstellt.
Sehen Sie sich die Dokumentation für alle Konfigurationen oder :help lspconfig-all
von Nvim an.
:help lsp
) gefunden haben, melden Sie ihn dem Neovim-Kern. git clone https://github.com/neovim/nvim-lspconfig ~/.config/nvim/pack/nvim/start/nvim-lspconfig
npm i -g pyright
require ' lspconfig ' . pyright . setup {}
:help lspconfig-all
angegebenen Serveranforderungen entspricht. nvim main.py
:checkhealth lsp
aus, um den Status anzuzeigen oder Fehler zu beheben. Weitere Informationen finden Sie unter :help lspconfig
. Lesen Sie :help lspconfig-all
für die vollständige Liste der serverspezifischen Details. Für Server, die sich nicht in Ihrem $PATH
befinden (z. B. jdtls
, elixirls
), müssen Sie den cmd
Parameter beim Aufruf von setup()
manuell festlegen.
Nvim legt einige Standardoptionen und Zuordnungen fest, wenn ein Puffer an LSP angeschlossen wird (siehe :help lsp-config
). Insbesondere:
'tagfunc'
und anderen Tag-Befehlen.'omnifunc'
im Einfügemodus. Für die automatische Vervollständigung ist ein Autovervollständigungs-Plugin erforderlich.'formatexpr'
gq
.K
wird im Normalmodus auf vim.lsp.buf.hover()
abgebildet.[d
und ]d
sind jeweils vim.diagnostic.goto_prev()
und vim.diagnostic.goto_next()
zugeordnet.d
wird vim.diagnostic.open_float()
zugeordnet. Weitere Anpassungen können mithilfe des LspAttach
Autocommand-Ereignisses erreicht werden. Das LspDetach
-Autocommand-Ereignis kann zum „Bereinigen“ von Zuordnungen verwendet werden, wenn ein Puffer von einem LSP-Server getrennt wird. Einzelheiten und Beispiele finden Sie unter :h LspAttach
und :h LspDetach
. Einzelheiten zu anderen LSP-Funktionen finden Sie unter :h lsp-buf
.
Zusätzliche Konfigurationsoptionen können für jeden LSP-Server bereitgestellt werden, indem Argumente an die setup
-Funktion übergeben werden. Weitere Informationen finden Sie unter :h lspconfig-setup
. Beispiel:
local lspconfig = require ( ' lspconfig ' )
lspconfig . rust_analyzer . setup {
-- Server-specific settings. See `:help lspconfig-setup`
settings = {
[ ' rust-analyzer ' ] = {},
},
}
Die häufigsten Gründe, warum ein Sprachserver nicht startet oder keine Verbindung herstellt, sind:
cmd
über die Befehlszeile auszuführen und zu sehen, dass der Sprachserver startet. Wenn es sich bei dem cmd
um einen Namen einer ausführbaren Datei und nicht um einen absoluten Pfad zur ausführbaren Datei handelt, stellen Sie sicher, dass er sich in Ihrem Pfad befindet.:set ft?
zeigt den Dateityp und keinen leeren Wert..git
-Ordner, aber jeder Server definiert die Root-Konfiguration in der Lua-Datei. Die Liste der Stammverzeichnisse finden Sie in doc/configs.md oder in der Quelle.setup {}
capabilities
übergeben, damit diese wirksam werden.setup {}
nicht zweimal für denselben Server auf . Der zweite Aufruf von setup {}
überschreibt den ersten. Wenn Sie einen Fehler in der LSP-Funktionalität gefunden haben, melden Sie ihn an Neovim Core.
Bevor Sie einen Fehler melden, überprüfen Sie Ihre Protokolle und die Ausgabe von :LspInfo
. Fügen Sie Folgendes zu Ihrer init.vim hinzu, um die Protokollierung zu aktivieren:
vim . lsp . set_log_level ( " debug " )
Versuchen Sie, den Sprachserver auszuführen, und öffnen Sie das Protokoll mit:
:LspLog
In den meisten Fällen liegt die Fehlerursache in den Protokollen.
:LspInfo
(veralteter Alias von :che lspconfig
) zeigt den Status aktiver und konfigurierter Sprachserver an.:LspStart
Starten Sie den angeforderten Servernamen. Wird nur erfolgreich gestartet, wenn der Befehl ein Stammverzeichnis erkennt, das der aktuellen Konfiguration entspricht. Übergeben Sie autostart = false
an Ihren .setup{}
-Aufruf für einen Sprachserver, wenn Sie Clients ausschließlich mit diesem Befehl starten möchten. Standardmäßig werden alle Server verwendet, die dem aktuellen Pufferdateityp entsprechen.:LspStop
Stoppt standardmäßig alle Puffer-Clients.:LspRestart
Standardmäßig werden alle Puffer-Clients neu gestartet. Wenn in configs.md ein Sprachserver fehlt, hilft es anderen, eine neue Konfiguration dafür beizutragen, insbesondere wenn der Server eine spezielle Einrichtung erfordert. Befolgen Sie diese Schritte:
lua/lspconfig/configs/SERVER_NAME.lua
.So veröffentlichen Sie eine Veröffentlichung:
Copyright Neovim-Mitwirkende. Alle Rechte vorbehalten.
nvim-lspconfig ist unter den Bedingungen der Apache 2.0-Lizenz lizenziert.
Siehe LICENSE.md