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!
Reference
이 문제에 관하여(LSP(언어 서버 프로토콜)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/evertonlopesc/lsp-language-server-protocol-478f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
automatic_installation = true,
local servers = require 'nvim-lsp-installer.servers'
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.
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.
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'.
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup {
on_attach = on_attach(),
capabilities = capabilities,
handlers = lsp_handlers
}
end
lspconfig.solargraph.setup {
on_attach = on_attach,
capabilities = capabilities,
handlers = lsp_handlers,
}
Reference
이 문제에 관하여(LSP(언어 서버 프로토콜)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/evertonlopesc/lsp-language-server-protocol-478f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)