Gerar código usando sugestões de conclusão de código do GitHub Copilot

Concluído

GitHub Copilot pode fornecer sugestões de conclusão de código para várias linguagens de programação e uma ampla variedade de estruturas, mas funciona especialmente bem para Python, JavaScript, TypeScript, Ruby, Go, C# e C++. Os preenchimentos de linha de código são gerados com base no contexto do código que você está escrevendo. Você pode aceitar, rejeitar ou aceitar parcialmente as sugestões fornecidas pelo GitHub Copilot.

GitHub Copilot fornece duas maneiras de gerar completações de código:

  • A partir de um comentário: você pode gerar preenchimentos de linha de código escrevendo um comentário que descreva o código que desejar gerar. GitHub Copilot fornece sugestões de conclusão de código com base no comentário que você escreve.

  • A partir do código: você pode gerar preenchimentos de linha de código iniciando uma linha de código ou pressionando Enter depois de terminar uma linha. GitHub Copilot fornece sugestões de conclusão de código com base no código que você escreve.

Gerar completamentos de linha de código a partir de um comentário usando o GitHub Copilot

GitHub Copilot gera sugestões de conclusão de código com base no comentário e no contexto existente do seu aplicativo.

Você pode usar comentários para descrever trechos de código, métodos, estruturas de dados e outros elementos do código.

Suponha que você tenha o seguinte snippet de código:


namespace ReportGenerator;

class QuarterlyIncomeReport
{
    static void Main(string[] args)
    {
        // create a new instance of the class
        QuarterlyIncomeReport report = new QuarterlyIncomeReport();

        // call the GenerateSalesData method

        // call the QuarterlySalesReport method
        
    }

    public void QuarterlySalesReport()
    {

        Console.WriteLine("Quarterly Sales Report");
    }
}    

Por exemplo, o comentário a seguir pode ser usado para criar uma estrutura de dados:


/* public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price */

GitHub Copilot gera uma ou mais sugestões de conclusão de código com base no comentário de código e nos arquivos de código abertos no editor.

Captura de tela mostrando o preenchimento de código de um comentário que descreve uma estrutura de dados.

Observe os tipos de dados usados para declarar os campos da estrutura de dados. GitHub Copilot seleciona tipos de dados e nomes de variáveis com base no código existente e no comentário de código. GitHub Copilot tenta determinar como o aplicativo usa variáveis e define os tipos de dados adequadamente.

Quando GitHub Copilot gera mais de uma sugestão, você pode percorrer as sugestões selecionando as setas para a esquerda ou direita (> ou <) localizadas à esquerda do botão Accept. Isso permite que você examine e selecione a sugestão que melhor atenda às suas necessidades.

Não há problema em aceitar uma sugestão de preenchimento de código que não seja uma correspondência exata do que você deseja. No entanto, as alterações necessárias para "corrigir" a sugestão devem ser claras. Nesse caso, alguns dos tipos de dados não são o que você quer, mas você pode ajustá-los depois de aceitar a preenchimento automático sugerido.

Se nenhuma das opções sugeridas for parecido com o que você precisa, você pode tentar duas coisas. Para abrir uma nova guia do editor que contém uma lista de outras sugestões, pressione as teclas Ctrl + Enter. Essa combinação de teclas de acesso abre uma nova guia que contém mais 10 sugestões. Cada sugestão é seguida por um botão que você pode usar para aceitar a sugestão. A guia é fechada automaticamente depois que você aceita uma sugestão. A outra opção é pressionar a tecla Esc para ignorar as sugestões e tentar novamente. Você pode ajustar o comentário de código para fornecer mais contexto para o GitHub Copilot usar.

Observação

GitHub Copilot pode ocasionalmente propor uma sugestão em estágios. Se isso acontecer, pressione Enter para ver as etapas adicionais da sugestão após pressionar a tecla Tab.

Para aceitar uma sugestão de estrutura de dados, pressione a tecla Tab ou selecione Aceitar.

Para modificar os tipos de dados dos campos, atualize o código da seguinte forma:

public struct SalesData
{
    public DateOnly dateSold;
    public string departmentName;
    public int productID;
    public int quantitySold;
    public double unitPrice;
}

Fazer ajustes rápidos nas sugestões de preenchimento de código ajuda a garantir que você esteja criando o código desejado. É especialmente importante fazer correções no início do processo de desenvolvimento quando grandes partes da base de código ainda precisam ser desenvolvidas. As conclusões de código subsequentes são baseadas no código que você já escreveu, portanto, é importante garantir que seu código seja o mais preciso possível.

Use as próximas sugestões de edição para acompanhar as alterações de código

Os completadores de texto fantasma são ótimos para preencher o novo código enquanto você o escreve. Mas a maior parte da codificação diária envolve a edição de código existente – renomear uma variável, atualizar um tipo de dados ou corrigir um erro lógico. As próximas sugestões de edição (NES) do GitHub Copilot são projetadas exatamente para esse cenário.

Quando você faz uma edição, o NES analisa a alteração e prevê onde sua próxima edição precisa acontecer e o que essa edição deve ser, mesmo que esteja em uma linha diferente ou em uma parte diferente do arquivo. Isso mantém você no fluxo sem precisar pesquisar manualmente cada local que exija atualizações.

Para habilitar as próximas sugestões de edição, defina a configuração github.copilot.nextEditSuggestions.enabled como true no Visual Studio Code.

Depois de habilitado, você pode usar o NES das seguintes maneiras:

  1. Faça uma edição no editor , por exemplo, renomeie uma variável ou altere uma assinatura de método.

  2. Encontre a seta da margem que aparece à esquerda do editor. A seta aponta para o local da próxima edição sugerida.

  3. Pressione Tab para navegar até o local de edição sugerido.

  4. Pressione Tab novamente para aceitar a sugestão ou pressione Escape para descartá-la.

Aqui estão alguns cenários comuns em que o NES é especialmente útil:

  • Propagação de renomeação: renomeie uma variável uma vez e o NES sugerirá a atualização de todas as outras referências a ela no arquivo.
  • Alterações de tipo: altere o tipo de dados de um campo e o NES sugerirá a atualização do código subsequente que o utiliza.
  • Correções lógicas: corrija uma condição invertida ou um erro de digitação em uma palavra-chave e o NES sinaliza a seção de código relacionada que requer atualizações.
  • Refatoração: depois de copiar e colar um bloco de código, o NES sugere como adaptá-lo para corresponder ao estilo de código ao redor.

Observação

As próximas sugestões de edição preveem a próxima alteração mais provável com base nas edições atuais. Sempre examine cada sugestão antes de aceitá-la, pois a correção certa para seu cenário específico pode ser diferente.

Resumo

As conclusões de linha de código são um recurso avançado de GitHub Copilot que pode ajudá-lo a gerar código de forma rápida e eficiente. Usando comentários para descrever o código que você deseja gerar, você pode criar estruturas de dados, métodos e outros elementos de código com esforço mínimo. Além disso, GitHub Copilot pode gerar conclusões de linha de código com base no código inserido, permitindo que você crie aplicativos complexos com facilidade.