Veja as funcionalidades de completação de código do GitHub Copilot

Concluído

O GitHub Copilot oferece dois tipos de sugestões inline. As sugestões de texto fantasma aparecem como texto escurecido na posição atual do cursor enquanto escreves. As próximas sugestões de edição (NES) preveem tanto a localização como o conteúdo da sua próxima edição de código com base nas alterações recentes que fez.

Recebe sugestões de texto fantasma quando realiza as seguintes ações:

  • Insira uma linha de código parcial ou completa no editor.
  • Insira um comentário de código parcial ou completo no editor.
  • Insira uma linha de código em branco no editor.

A seguir, as sugestões de edição aparecem automaticamente à medida que editas o código. Eles prevêem qual alteração você provavelmente fará a seguir, com base nas suas edições recentes, e são exibidos com um indicador especial que indica a localização sugerida para a edição.

Cenários comuns de sugestões de próxima edição

As sugestões de edição seguintes são especialmente úteis em três cenários de programação:

  • Detetar erros: a NES deteta problemas como erros tipográficos (conts x = 5const x = 5), expressões ternárias invertidas e operadores de comparação incorretos, sugerindo depois a correção correta.
  • Alterações de intenção em cascata: Quando se renomeia um tipo ou variável, o NES sugere propagar essa alteração por todo o código dependente. Por exemplo, renomear uma classe de Point para Point3D desencadeia sugestões para adicionar uma z coordenada onde o código precisar.
  • Refatoração: Depois de renomear uma variável uma vez, o NES sugere atualizar todas as outras ocorrências. Depois de colar o código, a NES sugere adaptá-lo para corresponder ao estilo do código circundante.

Gerar uma sugestão de texto fantasma

O GitHub Copilot acelera o desenvolvimento de aplicações ao sugerir completações de código com base no código que estás a escrever.

Por exemplo, suponha que queres criar um método C# chamado addInt que devolve a soma de dois inteiros. Se começares a escrever a assinatura do método, o GitHub Copilot sugere o código que acredita que queres criar.

Captura de ecrã do editor Visual Studio Code a mostrar uma sugestão de texto fantasma para o corpo do método addInt.

A sugestão de texto fantasma é apresentada sem realce de sintaxe colorida. Isto ajuda a diferenciar a sugestão do seu código existente. Você pode aceitar o código sugerido pressionando a tecla Tab.

Você pode pressionar a tecla Esc para rejeitar uma sugestão.

O exemplo addInt é um pouco simplista, por isso podes estar a perguntar-te como GitHub Copilot se comporta com algo mais complexo.

Suponha que você queira criar um método que aceite uma lista de números e retorne a soma dos números primos contidos na lista. Podes nomear o método addPrimeNumbersInNumericList. Quando começas a escrever a assinatura do método, o GitHub Copilot gera uma sugestão para ti. Por exemplo:

Captura de ecrã de Visual Studio Code editor a mostrar uma sugestão de texto fantasma para o método addPrimeNumbersInNumericList body.

É importante analisar as sugestões antes de aceitá-las. Esta sugestão de texto fantasma parece boa, por isso podes aceitar a sugestão pressionando a tecla Tab.

Vamos continuar o cenário um pouco mais.

Depois de a sugestão ser integrada no seu código, nota que o isPrime método está sublinhado a vermelho. Isto porque o isPrime método ainda não existe no código.

O GitHub Copilot é treinado para seguir as melhores práticas, que incluem decompor problemas complexos em partes menores e mais geríveis. Neste caso, GitHub Copilot sugere que crie um método isPrime separado para verificar se um número é primo.

GitHub Copilot está pronto para sugerir um excerto de código para o método isPrime. Quando inseres uma linha em branco abaixo do método addPrimeNumbersInNumericList, GitHub Copilot sugere um método isPrime que podes usar.

Captura de ecrã do editor Visual Studio Code que mostra uma sugestão de texto fantasma para o método auxiliar isPrime que aparece após o método addPrimeNumbersInNumericList.

Sugestões de texto fantasma aceleram o processo de desenvolvimento ao fornecer excertos de código. Mas e se as sugestões não forem exatamente o que você precisa? O GitHub Copilot fornece uma interface para gerir sugestões de texto fantasma.

Gerir sugestões de texto fantasma

Quando o GitHub Copilot sugere uma conclusão de texto fantasma, também fornece uma interface para gerir as sugestões. Pode aceitar uma sugestão, rever outras sugestões ou rejeitar as sugestões.

Ao passar o ponteiro do mouse sobre uma sugestão de preenchimento automático, são apresentadas várias opções para gerenciar as sugestões.

Captura de ecrã do editor Visual Studio Code a mostrar a barra de ferramentas de gestão de sugestões de texto fantasma com Aceitar, Aceitar Word, navegação e opções adicionais.

A interface padrão para gerenciar sugestões inclui as seguintes opções:

  • Aceite a sugestão (na íntegra) selecionando Aceitar. Você também pode aceitar a sugestão pressionando a tecla Tab.
  • Aceite parcialmente a sugestão selecionando Aceitar Word. Também pode aceitar parcialmente uma sugestão pressionando as Ctrl + teclas (seta da direita).
  • Veja sugestões alternativas selecionando > ou <. Também pode consultar as sugestões alternativas pressionando as Alt + ] teclas ou.Alt + [

Selecionar a opção Aceitar Palavra aceita a próxima palavra numa sugestão. Isso é útil quando você deseja aceitar parte da sugestão e, em seguida, continuar digitando seu próprio código. Por exemplo, pode aceitar a primeira palavra da sugestão de método isPrime.

Continue a selecionar Aceitar Word até aceitar tanto da sugestão quanto quiser.

Selecionar o ícone de reticência (...) à direita do botão Aceitar Palavra oferece opções adicionais, como Aceitar Linha e Sempre Mostrar Barra de Ferramentas.

Selecionar a opção Sempre Mostrar a Barra de Ferramentas garante que a barra de ferramentas permanece visível ao usar atalhos de teclado para gerir sugestões de texto fantasma. Selecionar a opção Open Completions Panel abre o Painel de Completações do GitHub Copilot.

Observação

Para aceitar uma linha inteira de uma sugestão, precisa de configurar um atalho de teclado personalizado para o editor.action.inlineSuggest.acceptNextLine comando. Esta opção não está disponível por defeito na barra de ferramentas.

Gerar sugestões de código a partir de comentários

Para além de sugerir uma autocompletação baseada em código, o GitHub Copilot pode usar comentários de código para sugerir excertos de código. Use frases em linguagem natural para descrever o código que você deseja criar. Isto permite ao GitHub Copilot propor sugestões de autopreenchimento que cumpram requisitos específicos. Por exemplo, você pode especificar o tipo de algoritmo que deseja usar em um cálculo ou quais métodos e propriedades deseja adicionar a uma classe.

Voltemos ao exemplo do número primo. Neste ponto, você tem o seguinte código:

int addPrimeNumbersInNumericList(List<int> numbers)
{
    int sum = 0;
    foreach (int number in numbers)
    {
        if (IsPrime(number))
        {
            sum += number;
        }
    }
    return sum;
}

private bool IsPrime(int number)
{
    if (number <= 1)
    {
        return false;
    }
    for (int i = 2; i <= Math.Sqrt(number); i++)
    {
        if (number % i == 0) return false;
    }
    return true;
}

Os métodos addPrimeNumbersInNumericList e isPrime parecem estar completos. No entanto, ainda precisa de uma lista de números que possa ser usada como argumento quando chamar o addPrimeNumbersInNumericList método. Você pode escrever um comentário que descreva a lista de números desejada. Por exemplo, uma lista de 100 números aleatórios que variam de 1 e 1000.

Quando começas a escrever o comentário, o GitHub Copilot sugere uma conclusão automática para ti. O GitHub Copilot usa o código à sua volta para melhorar as suas sugestões. Por exemplo, se começares a introduzir o comentário // create, GitHub Copilot usa o código à volta para prever o que queres criar. Neste caso, GitHub Copilot usa o método addPrimeNumbersInNumericList para prever que se quer criar a list of numbers.

Captura de ecrã do editor Visual Studio Code mostrando uma sugestão de texto fantasma completando o comentário '// criar uma lista de números'.

À medida que continua a escrever o seu comentário, o GitHub Copilot atualiza a sua sugestão de autocompletamento. Quando estiver pronto para aceitar a sugestão, selecione Aceitar ou pressione a tecla Tab.

Quando crias uma nova linha de código após o comentário, o GitHub Copilot começa a gerar um excerto de código com base no comentário e no teu código existente.

Captura de ecrã de Visual Studio Code editor a mostrar uma sugestão de texto fantasma para a primeira linha de código com base no comentário acima.

Aceite cada uma das sugestões tal como aparecem. Se o GitHub Copilot não estiver concluído, gera outra sugestão para aceitares.

Se introduzires uma nova linha de código depois do excerto de código estar completo, o GitHub Copilot gera outra sugestão de autopreenchimento com base nos requisitos do teu projeto de código.

Resumo

Sugestões de texto fantasma e próximas sugestões de edição ajudam-no a escrever código de forma mais eficiente e precisa. Sugestões de texto fantasma aparecem como texto atenuado na localização do cursor enquanto escreves; sugestões de edição seguintes preveem a localização e o conteúdo da tua próxima edição com base nas tuas alterações recentes. Pode gerar uma sugestão de texto fantasma introduzindo uma linha de código parcial ou completa, um comentário parcial ou completo, ou uma linha de código em branco. Podes aceitar uma sugestão pressionando a tecla Tab, ou descartá-la pressionando a tecla Esc. Você pode gerenciar sugestões usando a barra de ferramentas que aparece quando você passa o mouse sobre uma sugestão. A barra de ferramentas permite-lhe rever sugestões alternativas, aceitar uma sugestão, aceitar uma palavra de uma sugestão ou abrir o Painel de Conclusão do GitHub Copilot para ver mais sugestões.