Novedades de ReSharper 2024.2

ReSharper 2024.2 es compatible con .NET 9 Preview SDK, lo que implica la disponibilidad de una serie de características de C# 13, como la implementación de la interfaz ref struct, la nueva secuencia de escape \e y la refactorización del modificador params. Ahora, la compatibilidad con C++ incluye funciones de C++23, información sobre el diseño de tipos en las descripciones emergentes y compatibilidad mejorada con proyectos de Unreal Engine. Esta versión también incluye la primera fase de localización para el chino, el coreano y el japonés, escritura asíncrona para mejorar el rendimiento y mejoras en AI Assistant con modelos de lenguaje mejorados, sugerencias de código en el editor y la nueva funcionalidad Explain with AI.

Descargar

Prueba gratuita de 30 días disponible

Compatibilidad con el SDK de la vista previa de .NET 9

ReSharper 2024.2 incorpora compatibilidad con .NET 9 Preview SDK, e incluye compatibilidad inicial con funcionalidades de C# 13, como el nuevo caracter de escape, una refactorización de modificación de params e interfaces ref struct.

Compatibilidad con C#

Con esta última versión, ReSharper profundiza la compatibilidad con las funcionalidades de C# 12, como los constructores primarios y mejoras en las expresiones de colección y en las acciones contextuales para la creación de vectores y conversiones de tipo de colección. Además, ReSharper 2024.2 es compatible con C# 13 gracias a la implementación de la interfaz ref struct, la nueva secuencia de escape \e y la refactorización del modificador params.

Esta actualización también incluye lo siguiente:

  • Mejora del análisis de igualdad para tipos «struct».
  • La inspección Extract common code para reducir los duplicados en construcciones ramificadas.
  • Previsualización de culturas en la finalización de código del especificador de formato ToString().
  • Análisis de expresiones «cast» para reemplazar los frágiles «cast» de estilo C con anotaciones de tipo explícitas.

Consulte este artículo del blog para profundizar en las últimas actualizaciones de la compatibilidad con C# introducidas en Rider y ReSharper 2024.2.

Compatibilidad con C++

Entre las mejoras notables en la compatibilidad con C++ destacan las siguientes:

  • Compatibilidad con funcionalidades adicionales de C++23, incluido el operador multidimensional de subíndice, las directivas del preprocesador #elifdef y #elifndef, y el atributo [[assume]].
  • Ahora, las descripciones emergentes y la ventana emergente de documentación rápida contienen información detallada sobre el diseño de tipos para clases y campos de clase, como el tamaño, la alineación, el desplazamiento o el relleno.
  • En los proyectos de Unreal Engine, ReSharper reconoce las características de los structs, asegurándose de que estos tienen los métodos necesarios y generándolos rápidamente si faltan. Una nueva inspección detecta las llamadas que faltan a métodos de clases base.
  • La refactorización Rename añade nuevas opciones para renombrar archivos y tipos relacionados al renombrar un archivo.
  • Las mejoras en el análisis de código incluyen la actualización a Clang-Tidy 18 y compatibilidad con pragmas de IWYU.

Más información sobre las actualizaciones de C++: Novedades de ReSharper C++ 2024.2.

Localización

ReSharper 2024.2 incluye la primera fase de localización al chino simplificado, al coreano y al japonés. Contará con una interfaz de usuario parcialmente localizada, inspecciones de código, ventanas de herramientas y notificaciones. Para localizar ReSharper, vaya a Options | Environment | General | Localization | Interface language y elija la opción deseada de la lista desplegable.

También puede instalar el complemento de localización a través de Extension Manager. Aquí encontrará las instrucciones completas.

Rendimiento

Escritura asíncrona activada

La escritura asíncrona forma parte de un esfuerzo continuo por mejorar el rendimiento de ReSharper al permitirle ejecutarse fuera de proceso con Visual Studio. ReSharper 2024.2 es la primera versión del producto que incorpora este cambio tan importante. Nuestras pruebas internas muestran que habilitar la escritura asíncrona mejora notablemente la fluidez al escribir. Nos encantaría saber qué opina a través de nuestro sistema de seguimiento de incidencias.

AI Assistant

Actualización de modelos y recopilación de contexto

Hemos actualizado los modelos anteriores de GPT 3.5 y GPT 4 a GPT-4o y Google Bison, según la tarea. También hemos actualizado la recopilación de contexto para la finalización de IA y el chat de IA para ofrecer resultados más relevantes con este nuevo modelo.

Ask AI

Ya no tendrá que abrir el chat de IA cada vez que quiera preguntar algo a la IA; solo tendrá que abrir Ask AI y preguntar.

Sugerencias y generación de código en el editor

Ahora, JetBrains AI sugiere dónde puede generar documentación XML o implementar métodos vacíos con un solo clic (o pulsando Alt+Intro). Con esto ya no tendrá que buscar manualmente estas opciones en la lista de acciones.

Además, en lugar de redirigirle al chat, la IA le dará las respuestas directamente en el editor. Puede revisarlas fácilmente y volver a generarlas si es necesario, o especificar detalles adicionales para mejorar los resultados.

Mejora de la interfaz y la experiencia de usuario en la finalización de código por IA

Hemos mejorado la presentación de las sugerencias de IA, con lo que es más fácil distinguir entre las sugerencias de finalización multilínea de IA de ReSharper y otros elementos. Ahora también puede regenerar los resultados pulsando Mayús+Tab.

Sugerencias de nombres por la IA en las refactorizaciones Rename y Extract Method

Nombrar variables y métodos puede ser todo un reto, especialmente en soluciones grandes con muchos símbolos con nombres parecidos. Por suerte, ahora la IA sugiere los nombres más adecuados al renombrar un método.

Explain with AI para depuración y DPA

Ahora, puede pedirle a la IA que explique cualquier excepción que encuentre durante la sesión de depuración sin salir del contexto actual. Para ello, pulse el botón situado junto a la excepción y obtendrá la explicación en el chat.

AI Assistant también podrá explicar cualquier problema relacionado con la memoria asignada y los problemas al trabajar con bases de datos identificados por el análisis dinámico de programas (DPA, por sus siglas en inglés). Después de que el DPA identifique un problema, puede hacer clic en el botón Explain with AI. De este modo, dado que la IA conoce el código, analiza el contexto del problema, proporciona una explicación y sugiere posibles soluciones. Actualmente, esto solo está disponible para los problemas relacionados con la memoria y las bases de datos.

dotMemory

dotUltimate

Búsqueda mejorada de instancias

Hemos añadido nuevas opciones de filtrado a la vista Instances:

  • Búsqueda por valor de cadena: escriba cualquier valor de cadena en el campo del filtro y dotMemory resaltará las cadenas coincidentes. Esto facilita la búsqueda de instancias de cadena específicas según su contenido.
  • Compatibilidad con expresiones regulares para valores de cadena: utilice expresiones regulares para realizar búsquedas más avanzadas. Por ejemplo, ^nAsso.{5,}ID$ coincide con nAssociatedObjectID.nAssociatedObjectID.
  • Búsqueda por dirección de objeto: también puede buscar instancias de objetos por su dirección de memoria. Esto es útil para rastrear objetos específicos directamente.

Puede obtener más información acerca de las mejoras en el perfilador de dotMemory aquí.

dotTrace

dotUltimate

La última actualización de la herramienta de generación de perfiles de rendimiento incluye lo siguiente:

  • Rendimiento mejorado con un procesamiento más rápido de las instantáneas Timeline.
  • Un nuevo motor de renderizado en dotTrace Viewer en todas las plataformas.
  • Se ha añadido la ventana Options a la versión independiente para macOS y Linux.
  • Se han solucionado los eventos de kernel que faltaban en las instantáneas Timeline en Windows.
  • Varias pequeñas mejoras y soluciones de errores.

Más información sobre las mejoras en el perfilador dotTrace aquí.

Decompilador

Mejoras generales

  • Parámetros lambda: hemos introducido la compatibilidad para descompilar lambdas con parámetros opcionales y de vectores de parámetros, con lo que hemos mejorado la legibilidad y la precisión del código descompilado.
  • Atributos en lambdas: ahora la herramienta ofrece una gestión mejorada de los atributos en las expresiones lambda para garantizar que todos los metadatos relevantes se reflejen con precisión en el resultado descompilado.
  • Agrupaciones protegidas: hemos incluido la posibilidad de especificar si desea descompilar las agrupaciones protegidas, lo que permite explorar el código de forma más exhaustiva.

Detección de la configuración de compilación

Ahora, la ventana de herramientas Assembly Explorer detecta y presenta la configuración de compilación de las agrupaciones, lo que ofrece una visión más clara del contexto de compilación de la agrupación.

Gestión de fuentes externas

  • PDB con SrcSrv y SourceLink: ahora, el descompilador es compatible con la navegación hacia código fuente desde archivos PDB que contengan tanto SrcSrv como SourceLink.
  • Directivas de preprocesador: ahora, el descompilador reconoce correctamente las directivas del preprocesador (como NET6_0_OR_GREATER) desde el marco de trabajo de destino o del PDB portátil de la agrupación asociada, lo que garantiza una representación precisa del código.
  • Acción Open in Browser: ahora, puede navegar al código fuente en el repositorio para tipos o a un repositorio para paquetes NuGet o agrupaciones.