nvim-lspconfig est un référentiel « données uniquement », fournissant des configurations client Nvim LSP de base par défaut pour divers serveurs LSP.
Consultez la documentation pour toutes les configurations ou :help lspconfig-all
de Nvim.
:help lsp
), signalez-le au noyau Neovim. 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
. nvim main.py
:checkhealth lsp
pour voir l’état ou pour dépanner. Lisez :help lspconfig
pour plus de détails. Lisez :help lspconfig-all
pour la liste complète des détails spécifiques au serveur. Pour les serveurs qui ne sont pas sur votre $PATH
(par exemple, jdtls
, elixirls
), vous devez définir manuellement le paramètre cmd
lors de l'appel setup()
.
Nvim définit certaines options et mappages par défaut lorsqu'un tampon s'attache à LSP (voir :help lsp-config
). En particulier:
'tagfunc'
et d'autres commandes de balise.'omnifunc'
en mode Insertion. Pour la saisie semi-automatique , un plugin de saisie semi-automatique est requis.'formatexpr'
gq
.K
correspond à vim.lsp.buf.hover()
en mode Normal.[d
et ]d
correspondent respectivement à vim.diagnostic.goto_prev()
et vim.diagnostic.goto_next()
.d
correspond à vim.diagnostic.open_float()
. Une personnalisation plus poussée peut être réalisée à l'aide de l'événement de commande automatique LspAttach
. L'événement de commande automatique LspDetach
peut être utilisé pour « nettoyer » les mappages si un tampon se détache d'un serveur LSP. Voir :h LspAttach
et :h LspDetach
pour plus de détails et des exemples. Voir :h lsp-buf
pour plus de détails sur les autres fonctions LSP.
Des options de configuration supplémentaires peuvent être fournies pour chaque serveur LSP en transmettant des arguments à la fonction setup
. Voir :h lspconfig-setup
pour plus de détails. Exemple:
local lspconfig = require ( ' lspconfig ' )
lspconfig . rust_analyzer . setup {
-- Server-specific settings. See `:help lspconfig-setup`
settings = {
[ ' rust-analyzer ' ] = {},
},
}
Les raisons les plus courantes pour lesquelles un serveur de langue ne démarre pas ou ne se connecte pas sont :
cmd
défini dans le module Lua de chaque serveur à partir de la ligne de commande et voir que le serveur de langue démarre. Si le cmd
est un nom d'exécutable au lieu d'un chemin absolu vers l'exécutable, assurez-vous qu'il se trouve sur votre chemin.:set ft?
affiche le type de fichier et non une valeur vide..git
, mais chaque serveur définit la configuration racine dans le fichier lua. Voir doc/configs.md ou la source pour la liste des répertoires racine.capabilities
pour chaque setup {}
si vous souhaitez qu'elles prennent effet.setup {}
deux fois pour le même serveur . Le deuxième appel à setup {}
écrasera le premier. Si vous avez trouvé un bug avec la fonctionnalité LSP, signalez-le au noyau Neovim.
Avant de signaler un bug, vérifiez vos journaux et la sortie de :LspInfo
. Ajoutez ce qui suit à votre init.vim pour activer la journalisation :
vim . lsp . set_log_level ( " debug " )
Essayez d'exécuter le serveur de langue et ouvrez le journal avec :
:LspLog
La plupart du temps, la raison de l’échec est présente dans les logs.
:LspInfo
(alias obsolète de :che lspconfig
) affiche l'état des serveurs de langue actifs et configurés.:LspStart
Démarre le nom de serveur demandé. Ne démarrera avec succès que si la commande détecte un répertoire racine correspondant à la configuration actuelle. Passez autostart = false
à votre appel .setup{}
pour un serveur de langue si vous souhaitez lancer des clients uniquement avec cette commande. La valeur par défaut est tous les serveurs correspondant au type de fichier tampon actuel.:LspStop
Arrête par défaut tous les clients tampon.:LspRestart
Redémarre par défaut tous les clients tampon. Si un serveur de langue est absent de configs.md, le fait de contribuer à une nouvelle configuration aide les autres, surtout si le serveur nécessite une configuration spéciale. Suivez ces étapes :
lua/lspconfig/configs/SERVER_NAME.lua
.Pour publier une version :
Copyright Contributeurs de Neovim. Tous droits réservés.
nvim-lspconfig est sous licence selon les termes de la licence Apache 2.0.
Voir LICENSE.md