Você tem uma função que funciona, mas é longa, difícil de ler ou duplica lógica. Refatorar manualmente é lento e arriscado. O GitHub Copilot Chat pode analisar a função e sugerir um código mais limpo e sustentável. Este artigo explica como usar o Copilot Chat para refatorar uma função passo a passo, incluindo os prompts exatos e as armadilhas comuns a evitar.
Principais Conclusões: Refatoração com GitHub Copilot Chat
- Painel do GitHub Copilot Chat: Use a interface de chat no VS Code, JetBrains ou GitHub.com para enviar solicitações em linguagem natural sobre uma função específica.
- Comando de barra /refactor: Digite /refactor seguido do seu objetivo para obter uma sugestão de refatoração focada do Copilot.
- Seleção inline e clique direito: Selecione o código da função, clique com o botão direito e escolha Copilot > Refatorar Isso para aplicar as alterações diretamente sem digitar um prompt.
O que o GitHub Copilot Chat Faz para Refatoração
O GitHub Copilot Chat é um assistente de IA conversacional integrado ao seu editor de código. Ele pode ler a função que você seleciona e sugerir melhorias. Refatorar significa alterar a estrutura interna do código sem mudar seu comportamento externo. O Copilot Chat pode dividir uma função grande em funções menores, renomear variáveis para maior clareza, remover código duplicado e adicionar anotações de tipo. Ele também pode traduzir código de uma linguagem para outra ou de um paradigma para outro.
Para usar o Copilot Chat na refatoração, você precisa de uma assinatura ativa do GitHub Copilot que inclua o Copilot Chat. O painel de chat está disponível no VS Code, Visual Studio, IDEs JetBrains e no GitHub.com. Você também precisa ter o código da função aberto no editor. Não são necessárias permissões especiais além da assinatura.
Passos para Refatorar uma Função com o Copilot Chat
Os passos a seguir mostram como refatorar uma função usando o painel do Copilot Chat no VS Code. A mesma abordagem funciona em outros editores compatíveis.
- Abra o arquivo que contém a função
Certifique-se de que a função que deseja refatorar está visível no editor. Selecione todo o corpo da função, incluindo sua assinatura, clicando nos números das linhas ou arrastando o cursor. - Abra o painel do Copilot Chat
Pressione Ctrl+Shift+I no Windows ou Cmd+Shift+I no macOS. O painel de chat abre ao lado do editor. Se o painel não abrir, verifique se o Copilot Chat está ativado nas configurações da extensão. - Digite um prompt de refatoração claro
Na caixa de entrada do chat, digite um prompt que descreva seu objetivo. Por exemplo: “/refactor esta função para ser mais legível dividindo-a em funções auxiliares menores”. Pressione Enter para enviar o prompt. O Copilot analisa o código selecionado e retorna uma sugestão. - Revise o código sugerido
Leia o código refatorado que o Copilot retorna. Verifique se a assinatura da função permanece a mesma e se a lógica produz as mesmas saídas para as mesmas entradas. Procure por imports ou dependências ausentes. - Aplique a sugestão
Clique no botão Inserir no Cursor no topo da sugestão para substituir sua função original pela versão refatorada. Alternativamente, copie o código manualmente se quiser manter o original para comparação. - Teste a função refatorada
Execute seus testes existentes ou teste manualmente a função para confirmar que ela ainda funciona corretamente. Se os testes falharem, desfaça a alteração e refine seu prompt com instruções mais específicas.
Método Alternativo: Refatorar com Clique Direito
Se preferir não digitar um prompt, você pode usar o comando inline de refatoração. Selecione o código da função, clique com o botão direito e escolha Copilot > Refatorar Isso. O Copilot mostra imediatamente uma versão refatorada em uma visualização de diff. Revise as alterações e clique em Aceitar para aplicá-las.
Problemas Comuns ao Refatorar com o Copilot Chat
O Copilot retorna código que não compila ou tem erros de sintaxe
Isso geralmente acontece quando o código selecionado está incompleto ou quando o Copilot interpreta mal a linguagem. Certifique-se de selecionar toda a função, incluindo as chaves de abertura e fechamento. Se o erro persistir, adicione o nome da linguagem ao seu prompt, por exemplo: “/refactor esta função Python para usar list comprehensions”.
O Copilot altera o comportamento da função
O Copilot pode introduzir mudanças sutis de lógica, especialmente com instruções condicionais complexas. Sempre execute sua suíte de testes após aplicar qualquer sugestão de refatoração. Se um teste falhar, reverta a alteração e tente um prompt mais conservador, como “/refactor esta função para melhorar a legibilidade sem alterar nenhuma lógica”.
O Copilot sugere uma refatoração maior do que o necessário
Às vezes, o Copilot propõe uma reescrita completa da função ou sugere padrões de design que são exagerados para o seu caso de uso. Nesse caso, rejeite a sugestão e refine seu prompt. Por exemplo, diga “/refactor esta função para extrair apenas a lógica de validação em uma função separada” em vez de uma solicitação genérica de refatoração.
O Copilot não respeita o código selecionado
Se o Copilot Chat ignorar sua seleção e analisar o arquivo inteiro, reselecione o código e pressione Ctrl+Shift+I novamente. No VS Code, você também pode usar a variável #selection no seu prompt para forçar o Copilot a focar nas linhas selecionadas.
Comparação: GitHub Copilot Chat vs GitHub Copilot Code Completion para Refatoração
| Item | Copilot Chat | Copilot Code Completion |
|---|---|---|
| Como acionar | Abra o painel de chat e digite um prompt | Comece a digitar ou pressione Ctrl+Enter para uma sugestão |
| Escopo da refatoração | Pode reescrever funções ou classes inteiras | Geralmente sugere uma linha ou um pequeno bloco |
| Controle sobre a saída | Você especifica o objetivo da refatoração em linguagem natural | Sem controle; a conclusão adivinha sua intenção |
| Melhor para | Reestruturação maior, extração de funções, renomeação | Pequenas melhorias inline, correção de erros de digitação |
| Risco de quebrar o código | Maior se você não testar a saída | Menor porque as alterações são incrementais |
Conclusão
Agora você pode refatorar uma função usando o GitHub Copilot Chat selecionando o código e digitando um prompt específico. Use o comando de barra /refactor para sugestões focadas ou a opção Refatorar Isso com clique direito para alterações rápidas. Sempre execute seus testes após aplicar qualquer refatoração para confirmar que o comportamento permanece inalterado. Para refatorações complexas, divida a solicitação em etapas menores e revise cada sugestão cuidadosamente antes de aceitá-la.