Ações de contexto

As ações de contexto do ReSharper reduzem consideravelmente o esforço de digitação quando você precisa inserir pequenas alterações no seu código. Altere modificadores de acesso, gere código que verifica a existência de valores nulos, converta foreach em for (e vice-versa), tudo isso com apenas alguns pressionamentos de tecla. Mais de 450 ações de contexto estão disponíveis em C#, VB.NET, XAML, ASP.NET e outras linguagens com suporte. Pressione Alt+Enter sobre um elemento de código que você deseja alterar e selecione uma ação de contexto para aplicar.

ReSharper's context actions

Aplicar ações de contexto

Assim que uma ação de contexto se torna disponível na posição atual do sinal de intercalação, o ReSharper exibe o ícone de martelo Indicador de ação de contexto do ReSharper à esquerda desse sinal. Se houver vários recursos contextualmente disponíveis, que podem ser uma combinação de ações de contexto e correções rápidas, o ícone da ação com a prioridade mais alta será exibido. Clique no indicador de ação ou pressione Alt+Enter para ver todas as ações disponíveis.

Ações de contexto semelhantes (como ações para modificadores de acesso diferentes) estão geralmente agrupadas. Nesse caso, expanda o grupo usando a seta para a direita para selecionar a ação desejada.

Applying context actions in wider scopes (file, project, or solution)

Aplicar ações de contexto em escopos mais amplos

Algumas ações de contexto (Remove #regions, Specify enum member values, Add name to argument, etc.) podem ser aplicadas automaticamente em um escopo mais amplo: no método atual, na classe, no arquivo, no projeto atual ou em toda a solução. Você pode clicar em uma pequena seta à direita ou pressionar a tecla de seta à direita no teclado para escolher onde aplicar a transformação.

Correções rápidas versus ações de contexto

Ações de contexto versus correções rápidas

O ReSharper também fornece correções rápidas, que podem ser exibidas na lista suspensa junto com ações de contexto. A diferença entre elas é simples: correções rápidas aparecem apenas para problemas de código realçados, visando corrig-los e, com sorte, melhorar seu código, enquanto ações de contexto representam mini-refatorações, que simplesmente alteram o código.

É importante observar que correções rápidas têm maior prioridade e, portanto, se houver correções rápidas no seu sinal de intercalação, você deverá pressionar Alt+Enter para ver se existem ações de contexto.

Introducing a null check in C# with a context action

C#: parâmetro de verificação para valores nulos - Exemplo

Com o ReSharper, você não precisa digitar nada para verificar se um parâmetro possui valores nulos — basta pressionar Alt+Enter, e o ReSharper gerará toda a rotina de verificação de nulos para você.

Opcionalmente, se você usar anotações de código da JetBrains no seu projeto, o parâmetro será marcado com o atributo [NotNull], para que o ReSharper possa avisar sobre quaisquer invocações do método com valores nulos para esse parâmetro.

Converting LINQ to code with ReSharper's context action

C#: converter LINQ em código - Exemplo

Neste exemplo, você pode ver como as ações de contexto do ReSharper ajudam a converter rapidamente uma consulta LINQ em um loop foreach e em uma expressão lambda.

Isto é o oposto da famosa correção rápida do ReSharper, que converte loops em instruções LINQ.

Converting iterators to collection with ReSharper's context action

C#: converter iteradores em uma coleção - Exemplo

Algumas ações de contexto são mais parecidas com refatorações — elas automatizam transformações complexas de código e, ao mesmo tempo, preservam a lógica.

Neste exemplo, o ReSharper ajuda a transformar um iterador com instruções yield return em um código que cria, preenche e retorna uma coleção.

Splitting declaration and assignment with ReSharper's context action

C#: dividir uma declaração e uma atribuição - Exemplo

Se você precisar adicionar uma condição à inicialização de uma variável local existente, essa ação de contexto o ajudará a desanexar rapidamente essa inicialização. Mesmo que a variável seja digitada implicitamente, o ReSharper calculará automaticamente o tipo correto e o usará na declaração.

Inverting 'if' expression with ReSharper's context action

C#: inverter a instrução "if" - Exemplo

Com essa ação de contexto, você pode trocar rapidamente as ramificações de uma instrução if. O ReSharper garantirá que a condição, por mais complexa, seja negada adequadamente para que a lógica permaneça inalterada.

Converting anonymous method to lambda expression and back with ReSharper's context action

C#: método anônimo para lambda, e vice-versa - Exemplo

Seja qual for a sintaxe usada para um delegado (método anônimo ou expressão lambda), as ações de contexto do ReSharper permitem que você altere a sintaxe com alguns pressionamentos de teclas, sem precisar reescrever o código manualmente.

Creating an overload in VB.NET with a context action

VB.NET: criar uma sobrecarga sem parâmetro - Exemplo

Essa ação de contexto permite criar uma sobrecarga de método que usa um valor padrão para o parâmetro selecionado e, mais uma vez, sem precisar digitar nada.

A ação também está disponível em C# e TypeScript.

ReSharper's context actions in XML-like code

Ações de contexto em código semelhante a XML - Exemplo

In XML-like languages, ReSharper's context actions help you streamline routine editing procedures of expanding/collapsing empty tags, and converting attributes to tags and back. Essas ações estão disponíveis em XML, XAML, ASP.NET, scripts de compilação, HTML e arquivos Resx.

Configurações de ações de contexto

Configurar ações de contexto

If you don't want ReSharper to show a particular context action in the context menu, you can disable it in the ReSharper Options dialog.