nvim-lspconfig é um repositório "somente dados", que fornece configurações básicas e padrão do cliente Nvim LSP para vários servidores LSP.
Veja a documentação para todas as configurações ou :help lspconfig-all
do Nvim.
:help lsp
), relate-o ao núcleo do 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 o status ou solucionar problemas. Leia :help lspconfig
para obter detalhes. Leia :help lspconfig-all
para obter a lista completa de detalhes específicos do servidor. Para servidores que não estão em seu $PATH
(por exemplo, jdtls
, elixirls
), você deve definir manualmente o parâmetro cmd
ao chamar setup()
.
O Nvim define algumas opções e mapeamentos padrão quando um buffer é anexado ao LSP (consulte :help lsp-config
). Em particular:
'tagfunc'
e outros comandos de tag.'omnifunc'
no modo Inserir. Para o preenchimento automático , é necessário um plugin de preenchimento automático.'formatexpr'
gq
.K
mapeia para vim.lsp.buf.hover()
no modo Normal.[d
e ]d
mapeiam para vim.diagnostic.goto_prev()
e vim.diagnostic.goto_next()
, respectivamente.d
mapeia para vim.diagnostic.open_float()
. Personalização adicional pode ser obtida usando o evento de comando automático LspAttach
. O evento de comando automático LspDetach
pode ser usado para "limpar" mapeamentos se um buffer for desconectado de um servidor LSP. Veja :h LspAttach
e :h LspDetach
para detalhes e exemplos. Veja :h lsp-buf
para detalhes sobre outras funções LSP.
Opções de configuração adicionais podem ser fornecidas para cada servidor LSP passando argumentos para a função setup
. Veja :h lspconfig-setup
para detalhes. Exemplo:
local lspconfig = require ( ' lspconfig ' )
lspconfig . rust_analyzer . setup {
-- Server-specific settings. See `:help lspconfig-setup`
settings = {
[ ' rust-analyzer ' ] = {},
},
}
Os motivos mais comuns pelos quais um servidor de idioma não inicia ou se conecta são:
cmd
definido no módulo Lua de cada servidor a partir da linha de comando e ver se o servidor de linguagem é iniciado. Se o cmd
for um nome de executável em vez de um caminho absoluto para o executável, verifique se ele está no seu caminho.:set ft?
mostra o tipo de arquivo e não um valor vazio..git
, mas cada servidor define a configuração raiz no arquivo lua. Consulte doc/configs.md ou a fonte para obter a lista de diretórios raiz.capabilities
para cada setup {}
se quiser que eles entrem em vigor.setup {}
duas vezes para o mesmo servidor . A segunda chamada para setup {}
substituirá a primeira. Se você encontrou um bug na funcionalidade LSP, relate-o ao núcleo do Neovim.
Antes de relatar um bug, verifique seus logs e a saída de :LspInfo
. Adicione o seguinte ao seu init.vim para ativar o registro:
vim . lsp . set_log_level ( " debug " )
Tente executar o servidor de idiomas e abra o log com:
:LspLog
Na maioria das vezes, o motivo da falha está presente nos logs.
:LspInfo
(alias obsoleto para :che lspconfig
) mostra o status dos servidores de idiomas ativos e configurados.:LspStart
Inicia o nome do servidor solicitado. Só será iniciado com êxito se o comando detectar um diretório raiz que corresponda à configuração atual. Passe autostart = false
para sua chamada .setup{}
para um servidor de linguagem se desejar iniciar clientes somente com este comando. O padrão é todos os servidores que correspondem ao tipo de arquivo de buffer atual.:LspStop
O padrão é parar todos os clientes de buffer.:LspRestart
O padrão é reiniciar todos os clientes de buffer. Se um servidor de idioma estiver faltando em configs.md, contribuir com uma nova configuração para ele ajudará outras pessoas, especialmente se o servidor exigir configuração especial. Siga estas etapas:
lua/lspconfig/configs/SERVER_NAME.lua
.Para publicar um lançamento:
Colaboradores do Neovim com direitos autorais. Todos os direitos reservados.
nvim-lspconfig está licenciado sob os termos da licença Apache 2.0.
Veja LICENSE.md