nvim-lspconfig es un repositorio de "solo datos" que proporciona configuraciones básicas y predeterminadas del cliente Nvim LSP para varios servidores LSP.
Vea la documentación de todas las configuraciones o :help lspconfig-all
de Nvim.
:help lsp
), infórmelo al núcleo de 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
para ver el estado o solucionar problemas. Lea :help lspconfig
para obtener más detalles. Lea :help lspconfig-all
para obtener la lista completa de detalles específicos del servidor. Para servidores que no están en su $PATH
(por ejemplo, jdtls
, elixirls
), debe configurar manualmente el parámetro cmd
al llamar setup()
.
Nvim establece algunas opciones y asignaciones predeterminadas cuando un búfer se conecta a LSP (consulte :help lsp-config
). En particular:
'tagfunc'
y otros comandos de etiquetas.'omnifunc'
en el modo Insertar. Para completar automáticamente , se requiere un complemento de autocompletar.'formatexpr'
gq
.K
se asigna a vim.lsp.buf.hover()
en modo Normal.[d
y ]d
se asignan a vim.diagnostic.goto_prev()
y vim.diagnostic.goto_next()
, respectivamente.d
se asigna a vim.diagnostic.open_float()
. Se puede lograr una mayor personalización utilizando el evento de comando automático LspAttach
. El evento de comando automático LspDetach
se puede utilizar para "limpiar" asignaciones si un búfer se desconecta de un servidor LSP. Consulte :h LspAttach
y :h LspDetach
para obtener detalles y ejemplos. Consulte :h lsp-buf
para obtener detalles sobre otras funciones de LSP.
Se pueden proporcionar opciones de configuración adicionales para cada servidor LSP pasando argumentos a la función setup
. Consulte :h lspconfig-setup
para obtener más detalles. Ejemplo:
local lspconfig = require ( ' lspconfig ' )
lspconfig . rust_analyzer . setup {
-- Server-specific settings. See `:help lspconfig-setup`
settings = {
[ ' rust-analyzer ' ] = {},
},
}
Las razones más comunes por las que un servidor de idiomas no se inicia ni se conecta son:
cmd
definido en el módulo Lua de cada servidor desde la línea de comando y ver que se inicia el servidor de idiomas. Si cmd
es un nombre ejecutable en lugar de una ruta absoluta al ejecutable, asegúrese de que esté en su ruta.:set ft?
muestra el tipo de archivo y no un valor vacío..git
, pero cada servidor define la configuración raíz en el archivo lua. Consulte doc/configs.md o la fuente para obtener la lista de directorios raíz.capabilities
para cada setup {}
si desea que surtan efecto.setup {}
dos veces para el mismo servidor . La segunda llamada a setup {}
sobrescribirá la primera. Si encontró un error con la funcionalidad LSP, infórmelo al núcleo de Neovim.
Antes de informar un error, verifique sus registros y la salida de :LspInfo
. Agregue lo siguiente a su init.vim para habilitar el registro:
vim . lsp . set_log_level ( " debug " )
Intente ejecutar el servidor de idiomas y abra el registro con:
:LspLog
La mayoría de las veces, el motivo del error está presente en los registros.
:LspInfo
(alias en desuso de :che lspconfig
) muestra el estado de los servidores de idiomas activos y configurados.:LspStart
Inicia el nombre del servidor solicitado. Solo se iniciará correctamente si el comando detecta un directorio raíz que coincida con la configuración actual. Pase autostart = false
a su llamada .setup{}
para un servidor de idioma si desea iniciar clientes únicamente con este comando. El valor predeterminado es todos los servidores que coincidan con el tipo de archivo del búfer actual.:LspStop
De forma predeterminada, detiene todos los clientes del búfer.:LspRestart
El valor predeterminado es reiniciar todos los clientes del búfer. Si falta un servidor de idioma en configs.md, contribuir con una nueva configuración ayuda a otros, especialmente si el servidor requiere una configuración especial. Siga estos pasos:
lua/lspconfig/configs/SERVER_NAME.lua
.Para publicar un comunicado:
Copyright de los contribuyentes de Neovim. Reservados todos los derechos.
nvim-lspconfig tiene licencia según los términos de la licencia Apache 2.0.
Ver LICENCIA.md