En ReSharper 2024.1, hemos mejorado aún más la compatibilidad con C# para incluir más sugerencias para convertir código a expresiones de colección y advertencias al modificar una colección mientras se itera dentro de bucles foreach
. Ahora, la compatibilidad con Razor resuelve referencias para las directivas @addTagHelper
y @removeTagHelper
, y se han mejorado considerablemente la experiencia y la interfaz de usuario para editar reglas de nomenclatura personalizadas.
Prueba gratuita de 30 días disponible
Ahora, obtendrá sugerencias para convertir más construcciones de código en su código fuente a expresiones de colección de C# 12, como un vector vacío o la declaración e inicialización ImmutableArray
.
Hemos añadido la inspección Possible 'System.InvalidOperationException: Collection was modified', que le avisará cuando una colección se modifique mientras se itera dentro de bucles foreach
, ya que esta modificación podría provocar una excepción en tiempo de ejecución. Este análisis tiene en cuenta los casos en los que se sale del bucle tras modificar una colección, en cuyo caso no se activará la advertencia.
La inspección viene con el correspondiente arreglo rápido para que pueda resolver este problema al instante.
Generate | Formatting Members le permite generar código reutilizable para anular el método ToString()
y devolver una cadena significativa para sus tipos. A partir de la versión 2024.1, esta funcionalidad es compatible con más tipos, como ISpanFormattable
, IUtf8SpanFormattable
e IFormattable
.
[MustDisposeResource]
: ahora, el análisis del código de C# garantiza que los recursos devueltos por métodos asincrónicos, incluidos los integrados en Task<IDisposable>
y ValueTask<IDisposable>
, se eliminen correctamente, lo que ayuda a evitar la eliminación involuntaria de la propia tarea. .ConfigureAwait(...)
, .AsTask()
o .Result
. Estas son algunas de las mejoras que hemos introducido en la refactorización de Change Signature:
List<>
, puede utilizar la finalización de código para seleccionar fácilmente el tipo deseado, como int
. System.Collections.Generic.List<System.Int16>
en el cuadro de diálogo Change Signature, se acortará de forma automática a List<short>
en el código resultante. in
y ref readonly
y los tipos record
. En esta versión, la refactorización Make Static es compatible con los parámetros del constructor primario. Aparecen en la lista Introduce parameters y tienen un icono independiente para distinguirlos fácilmente. Esta refactorización también está disponible para las funciones locales.
Ahora, el análisis del código es compatible con el atributo ProtoContract
y la enumeración ImplicitFields
de la biblioteca protobuf-net. Ambos pueden utilizarse para marcar miembros que se utilizan de forma implícita en la serialización. Como resultado de ello, dichos miembros ya no se marcan con advertencias unused members.
@addTagHelper
y @removeTagHelper
Ahora, ReSharper resuelve las referencias para los nombres de agrupación especificados en las directivas @addTagHelper
y @removeTagHelper
de las vistas de Razor. Ahora, como resultado de ello, puede aprovechar la finalización de código, la capacidad de encontrar usos y la facilidad de navegación por el código.
Ahora, ReSharper entiende los nombres de agrupaciones no resueltos como errores y los resalta en rojo para que los tenga en cuenta.
Entre las mejoras notables en la compatibilidad con C++ destacan las siguientes:
Más información sobre las actualizaciones de C++: Novedades de ReSharper C++ 2024.1.
Estamos trabajando en mejorar el modo de alta utilización de recursos para el análisis de la solución completa, que reducirá de forma significativa la duración del análisis al utilizar el paralelismo de la CPU de forma más eficiente. Hemos mejorado el perfil de memoria asignada del análisis del código para minimizar el tiempo empleado en la recogida de elementos no utilizados. Aunque seguimos trabajando en las mejoras, le agradeceríamos que activara este modo y nos comentara su experiencia.
Ahora, renombrar elementos en su código es más rápido y eficaz. Este cambio también afecta a otros componentes básicos de ReSharper, lo que se traduce en mejoras de rendimiento en varias funcionalidades, incluida Find Usages.
Hemos mejorado de forma significativa el rendimiento de la refactorización Move to Another Type para miembros estáticos para trabajar con clases de gran tamaño.
Los cambios deberían facilitar el trabajo con reglas de nomenclatura avanzadas y la observación de las reglas importadas de los archivos EditorConfig.
Esta nueva opción de formateo permite dejar o eliminar los espacios en blanco en las líneas en blanco.
La actualización 2024.1 trae la nueva ventana de herramientas Assembly Diff a ReSharper. Hay un par de cambios asociados:
.zip
se ha trasladado del Assembly Explorer a la ventana de herramientas Assembly Diff. El decompilador de ReSharper es compatible con el formato de empaquetado WebCIL para WebAssemblies. La compatibilidad incluye lo siguiente:
.wasm
en Assembly Explorer. Ya está disponible la compatibilidad con aplicaciones de escritorio MAUI también en dotTrace, dotMemory y dotCover dentro de Visual Studio.
Marcos de trabajo compatibles:
net8.0-windows
, net7.0-windows
net8.0-maccatalyst
, net7.0-maccatalyst
net8.0-macos
, net7.0-macos
Haga clic aquí para obtener más información sobre la disponibilidad y las restricciones del modo de generación de perfiles.
La compatibilidad con proyectos MAUI también está disponible dentro de las versiones independientes de estas herramientas .NET.
Ahora, la herramienta independiente de generación de perfiles dotMemory es compatible con Frozen Object Heap, una funcionalidad incluida por primera vez con el SDK .NET 6 como parte de las mejoras de rendimiento para la recolección de elementos no utilizados.
FOH asigna un área de memoria específica para objetos inmutables. Estos objetos no se modifican después de asignarse y no están sujetos a la recolección de elementos no utilizados. La compatibilidad con esta tecnología permite a dotMemory realizar un análisis más detallado de la memoria utilizada por los objetos inmutables en FOH, lo que mejora la optimización del uso de la memoria.
A partir de la versión 2024.1, el formato de salida predeterminado de InspectCode es SARIF, y el formato XML pronto quedará obsoleto. En la versión actual, los resultados siguen estando disponibles en formato XML si se utiliza el parámetro -f="xml"
.
Hemos terminado la refactorización interna de los controles de texto. Además de ser parte de nuestro trabajo para hacer que ReSharper funcione fuera del proceso de Visual Studio, esta refactorización se ha diseñado para mejorar la tipificación y aspectos relacionados con el rendimiento del editor, tanto para ReSharper como para Rider. Puede encontrar más información sobre nuestro progreso para sacar ReSharper del proceso de Visual Studio aquí.
El complemento JetBrains Marketplace cuenta con un nuevo mecanismo de filtrado basado en comprobaciones de compatibilidad. Esto significa que los complementos incompatibles ya no se muestran en el administrador de extensiones de ReSharper.
Prueba gratuita de 30 días disponible