Thanks to visit codestin.com
Credit goes to docs.github.com

Skip to main content

Adicionando servidores LSP para CLI do GitHub Copilot

Você pode adicionar servidores LSP para fornecer CLI do Copilot inteligência de código precisa, melhorando sua capacidade de navegar por definições, localizar referências e renomear símbolos.

Introdução

Este artigo explica como adicionar servidores LSP para CLI do Copilot. Para obter informações conceituais sobre servidores LSP, consulte Usando servidores LSP com CLI do GitHub Copilot.

Adicionar um servidor LSP para CLI do Copilot é um processo de duas etapas:

  1. Instale o software do servidor LSP em seu computador local.
  2. Configure o servidor em um arquivo de configuração.

Essas etapas estão descritas aqui neste artigo.

Instalando e configurando um servidor LSP

Você pode adicionar um servidor LSP para um idioma específico:

  • Usando a habilidade lsp-setup, que automatiza o processo.
  • Instalando manualmente o software do servidor e configurando CLI do Copilot para usar o servidor.

Essas duas abordagens são descritas nas seções abaixo.

Usando o lsp-setup recurso para adicionar um servidor de linguagem

A skill lsp-setup do repositório "Awesome GitHub Copilot" automatiza a instalação e configuração de uma seleção de linguagens populares.

  1. Acesse o site de downloads do "Awesome GitHub Copilot" e procure por "lsp":

           https://awesome-copilot.github.com/skills/?q=lsp.
    
  2. Baixe a skill lsp-setup.

  3. Descompacte o arquivo baixado .zip para criar um diretório chamado lsp-setup.

  4. Mova o diretório lsp-setup para um dos seguintes locais:

    • Seu diretório de habilidades pessoais: ~/.copilot/skills/.
    • Um diretório de habilidades de projeto: .github/skills/ em um repositório Git.
  5. Inicie CLI do Copilotou, se você estiver atualmente em uma sessão da CLI, insira /skills reload.

  6. Insira o comando:

    Copilot prompt
    setup lsp
    
  7. Siga as instruções na tela para selecionar o idioma do servidor que você deseja configurar e, em seguida, conclua as etapas adicionais.

  8. Quando o processo for concluído, insira /lsp reload para carregar o novo servidor LSP.

  9. Verifique se o servidor foi adicionado e está funcionando corretamente. Consulte Confirmando se um servidor LSP está disponível posteriormente neste artigo.

Instalando e configurando manualmente um servidor LSP

A instalação de um servidor LSP para um idioma específico normalmente envolve a instalação de um pacote por meio de um gerenciador de pacotes, como npm, gemou pip.

Para instalar manualmente um servidor LSP, consulte a documentação do servidor de idioma específico que você deseja instalar. Listados abaixo estão alguns comandos de exemplo para instalar servidores LSP populares.

Observação

Os recursos úteis para localizar servidores LSP para diferentes idiomas incluem: * Implementations no site do Protocolo do Servidor de Idiomas da Microsoft. * Protocolo do Servidor de Idiomas no site do Arch Linux.

Cuidado

Instale apenas servidores LSP de fontes confiáveis.

Comando de instalação de exemplo: TypeScript e JavaScript

Se você tiver Node.js instalado, poderá instalar o typescript-language-server servidor LSP com o seguinte comando:

Bash
npm install -g typescript typescript-language-server

O typescript-language-server servidor LSP dá suporte a TypeScript e JavaScript.

Comando de instalação de exemplo: Ruby

Se você tiver o Gem instalado, poderá instalar o ruby-lsp servidor LSP com o seguinte comando:

Bash
gem install ruby-lsp

Como alternativa, você pode instalar o solargraph servidor LSP para Ruby com:

Bash
gem install solargraph

Comando de instalação de exemplo: Python

Se você tiver Node.js instalado, poderá instalar o pyright servidor LSP com o seguinte comando:

Bash
npm install -g pyright

Como alternativa, se você tiver o pip instalado, poderá instalar o python-lsp-server servidor LSP com:

Bash
pip install python-lsp-server

Configurando o servidor de idiomas

  1. Para configurar o servidor LSP, adicione uma definição de servidor a qualquer um dos dois arquivos de configuração:

    • Configuração do usuário: ~/.copilot/lsp-config.json aplica-se a todos os seus projetos.
    • Configuração do projeto: .github/lsp.json, em seu repositório, aplica-se a todos que trabalham nesse projeto.

    Ambos os arquivos usam a mesma sintaxe JSON:

    {
      "lspServers": {
        "SERVER-NAME": {
          "command": "COMMAND",
          "args": ["ARG1", "ARG2"],
          "fileExtensions": {
            ".EXT": "LANGUAGE-ID"
          }
        },
        "ANOTHER-SERVER": {
          ...
        }
      }
    }
    

    Alguns exemplos de definições de servidor para servidores LSP específicos são fornecidos posteriormente neste artigo.

  2. Depois de instalar e configurar o servidor, confirme se CLI do Copilot ele pode usá-lo. Consulte Confirmando se um servidor LSP está disponível abaixo.

Campos de configuração

Cada definição de servidor no arquivo de configuração deve ter um nome exclusivo e conter apenas caracteres alfanuméricos, sublinhados e hifens.

Dentro de cada definição de servidor, os seguintes campos estão disponíveis/necessários:

Campo Obrigatório Descrição
command Sim O comando usado para iniciar o servidor LSP.
args No Argumentos a serem passados para o comando.
fileExtensions Sim Um mapa JSON de extensões de arquivo e sua ID de idioma correspondente (por exemplo, { ".rs": "rust" }).
env No Variáveis de ambiente a serem definidas ao iniciar o servidor. Suporta a sintaxe de expansão ${VAR} e ${VAR:-default}.
rootUri No O diretório raiz do servidor LSP em relação à raiz do Git. Usa "." como padrão. Útil para monorepos. Se o projeto estiver em um subdiretório do repositório Git em vez da raiz do repositório, defina rootUri para esse caminho de subdiretório.
initializationOptions No Opções personalizadas enviadas ao servidor durante a inicialização.
requestTimeoutMs No O tempo limite para solicitações de servidor em milissegundos (padrão: 90 segundos).

Exemplo de definição de servidor: typescript-language-server servidor LSP

JSON
{
  "lspServers": {
    "typescript": {
      "command": "typescript-language-server",
      "args": ["--stdio"],
      "fileExtensions": {
        ".ts": "typescript",
        ".tsx": "typescriptreact",
        ".js": "javascript",
        ".jsx": "javascriptreact",
        ".mjs": "javascript",
        ".cjs": "javascript",
        ".mts": "typescript",
        ".cts": "typescript"
      }
    }
  }
}

Exemplo de definição de servidor: ruby-lsp servidor LSP

JSON
{
  "lspServers": {
    "ruby": {
      "command": "ruby-lsp",
      "args": [],
      "fileExtensions": {
        ".rb": "ruby",
        ".rbw": "ruby",
        ".rake": "ruby",
        ".gemspec": "ruby"
      }
    }
  }
}

Definição de servidor de exemplo: pyright servidor LSP para Python

JSON
{
  "lspServers": {
    "python": {
      "command": "pyright-langserver",
      "args": ["--stdio"],
      "fileExtensions": {
        ".py": "python",
        ".pyw": "python",
        ".pyi": "python"
      }
    }
  }
}

Gerenciando servidores de idioma com o /lsp comando

Você pode listar e gerenciar seus servidores LSP em uma sessão interativa da CLI usando o /lsp comando barra:

Comando barraDescrição
/lsp ou /lsp showMostrar o status de todos os servidores LSP configurados.
/lsp test SERVER-NAMETeste se um servidor é iniciado corretamente.
/lsp reloadRecarregue as configurações de LSP do disco.
/lsp helpMostrar informações de comando /lsp.

Listando servidores LSP disponíveis

  1. Em CLI do Copilot, confirme se o servidor LSP escolhido está disponível usando o /lsp comando barra. Você verá uma saída semelhante a:

    ● LSP Server Status:
    
      User-configured servers:
        • ruby: ruby-lsp (.rb, .rbw, .rake, .gemspec)
        • omnisharp: omnisharp (.cs)
    
      User config: /Users/username/.copilot/lsp-config.json
    

Confirmando que um servidor LSP está disponível

  1. Depois de adicionar e configurar um servidor LSP, inicie (ou reinicie) CLI do Copilot.

  2. Use o comando barra: /lsp test SERVER-NAME para verificar se o servidor LSP está funcionando corretamente.

           CLI do Copilot tenta iniciar uma instância temporária e autônoma do servidor e relata se ela foi bem-sucedida ou se houve erros. Em seguida, ele elimina o processo de servidor temporário.
    

Leitura adicional