Skip to main content

Usando servidores LSP com GitHub Copilot CLI

Os servidores LSP fornecem Copilot CLI inteligência de código precisa, permitindo que ele navegue por definições, localize referências e renomeie símbolos com precisão em seu projeto.

Introdução

O LSP (Language Server Protocol) é um padrão aberto usado para comunicação entre um editor de código e um servidor de idiomas. Um servidor de linguagem é um processo que fornece recursos específicos da linguagem, como ir para a definição e renomear um símbolo de código em toda a sua base de código. Um "servidor LSP" é qualquer servidor de idioma que dê suporte ao Protocolo do Servidor de Idiomas.

GitHub Copilot CLI pode usar servidores LSP para entender a estrutura do código com mais precisão. Ao adicionar e configurar um servidor LSP para cada linguagem de programação em seu projeto, você dará Copilot CLI uma melhor compreensão do seu código.

Benefícios dos servidores LSP

  • Precisão: os resultados são provenientes do próprio compilador/analisador do idioma, fornecendo uma compreensão da estrutura do seu código. Isso melhora a precisão de Copilot quando ele trabalha com seu código. Por exemplo, quando Copilot pode usar "ir para definição", ele encontrará a definição real, não uma correspondência de texto semelhante.
  • Eficiência de token: operações como "listar todos os símbolos" ou "localizar referências" retornam resultados estruturados compactos em vez de exigir que o agente leia arquivos inteiros na conversa.
  • Refatoração segura: quando você renomeia um símbolo, o servidor LSP atualiza de forma confiável todas as referências em todo o projeto.
  • Velocidade: os servidores de linguagem indexam seu projeto em segundo plano, permitindo respostas quase instantâneas.

O que os servidores LSP permitem Copilot CLI fazer

Quando os servidores LSP estão disponíveis, Copilot CLI eles são usados automaticamente. Você não precisa solicitá-lo explicitamente. Copilot CLI usará um servidor LSP em vez de uma pesquisa baseada em texto sempre que puder acessar um servidor LSP para a linguagem de programação que você está usando.

Há suporte para as seguintes operações de servidor de idioma:

OperaçãoO que faz
Ir para a definiçãoSalta para onde um símbolo (função, classe, variável) é definido.
Localizar referênciasLocaliza cada local onde um símbolo é usado.
FocalizarRecupera informações de tipo e documentação para um símbolo.
RenomearRenomeia um símbolo em todo o projeto, atualizando todas as referências.
Símbolos de documentoLista todos os símbolos definidos em um arquivo.
Pesquisa de símbolos do espaço de trabalhoPesquisa símbolos por nome em todo o projeto.
Ir para a implementaçãoLocaliza implementações de uma interface ou método abstrato.
Chamadas de entradaMostra quais funções chamam uma determinada função.
Chamadas de saídaMostra quais funções uma determinada função chama.

Copilot seleciona a operação LSP mais apropriada com base em seu prompt. Por exemplo, se você perguntar "onde está handlePayment definido?", Copilot usará a operação de go-to-definition.

Como adicionar um servidor LSP

Para Copilot CLI poder usar um servidor LSP, primeiro instale o software do servidor em seu computador local e configure-o em um dos arquivos de configuração que Copilot CLI lê na inicialização. Consulte Adicionando servidores LSP para GitHub Copilot CLI.

Um servidor LSP também pode ser adicionado como parte de um plug-in da CLI que você escolhe instalar. Um plug-in poderá incluir um servidor LSP se, por exemplo, ele for projetado para funcionar com uma linguagem de programação incomum ou um tipo de arquivo específico da estrutura. Os servidores LSP incluídos como parte de um plug-in ficam automaticamente disponíveis quando você instala o plug-in. Nenhuma configuração adicional é necessária. Se você desinstalar o plug-in, o servidor LSP será removido. Para obter mais informações, consulte Sobre plug-ins GitHub Copilot.

Como os servidores LSP são carregados

Quando GitHub Copilot CLI é iniciado, ele carrega configurações de servidor LSP de várias fontes na seguinte ordem de prioridade (da mais alta para a mais baixa):

  1. Project config: .github/lsp.json no repositório atual.
  2. Configurações de plug-in: servidores de idioma fornecidos por plug-ins instalados.
  3. Configuração do usuário: ~/.copilot/lsp-config.json.

As configurações de prioridade mais alta substituem as de prioridade mais baixa com o mesmo nome de servidor. Isso significa que um projeto pode personalizar ou desabilitar servidores de idioma para todos os colaboradores.

Depois que o diretório de trabalho for confiável, Copilot CLI iniciará automaticamente todos os servidores LSP relevantes para seu projeto, em segundo plano, para que estejam prontos para responder imediatamente quando necessário.

Próximas Etapas 

Leitura adicional