Quick assists para edição
Usando refatorações localizadas para ser mais produtivo
Você passa tempo demais fazendo tarefas repetitivas enquanto programa? Se sim, tenho boas notícias para você. Muitas dessas tarefas repetitivas podem ser feitas automaticamente com um recurso que chamamos de quick assists.
Um quick assist é uma edição automática voltada para fazer uma mudança comum no código. Diferente de um quick fix, que vimos em Quick fixes para problemas de análise e Aplicação em lote de correções, a presença de um quick assist não é uma sugestão de que você deve mudar seu código; ele está ali simplesmente para facilitar o seu trabalho.
Vamos ver alguns exemplos.
Declarando variáveis locais
#Você provavelmente passa um bom tempo declarando e inicializando variáveis locais. As ferramentas podem ajudar com parte disso. Se você digitar a expressão de inicialização, pode usar um quick assist para criar uma variável local que captura o valor da expressão.
Se você começar com o código abaixo e posicionar o cursor em qualquer lugar da expressão, o ícone da lâmpada aparece perto da borda esquerda do editor. Se passar o mouse sobre ele, pode clicar para abrir um menu com os quick assists disponíveis.
Escolher o assist insere uma declaração de variável, usando a expressão como inicializador, e seleciona o nome da variável para que você possa escolher um dos nomes sugeridos ou digitar o seu próprio:
Pressionar a tecla enter/return aceita o nome digitado.
Estilos de corpo de função
#Se você usa com frequência funções com corpo de expressão, provavelmente já precisou convertê-las em uma função com corpo de bloco em algum momento. Há um assist para isso também. Por exemplo, se você tiver um código como o seguinte e posicionar o cursor dentro da seta, verá as opções a seguir:
Selecionar “Convert to block body” reescreve o corpo da função para ficar assim:
E, sim, existe outro assist que converte de corpo de bloco para corpo de expressão.
Reescrevendo instruções if
#Assists também podem ajudar em reestruturações maiores. Se você já escreveu código estruturado assim:
void f(int a, int b, int c, int d) {
if (a == b) {
if (a == c || a == d) {
print(0);
}
}
}
e percebeu que poderia combinar as duas condições, existe um assist para isso. Coloque o cursor no if
interno e abra o menu:
Selecionar “Join ‘if’ statement with outer ‘if’ statement” reescreve o código para ficar assim:
void f(int a, int b, int c, int d) {
if (a == b && (a == c || a == d)) {
print(0);
}
}
O assist também aparece se você colocar o cursor no if externo, embora, nesse caso, o menu diga “Join ‘if’ statement with inner ‘if’ statement”.
Usando recursos mais novos da linguagem
#Também há assists para ajudar a converter para recursos mais novos da linguagem. Por exemplo, se você tiver uma classe assim:
class A {
A({int? x, int? y});
}
class B extends A {
B({int? x, int? y}) : super(x: x, y: y);
}
em que o construtor da subclasse passa alguns parâmetros para a superclasse sem modificá-los, existe uma forma mais limpa de escrever o código. Coloque o cursor no nome do construtor
B e abra o menu:
Selecionar “Convert to using super parameters” reescreve o código para ficar assim:
Há mais assists disponíveis do que conseguimos cobrir em um único artigo. Da próxima vez que você for fazer uma edição que faz o tempo todo, confira as ações de contexto para ver se existe um assist que facilite a tarefa.
Mais do Dart
Resultados do Google Summer of Code 2026
Hoje, destacamos os projetos e os resultados dos colaboradores orientados pelo Dart e pelo Flutter no Google Summer of Code 2026.
Dart no Google Summer of Code 2026
Estamos animados para anunciar que o projeto Dart será mentor de contribuidores pela sétima vez no Google Summer of Code 2026!