Examinar os recursos de conclusão de código do GitHub Copilot
GitHub Copilot fornece dois tipos de sugestões embutidas. As sugestões de texto fantasma aparecem como texto esmaecido no local do cursor atual à medida que você digita. As próximas sugestões de edição (NES) preveem o local e o conteúdo da próxima edição de código com base nas alterações recentes que você fez.
Você recebe sugestões de texto fantasma ao executar 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.
As próximas sugestões de edição aparecem automaticamente quando você edita o código. Eles prevêem que alteração você provavelmente fará em seguida com base em suas edições recentes e são exibidas com um indicador especial mostrando o local de edição sugerido.
Cenários comuns de sugestão de próxima edição
As próximas sugestões de edição são especialmente úteis em três cenários de codificação:
-
Erros de captura: o NES detecta problemas como erros de digitação (
conts x = 5→const x = 5), expressões ternárias invertidas e operadores de comparação incorretos e, em seguida, sugere a correção correta. -
Alterações de intenção em cascata: quando você renomeia um tipo ou variável, o NES sugere propagar essa alteração por meio de todo o código dependente. Por exemplo, renomear uma classe de
PointparaPoint3Daciona sugestões para adicionar uma coordenadazsempre que 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, o NES sugere adaptá-lo para corresponder ao estilo do código ao redor.
Gerar uma sugestão de texto fantasma
GitHub Copilot acelera o desenvolvimento de aplicativos sugerindo conclusões de código com base no código que você está escrevendo.
Por exemplo, suponha que você queira criar um método C# chamado addInt que retorna a soma de dois inteiros. Se você começar a digitar a assinatura do método, GitHub Copilot sugerirá o código que ele acredita que você deseja criar.
A sugestão de texto fantasma é exibida sem realce de sintaxe colorida. Isso ajuda a diferenciar a sugestão do código existente. Você pode aceitar o código sugerido pressionando a tecla Tab.
Você pode pressionar a tecla Esc para ignorar uma sugestão.
O exemplo addInt é um pouco simplista, portanto, você pode estar se perguntando como GitHub Copilot faz 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 principais contidos na lista. Você pode nomear o método addPrimeNumbersInNumericList. Quando você começa a digitar a assinatura do método, GitHub Copilot gera uma sugestão para você. Por exemplo:
É importante revisar as sugestões antes de aceitá-las. Essa sugestão de texto fantasma parece boa, para que você possa aceitar a sugestão pressionando a tecla Tab.
Vamos continuar o cenário um pouco mais.
Depois que a sugestão for mesclada em seu código, você observará que o isPrime método é sublinhado em vermelho. Isso ocorre porque o isPrime método ainda não existe no código.
GitHub Copilot é treinado para seguir as práticas recomendadas, que incluem dividir problemas complexos em partes menores e mais gerenciáveis. Nesse caso, GitHub Copilot está sugerindo que você crie um método isPrime separado para verificar se um número é primo.
GitHub Copilot está pronto para sugerir um trecho de código para o método isPrime. Quando você insere uma linha em branco abaixo do método addPrimeNumbersInNumericList, GitHub Copilot sugere um método isPrime que você pode usar.
Sugestões de texto fantasma aceleram o processo de desenvolvimento fornecendo snippets de código. Mas e se as sugestões não forem exatamente o que você precisa? GitHub Copilot fornece uma interface para gerenciar sugestões de texto fantasma.
Gerenciar sugestões de texto fantasma
Quando o GitHub Copilot sugere uma autocompletação de texto, ele também fornece uma interface para gerenciar as sugestões. Você pode aceitar uma sugestão, examinar outras sugestões ou ignorar as sugestões.
Quando você passa o ponteiro do mouse sobre uma autocompilação sugerida, você recebe várias opções para gerenciar as sugestões.
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 Accept Word. Você também pode aceitar parcialmente uma sugestão pressionando as teclas
Ctrl+→(seta para a direita). - Exibir sugestões alternativas selecionando
>ou<. Você também pode exibir as sugestões alternativas pressionando as teclasAlt+]ouAlt+[.
Selecionar a opção Accept Word aceita a próxima palavra da sugestão. Isso é útil quando você deseja aceitar parte da sugestão e continuar digitando seu próprio código. Por exemplo, você pode aceitar a primeira palavra da sugestão de método isPrime.
Continue selecionando Accept Word até que você aceite a maior parte da sugestão desejada.
Selecionar o ícone de reticências (...) à direita do botão Aceitar Word fornece opções adicionais, como Aceitar Linha e Sempre Mostrar Barra de Ferramentas.
Selecionar a opção Barra de Ferramentas Always Show garante que a barra de ferramentas permaneça visível ao usar atalhos de teclado para gerenciar sugestões de texto fantasma. Selecionar a opção Open Completions Panel abre o Painel de Conclusões do GitHub Copilot.
Observação
Para aceitar uma linha inteira de uma sugestão, você precisa configurar um atalho de teclado personalizado para o editor.action.inlineSuggest.acceptNextLine comando. Essa opção não está disponível por padrão na barra de ferramentas.
Gerar sugestões de código com base em comentários
Além de sugerir um preenchimento automático com base no código, o GitHub Copilot pode usar comentários de código para sugerir trechos de código. Use frases de linguagem natural para descrever o código que você deseja criar. Isso permite que GitHub Copilot proponha sugestões de preenchimento automático que atendam a 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 você deseja adicionar a uma classe.
Vamos retornar ao exemplo de número principal. 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;
}
O addPrimeNumbersInNumericList e o isPrime métodos parecem estar completos. No entanto, você ainda precisa de uma lista de números que podem ser usados como um argumento quando você chama o addPrimeNumbersInNumericList método. Você pode escrever um comentário que descreve a lista de números desejados. Por exemplo, uma lista de 100 números aleatórios que variam de 1 e 1000.
Quando você começa a inserir o comentário, GitHub Copilot sugere uma preenchimento automático que conclui o comentário para você. GitHub Copilot usa o código ao redor para melhorar suas sugestões. Por exemplo, se você começar a inserir o comentário // create, GitHub Copilot usará o código ao redor para prever o que deseja criar. Nesse caso, GitHub Copilot usa o método addPrimeNumbersInNumericList para prever que você deseja criar a list of numbers.
À medida que você continua a escrever seu comentário, GitHub Copilot atualiza sua sugestão de preenchimento automático. Quando estiver pronto para aceitar a sugestão, selecione Aceitar ou pressione a tecla Tab.
Quando você cria uma nova linha de código após o comentário, GitHub Copilot começa a gerar um snippet de código com base no comentário e no código existente.
Aceite cada uma das sugestões conforme elas aparecem. Se GitHub Copilot não for concluído, ele gerará outra sugestão para você aceitar.
Se você inserir uma nova linha de código após a conclusão do snippet de código, o GitHub Copilot gerará outra sugestão de preenchimento automático com base nos requisitos do projeto.
Resumo
Sugestões de texto fantasma e sugestões de próxima edição ajudam você a escrever código com mais eficiência e precisão. As sugestões de texto fantasma aparecem como texto esmaecido no local do cursor à medida que você digita; As próximas sugestões de edição preveem o local e o conteúdo da próxima edição com base em suas alterações recentes. Você pode gerar uma sugestão de texto fantasma inserindo uma linha de código parcial ou completa, um comentário de código parcial ou completo ou uma linha de código em branco. Você pode aceitar uma sugestão pressionando a tecla Tab ou descartando-a 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 que você examine sugestões alternativas, aceite uma sugestão, aceite uma palavra de sugestão ou abra o Painel de Conclusões do GitHub Copilot para exibir mais sugestões.