ReSharper 2021.2 ofrece nuevas inspecciones con arreglos rápidos para el análisis de código C# y la compatibilidad con tipos de referencia que aceptan valores null, y muchas de las funciones disponibles para los archivos de código escritos manualmente están ahora disponibles para los archivos generados por fuente. ReSharper 2021.2 también ofrece compatibilidad con aplicaciones de un solo archivo en Assembly Explorer, una gestión de incidencias mejorada en el Análisis Dinámico de Programas y reglas de nomenclatura avanzadas para registros, métodos de extensión y variables de captura.
Prueba gratuita de 30 días disponible
¿Utiliza variables temporales para intercambiar los valores de las variables? ¡Ahora hay una forma más elegante de hacerlo! ReSharper 2021.2 le ayudará a modernizar su código con el nuevo arreglo rápido Swap via deconstruction
Reduzca el número de asignaciones en su código y aumente el rendimiento. Reemplace la creación de vectores vacíos con Array.Empty<T>.
Si está asignando un nuevo Type[0]
, ReSharper le sugerirá que utilice Type.EmptyTypes
para hacer más eficiente el uso de la memoria.
Si no se requieren EventArgs
específicos, ReSharper le hará saber que puede reemplazar new EventArgs()
con EventArgs.Empty
.
Otras mejoras:
generated_code
de .editorconfig
para marcar archivos o carpetas como código generado y excluirlos del procesamiento. switch
grandes y complejas y expresiones switch
. ¿Tiene muchas supresiones de advertencia de nulables en su base de código después de habilitar los tipos de referencia que aceptan valores null?
ReSharper indica las supresiones (!
) que ya no son necesarias y que pueden ser eliminadas con seguridad.
Una nueva acción de contexto le permite buscar todas las supresiones de advertencia nulables en el ámbito. Desde la ventana de herramientas Find Results, puede volver a evaluar si las supresiones son necesarias o no.
Hemos introducido una nueva refactorización para cambiar la nulabilidad. Está disponible a través de un arreglo rápido, a través de la acción Refactor This, o a través de una refactorización in situ al añadir o eliminar la anotación nulable (?
).
ReSharper actualizará las anotaciones de nulabilidad y sugerirá la propagación de los cambios a través de su base de código.
Varias inspecciones nuevas con los correspondientes arreglos rápidos están disponibles para cuando se utilizan atributos JetBrains.Anotations y están habilitados los tipos de referencia que aceptan valores null.
Actualice los atributos de JetBrains.Annotations a la sintaxis NRT y a los atributos compatibles con el compilador Por ejemplo, ReSharper puede actualizar [CanBeNull] string
a string?
.
ReSharper le informará sobre los atributos redundantes de JetBrains.Annotations, como [NotNull] string
o [ItemCanBeNull] List<string?>.
Y, por supuesto, ofrecerá un arreglo rápido para actualizar su código.
Cuando la sintaxis de las anotaciones de tipo no está permitida, una nueva inspección con un arreglo rápido añade anotaciones compatibles con el compilador, por ejemplo:
[JetBrains.Annotations.NotNull] T param
a [DisallowNull] T param
(where T: class?
) [JetBrains.Annotations.CanBeNull] T
a [System.Diagnostics.MaybeNull] T
(en C# 8, donde la sintaxis T?
no está permitida) ReSharper añade nuevas inspecciones y arreglos rápidos para ayudarle a utilizar anotaciones compatibles con el compilador como [DisallowNull]
, [AllowNull]
, [MaybeNull]
y [NotNull]
.
Una nueva inspección detecta las anotaciones redundantes del compilador, como cuando se aplica [AllowNull]
a un tipo que acepte valores null, y un arreglo rápido las elimina.
Cuando se puede utilizar la sintaxis de tipos de referencia que aceptan valores null, ReSharper sugerirá hacerlo.
Y todavía hay más mejoras que también son dignas de mención:
Obtenga más información en esta publicación del blog: Novedades de los tipos de referencia que aceptan valores null de C# en ReSharper y Rider 2021.2.
Los generadores de código fuente pueden utilizarse para reducir el trabajo de desarrollo tedioso y repetitivo, y para generar código en tiempo de compilación. En ReSharper 2021.2, muchas de las funciones disponibles para los archivos de código escrito manualmente están disponibles también para los archivos generados por fuente. Hemos mejorado la compatibilidad con el editor, hemos mejorado el depurador y hemos añadido compatibilidad con el análisis de errores entre soluciones (SWEA) y las refactorizaciones.
Para el código generado, las advertencias y los errores se muestran en el editor y en la barra de marcadores.
El análisis de errores entre soluciones (SWEA) incluye ahora los archivos generados por los generadores de código fuente. Si hay un error en un archivo generado en su proyecto, podrá detectarlo inmediatamente y navegar hasta él.
Puede modificar este comportamiento utilizando la nueva opción de incluir los archivos generados por fuente, que está habilitada de forma predeterminada y se encuentra en ReSharper | Options | Code Inspection | Settings | Enable solution-wide analysis.
Las refactorizaciones ahora se pueden desencadenar desde archivos generados por fuente. Utilice la refactorización Rename para renombrar una propiedad generada. ¡ReSharper también cambiará el nombre del símbolo relacionado en el código escrito manualmente!
Del mismo modo, Change Signature le permite verificar si el código que se generará después del cambio puede seguir siendo compilado.
Ahora puede utilizar Find Usages, buscar herederos, navegar desde el código generado hasta el código escrito manualmente con Ctrl+Click y Navegate To, y mucho más.
El resaltado semántico está habilitado para que los miembros de la clase como los eventos, los campos y las propiedades se resalten correctamente. Todos los consejos insertados se muestran cuando corresponde.
Lostips de datos propios de ReSharper se muestran durante la depuración. Esto proporciona una asistencia de depuración más potente con capacidad de búsqueda, resaltado de propiedades, y más.
ReSharper admite ahora el código generado por generadores de código fuente en VB.NET.
En la versión anterior, implementamos la compatibilidad con las plantillas de ruta ASP.NET. En la versión v2021.2, hemos continuado en esta dirección y hemos incorporado una mejor compatibilidad con las cadenas URI de HttpClient
:
HttpClient
, la finalización del código sugerirá todos los URI que puedan resolverse a acciones en controladores anotados con atributos [Route]
, [Http{Method}]
o [AcceptVerbs]
. Se han añadido funciones útiles para la navegación:
A veces puede resultar útil especificar reglas de nomenclatura avanzadas para los registros, los métodos de extensión y las variables de captura. A partir de esta versión, es posible configurar estas reglas.
Si prefiere utilizar un estilo de corchete Pico (sangría), estamos aquí para usted. El estilo Pico ha sido añadido como una opción a la pestaña Brace Layout en la página ReSharper | Options | Code Editing | C# | Formatting Style | Braces Layout.
Hemos cambiado las preferencias de formateo predeterminadas en un par de casos para alinearlas con los valores predeterminados de Visual Studio.
La nueva refactorización de la función en línea o Inline Function puede sustituir rápidamente una llamada a una función por el cuerpo de la misma. ReSharper C++ realizará las transformaciones necesarias, manejará todos los conflictos de nombres y reformateará el código resultante.
ReSharper C++ 2021.2 introduce consejos insertados para las conversiones de tipo implícitas, que podrían provocar pérdidas de datos involuntarias o problemas de rendimiento. ReSharper C++ ahora indica dónde ocurren las conversiones implícitas en su código.
DPA almacena ahora dos valores para cada incidencia: el valor máximo y el valor actual. Así se evitan los falsos negativos, ya que antes era posible que las incidencias quedaran por debajo del umbral y desaparecieran de la lista de incidencias, no porque se hubieran solucionado, sino porque sus condiciones de lanzamiento habían cambiado (el programa se ejecutaba durante menos tiempo, la funcionalidad requerida no se ejecutaba, etc.)
The embedded decompiler can now decompile single-file apps. Es compatible con los formatos de archivo único para los SDK .NET Core 3.1, .NET 5 y el próximo .NET 6. Utilizando Assembly Explorer puede navegar por las agrupaciones incluidas dentro de una aplicación de un solo archivo, tal como acostumbra a hacerlo.
En esta versión, hemos seguido mejorando la forma de analizar la asignación de memoria. Se han añadido dos nuevas pestañas a la vista de asignación de memoria:
Ahora es posible generar perfiles para aplicaciones nativas en Windows. Al iniciar una sesión de generación de perfiles, tiene la opción de descargar archivos de símbolos de fuentes nativas desde servidores remotos. La generación de perfiles nativa solo está disponible para el tipo de generación Timeline.
Los desarrolladores de Razor que trabajen en vistas grandes pueden desactivar la asistencia y las sugerencias automáticas, que consumen mucha CPU, si su editor comienza a sufrir retrasos. Puede encontrar los ajustes aquí: ReSharper | Options | Environment | Editor | Behavior | Razor | Allow CPU-intensive typing assist.
Hemos introducido un cambio innovador en la herramienta InspectCode. A partir de 2021.2, InspectCode restaura automáticamente los paquetes NuGet y compila una solución antes de iniciar su análisis. Si este comportamiento no es deseado, utilice la opción --no-build
para desactivar la restauración de paquetes NuGet y la compilación de la solución.
Prueba gratuita de 30 días disponible