LSP(언어 서버 프로토콜)

우산도 LSP 파라 디센볼버



대부분의 경우 LSP(Language Server Protocol) 프로그램을 사용하여 프로그래밍할 수 있습니다.

Ele tem várias funcionalidades que facilita no desenvolvimento como diagnosticar erros, formatar conforme sua configuração, renomear variáveis ​​등

Para isso eu utilizo os plugins Lsp-config e Lsp-installer . O lsp-config traz todas essas possibilidades, já o lsp-installer eu utilizo para instalar esses servidores de modo mais fácil.

lsp-설치 프로그램



Aqui é mais calmo, pois, teve uma atualização onde ele pode ser chamado de um modo simples e basta informar a auto-installação e depois fazer o lsp enxergar esses servidores e pronto!

  automatic_installation = true,

  local servers = require 'nvim-lsp-installer.servers'


Lsp 구성



on_attach



정의

Callback called when attaching to a buffer. Mainly used to set up keymaps when config.keymaps is empty. The buffer number is passed as the first argument.

Callback chamado ao anexar a um buffer. Usado principalmente para configurar keymaps quando config.keymaps está vazio. O número do buffer é passado como o primeiro argumento.



처음에 on_attach를 구성하면 명령 실행자의 명령에 응답할 수 있습니다. Nesse (carinha) eu uso apenas a configuração padrão recomendada na documentação.

핸들러



정의

lsp-handlers are functions with special signatures that are designed to handle responses and notifications from LSP servers.

lsp-handlers são funções com assinaturas especiais projetadas para lidar com respostas e notificações de servidores LSP.



Em segundo eu configuro o handlers, e nas minhas palavras você pode alterar a resposta do lsp. Nesse item eu não altero muito por não entender ainda.

Aqui é um exemplo onde ele retira os erros que aparecem flutuando no editor, mas você pode passar para uma linguagem ou para todas.

vim.lsp.start_client {
..., -- Other configuration omitted.
handlers = {
  ["textDocument/publishDiagnostics"] = vim.lsp.with(
    vim.lsp.diagnostic.on_publish_diagnostics, {
      -- Disable virtual_text
      virtual_text = false,
   }
  },
}


설정



정의

lspconfig consists of a collection of language server configurations. Each configuration exposes a setup {} metamethod which makes it easy to directly use the default configuration or selectively override the defaults. setup {} is the primary interface by which users interact with lspconfig.

'lspconfig' consiste em uma coleção de configurações de servidor de linguagem. Cada configuração expõe um setup {} 'metamethod' que torna mais fácil usar diretamente a configuração padrão ou substituir seletivamente os padrões. 'setup {}' é a interface principal pela qual os usuários interagem com 'lspconfig'.



Nesse ponto é mais calmo, aqui você precisa apenas passar o setup da linguagem e adicionar os itens anteriores. Caso precision definir a rota como é preciso emsumneko_lua dentre outras opções.

O diagnóstico é feito informando o servidor responsável que você você instalou ou vai instalar.

for _, lsp in ipairs(servers) do
  lspconfig[lsp].setup {
    on_attach = on_attach(),
    capabilities = capabilities,
    handlers = lsp_handlers
  }
end


Dependendo da linguagem escolhida você deve ter uma configuração para ver as vantagens, como em Ruby é preciso ter um Gemfile com o servidor solargraph instalado para funcionar e disponibilizar o diagnóstico, hover, formatter 등

Obs.: eu fiz esse teste e mesmo já passando o on_attach , o capabilities e o handlers dentro do lspconfig na imagem acima eu tenho que passar nas configurações de cada linguagem para ficar tudo funcional.

lspconfig.solargraph.setup {
  on_attach = on_attach,
  capabilities = capabilities,
  handlers = lsp_handlers,
}


Como disse nos demais post eu ainda estou aprendendo e posso errar, mas com o passar do tempo quero aprender mais e compartilhar!

좋은 웹페이지 즐겨찾기