Como Usar o GitHub Copilot Chat para Refatorar uma Função
🔍 WiseChecker

Como Usar o GitHub Copilot Chat para Refatorar uma Função

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.