Acciones contextuales

Las acciones contextuales de ReSharper le ahorran mucha escritura cuando necesita realizar cambios menores en su código. Cambie los modificadores de acceso, genere código que busque valores nulos, convierta un foreach en for y viceversa. Todo con solo presionar unas pocas teclas. Hay más de 450 acciones contextuales disponibles en C#, VB.NET, XAML, ASP.NET y otros lenguajes soportados. Presione Alt+Intro sobre un elemento de código que desea cambiar y seleccione una acción contextual a aplicar.

Acciones contextuales de ReSharper

Aplicación de acciones contextuales

Tan pronto como está disponible un acción contextual para la posición actual del signo de intercalación, ReSharper muestra el icono de martillo ReSharper's context action indicator a la izquierda del signo de intercalación. Si hay varias funcionalidades contextuales disponibles, que podrían ser una mezcla de acciones contextuales y arreglos rápidos, se muestra el icono de la acción con la mayor prioridad. Haga clic en el indicador de acción o presione Alt+Intro para ver todas las acciones disponibles.

Las acciones contextuales similares (por ejemplo, acciones para distintos modificadores de acceso) a menudo se agrupan. En este caso, expanda el uso usando la flecha derecha y elija la acción deseada.

Aplicación de acciones contextuales en ámbitos más amplios (archivo, proyecto o solución)

Aplicación de acciones contextuales en ámbitos más amplios

Algunas acciones contextuales (Remove #regions, Specify enum member values, Add name to argument, etc.) se pueden aplicar automáticamente en un ámbito más grande: en el método, clase archivo o proyecto actual, o en la solución completa. Puede hacer clic sobre una flecha pequeña a la derecha o presionar la tecla de flecha derecha en el teclado para elegir dónde aplicar la transformación.

Arreglos rápidos vs acciones contextuales

Acciones contextuales vs arreglos rápidos

ReSharper también ofrece arreglos rápidos, que se pueden mostrar en la lista desplegable junto con acciones contextuales. La diferencia entre estas dos es simple: los arreglos rápidos solo aparecen para problemas de código resaltados y apuntan a corregirlos y quizás mejorar su código, mientras que las acciones contextuales representan mini refactorizaciones, que simplemente cambian el código.

Es importante tener en cuenta que los arreglos rápidos tienen mayor prioridad, por lo que si hay algún arreglo rápido en su signo de intercalación, deberá presionar Alt+Intro para ver si hay alguna acción contextual.

Añadir una comprobación de valores null en C# con una acción contextual

C#: Ejemplo de comprobación de existencia de null en parámetro

Con ReSharper, no necesita escribir nada para comprobar la existencia de null en un parámetro. Tan solo presione Alt+Intro y ReSharper generará toda la rutina de comprobación de null por usted.

Opcionalmente, si usa en su proyecto las anotaciones dentro del código de JetBrains, el parámetro se marca con el atributo [NotNull] para que ReSharper le advierta sobre cualquier invocación del método con null como su parámetro.

Conversión de LINQ a código con una acción contextual de ReSharper

C#: Ejemplo de convertir LINQ a código

En este ejemplo puede ver cómo las acciones contextuales de ReSharper le ayudan a convertir rápidamente una consulta LINQ en un bucle foreach y en una expresión lambda.

Esto es lo contrario al famoso arreglo rápido de ReSharper que convierte bucles en declaraciones LINQ.

Conversión de iteradores a colección con una acción contextual de ReSharper

C#: Ejemplo de convertir iteradores a colección

Algunas acciones contextuales son más bien refactorizaciones: automatizan transformaciones complejas de código preservando la lógica.

En este ejemplo, ReSharper le ayuda a transformar un iterador con declaraciones yield return en código que crea, llena y devuelve una colección.

Partir declaración y asignación con una acción contextual de ReSharper

C#: Ejemplo de partir declaración y asignación

Si necesita añadir una condición a la inicialización de una variable local existente, esta acción contextual le ayudará a separar rápidamente la inicialización. Incluso si la variable se escribe implícitamente, ReSharper calculará automáticamente el tipo correcto y lo usará en la declaración.

Inversión de expresión "if" con una acción contextual de ReSharper

C#: Ejemplo de invertir una declaración "if"

Con esta acción contextual podrá cambiar rápidamente las ramas de una declaración if. ReSharper se asegurará de que la condición, sin importar su complejidad, se niegue correctamente para que la lógica permanezca inalterada.

Conversión de método anónimo en expresión lambda y viceversa con una acción contextual de ReSharper

C#: Ejemplo de método anónimo a lambda y viceversa

Sin importar la sintaxis usada para una delegada (método anónimo o expresión lambda), las acciones contextuales de ReSharper le permiten cambiar la sintaxis presionando un par de teclas, sin reescribir el código a mano.

Creación de una sobrecarga en VB.NET con una acción contextual

VB.NET: Ejemplo de crear sobrecarga sin parámetro

Esta acción contextual le permite crear una sobrecarga de método que usa un valor predeterminado para el parámetro seleccionado y, nuevamente, sin escribir nada.

Esta acción también está disponible en C# y TypeScript.

Acciones contextuales de ReSharper en código tipo XML

Ejemplo de acciones contextuales en código tipo XML

En los lenguajes XML, las acciones contextuales de ReSharper le ayuda a optimizar los procedimientos de edición relativos a expandir/contraer etiquetas vacías y convertir atributos en etiquetas y viceversa. Estas acciones están disponibles en XML, XAML, ASP.NET, script de compilación, HTML y archivos Resx.

Configuración de acciones contextuales

Configurar las acciones contextuales

Si no desea que ReSharper muestre un tipo particular de acción contextual en el menú contextual, puede desactivarlo en el cuadro de diálogo ReSharper Options.