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'<C-]> et d'autres commandes de balise.'omnifunc'<CX><CO> 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() .<CW>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 <config_name> 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 <client_id> Arrête par défaut tous les clients tampon.:LspRestart <client_id> 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