Novedades de ReSharper 2025.1

ReSharper 2025.1 ofrece compatibilidad inicial con las funcionalidades preliminares de .NET 10 y C# 14. Esta versión también añade nuevas inspecciones dirigidas a los errores comunes de C#, junto con varias mejoras de calidad de vida. Se ha mejorado significativamente el rendimiento con un sistema de intercalación de cadenas revisado y una compatibilidad renovada con los asistentes de etiquetas Razor y los componentes Blazor. Además, esta versión desvela la integración de dotMemory en Visual Studio e introduce el nuevo complemento Qodana Team Code Quality para mejorar la integración del proceso de CI/CD.

Compatibilidad con C#

Compatibilidad con .NET 10 Preview y C# 14

ReSharper 2025.1 ofrece compatibilidad inicial con las funcionalidades preliminares de .NET 10 y C# 14.

nameof de tipos genérico no vinculados

Anteriormente, usar nameof requería especificar todos los argumentos de tipo, lo que causaba una verbosidad innecesaria. C# 14 permite usar nameof(List<>) sin enumerar explícitamente los argumentos de tipo. ReSharper ahora detecta argumentos de tipo genérico redundantes en las expresiones nameof y proporciona un arreglo rápido para simplificarlos.

Conversiones Span<T> de primera clase

C# 14 introduce nuevas conversiones implícitas entre ReadOnlySpan<T>, Span<T> y T[], lo que hace que el código basado en span sea más intuitivo. ReSharper ahora admite completamente estas reglas de conversión, ayudándole a escribir código C# eficiente y moderno.

Modificadores en parámetros simples de lambda

Con C# 14, ahora puede usar modificadores de parámetros como ref, out, in y scoped en expresiones lambda sin necesidad de tipos de parámetros explícitos. ReSharper ofrece un arreglo rápido para eliminar las especificaciones de tipo redundantes.

Conozca todas las mejoras en la compatibilidad del lenguaje C# en ReSharper y Rider en nuestro blog.

Además de introducir la compatibilidad con las funcionalidades de C# 14, esta versión también incorpora varias inspecciones nuevas dirigidas a los errores e ineficiencias más comunes en las distintas versiones de C#.

Nueva acción contextual para convertir la interpolación en concatenación

Una nueva acción contextual le permite volver a convertir la interpolación de cadenas en concatenación. Mientras que ReSharper ha admitido durante mucho tiempo la conversión de concatenación de cadenas "Id = " + someId a interpolación $"Id = {someId}") o string.Format("Id = {0}", someId), esta actualización completa el ciclo permitiendo la transformación inversa, lo que le da más flexibilidad a la hora de estructurar expresiones de cadenas.

Código duplicado redundante

ReSharper detecta y resalta ahora aún más patrones de duplicación de código que aparecen en construcciones condicionales como if y switch, y sugiere refactorizaciones para obtener un código más limpio y fácil de mantener.

Uso posiblemente erróneo de CancellationToken

ReSharper detecta ahora los casos en los que se utiliza por error un CancellationToken a nivel de método en lugar de un token local. Ofrece un arreglo rápido para sustituir el token incorrecto o fusionar varios tokens utilizando CancellationTokenSource.CreateLinkedTokenSource().

Utilice nameof para hacer referencia al nombre del miembro de enum

Llamar a .ToString() en miembros de enum puede incurrir en una sobrecarga innecesaria en tiempo de ejecución. ReSharper sugiere ahora sustituirlo por nameof(SomeEnum.Member), lo que mejora el rendimiento y la claridad.

Sugerencias para nombres de componentes de tupla

ReSharper 2025.1 sugiere nombres explícitos de componentes de tupla en lugar de nombres genéricos ItemN, lo que hace que su código sea más legible y autodocumentado.

Inspección Inexact stream reads

ReSharper advierte ahora cuando se utilizan los métodos Stream.Read() y ReadAsync() sin comprobar sus valores de retorno, lo que puede provocar lecturas incompletas de los datos. Sugiere sustituirlos por .ReadExactly() para garantizar la corrección.

Advertencia de modificación en la inspección Debug.Assert

Dado que las llamadas a Debug.Assert se eliminan en las compilaciones RELEASE, ReSharper le advierte sobre las aserciones que modifican el estado y que podrían provocar un comportamiento inesperado en el código de producción.

Trabajo con bases de datos

Compatibilidad con SQL y NoSQL en ReSharper 2025.1.3 dotUltimate

ReSharper 2025.1.3 incorpora la compatibilidad con lenguajes de consulta para mejorar su codificación con SQL y NoSQL en Visual Studio. Disfrute de análisis de código, finalización y arreglos rápidos inteligentes en sus consultas en todos los dialectos principales. Haga clic en el enlace a continuación para obtener más información sobre las nuevas funcionalidades compatibles y las licencias que las incluyen.

Más información

Compatibilidad con C++

ReSharper 2025.1 incluye algunas mejoras en la compatibilidad con C++:

  • Se introdujo la refactorización Inline Macro.
  • Compatibilidad con varias nuevas extensiones del lenguaje GNU.
  • Optimización del uso de la memoria en proyectos de Unreal Engine que contienen un gran número de activos de Blueprint.
  • Clang-Tidy 20 incluido y compatibilidad para usar Clang-Tidy en dispositivos ARM.
  • Compatibilidad actualizada con GoogleTest.

Obtenga más información sobre las actualizaciones de C++ en la página Novedades de ReSharper C++ 2025.1

Refactorización de código

Refactorización Toggle <ImplicitUsings>

Los usos implícitos incluyen automáticamente espacios de nombres comunes, lo que reduce el código duplicado. ReSharper ofrece ahora una forma sencilla de activar o desactivar los usos implícitos en su proyecto, y elimina los usos explícitos redundantes cuando se activan o añade los necesarios cuando se desactivan.

Refactorización Transform Parameters renovada

ReSharper ha modernizado la refactorización Transform Parameters, añadiendo compatibilidad con tuplas de valor, registros y escenarios asíncronos para mejorar la flexibilidad y la mantenibilidad del código.

Formateo de código

Acción contextual Chop formatting

Una nueva acción de formato aplica un salto de línea a varias construcciones de C#, lo que mejora la legibilidad y la coherencia del código.

Otras mejoras

  • El formato de los comentarios garantiza ahora un ajuste adecuado y la inclusión de espacios después de //. Encontrará algunas capturas de pantalla útiles en estos tickets:[RSRP-225809], [RSRP-78312].
  • También hemos añadido una opción para no insertar un salto de línea antes de un único argumento de expresión lambda en las invocaciones de métodos. [RSRP-467905]

Experiencia del usuario

Mejoras en la activación e indicación de Push-to-Hint

Hemos perfeccionado el comportamiento de Push-to-Hint en ReSharper para evitar activaciones involuntarias causadas por conflictos con otros accesos directos que utilicen Ctrl. Además, hemos introducido un indicador visual para mostrar cuándo está activo el modo.

Resaltadores de contexto para la lista de tipos ampliada

ReSharper ahora resalta visualmente los miembros que extienden clases base o implementan interfaces específicas cuando coloca el signo de intercalación sobre el nombre de un tipo en la cláusula de tipos base.

Rendimiento

Consumo de memoria

Para esta versión, hemos renovado completamente nuestro sistema de interning de cadenas. Los IDE procesan una enorme cantidad de cadenas, incluido código fuente, elementos de sintaxis, nombres de símbolos y rutas de archivos, por lo que el manejo eficiente de cadenas resulta fundamental. Nuestro nuevo sistema de intercalación de cadenas almacena, de media, cuatro veces más cadenas únicas que su iteración anterior y consume aproximadamente la mitad de memoria para hacerlo, lo que libera recursos en proyectos .NET a gran escala.

Mejoras de Blazor y Razor

Los asistentes para edición de código de etiquetas Razor y la compatibilidad con componentes Blazor se han reconstruido completamente para 2025.1. Esta renovación tan necesaria trae una reducción del 5 %–10 % en el tiempo de análisis para soluciones grandes de ASP.NET con un uso intensivo de componentes. También experimentará menos eventos de reanálisis al editar archivos .cshtml/.razor, así como una reducción significativa en los falsos reportes de errores.

La última actualización del estado de ReSharper fuera de proceso

Hemos estado probando internamente la última implementación fuera de proceso (out-of-process, u OOP) de ReSharper durante las últimas cuatro semanas, y estamos entusiasmados con los resultados obtenidos hasta ahora. Aunque todavía estamos trabajando para dar soporte a todas las funcionalidades y solucionar los problemas conocidos, la funcionalidad central que hace de ReSharper una parte esencial de su flujo de trabajo de desarrollo está quedando muy bien.

Lea nuestro último artículo del blog para obtener una actualización completa del estado de ReSharper fuera de proceso.

Perfilado de memoria dotUltimate

Análisis de instantáneas con dotMemory en Visual Studio

dotMemory ahora está completamente integrado con Microsoft Visual Studio. Anteriormente, solo podía iniciar el perfilado desde Visual Studio, pero tenía que cambiar a la aplicación independiente de dotMemory para analizar los resultados. Ahora, puede tanto perfilar su aplicación como analizar instantáneas de memoria sin salir del IDE.

Calidad del código

Extensión Qodana Team Code Quality

Qodana es una herramienta de calidad de código de equipo que aprovecha las inspecciones de JetBrains para ayudar a los equipos a realizar comprobaciones y auditorías y establecer barreras de calidad en su proceso de CI/CD favorito. Ahora, puede descargar la extensión Qodana Team Code Quality a través del instalador de ReSharper para introducir proyectos Qodana Cloud o proyectos Qodana autoalojados en Visual Studio.

Identifique problemas de código, errores y vulnerabilidades, ejecute los análisis directamente en su proceso y, a continuación, visualice los problemas en el IDE en el que trabaja para obtener mejores actualizaciones contextuales y aprendizaje. También tiene la opción de descargarlo como herramienta independiente utilizando el instalador de ReSharper.

Desarrollo de juegos

Complemento de Unity para ReSharper

ReSharper 2025.1 incluye un complemento de Unity que admite todos los principales flujos de trabajo de desarrollo de juegos. El complemento proporciona autocompletado de código para funciones de eventos y API de Unity, resúmenes en descripciones emergentes con enlaces a la documentación de Unity, e inspecciones especializadas para detectar errores comunes. Incluye compatibilidad con archivos ShaderLab con resaltado de sintaxis, finalización de código y detección de errores. El complemento también maneja automáticamente los archivos .meta y detecta el uso implícito de campos y métodos en escenas, prefabs y activos de Unity.

ReSharper C++ sigue proporcionando compatibilidad específica con el desarrollo en Unreal Engine.

Decompilador

ReSharper 2025.1 incorpora varias mejoras al decompilador, como la mayor compatibilidad con las últimas funcionalidades de C# y la mejora de la legibilidad del código. Estas son las novedades:

  • Compatibilidad con los miembros required.
  • Se ha añadido compatibilidad con el nuevo tipo System.Threading.Lock introducido en C# 13.
  • Compatibilidad con campos ref y modificadores de parámetros scoped.
  • Compatibilidad con el antirrestricciones genérico allows ref struct.
  • using basado en patrones para tipos ref struct.
  • Compatibilidad con la interpolación de cadenas.
  • Ciertas constantes de enteros en código decompilado incluyen ahora representaciones hexadecimales comentadas para una mejor legibilidad.
  • Compatibilidad con espacios de nombres con ámbito de archivos.

Otras mejoras notables

Nueva plantilla postfix: .inject

Los constructores primarios de C# 12 han simplificado la inyección de dependencias. La nueva plantilla postfix .inject agiliza aún más la inyección de dependencias del constructor introduciendo automáticamente un parámetro en el constructor primario y sugiriendo un nombre significativo.

Compatibilidad con el inicio de sesión estructurado

ReSharper proporciona ahora la compatibilidad de registro estructurado mejorado, que ayuda a los desarrolladores a escribir y analizar registros de forma más eficiente.

Inyección de lenguaje en los valores de retorno

ReSharper permite ahora anotaciones de inyección de lenguaje en los valores de retorno de los métodos, y amplía así la compatibilidad anterior para parámetros, campos y propiedades.

Comentarios en tareas pendientes de varias líneas mejorados

Anteriormente, los comentarios en tareas pendientes de varias líneas requerían sangría para su continuación. ReSharper 2025.1 elimina esta restricción, lo que facilita la escritura y la gestión de las tareas pendientes de varias líneas al tiempo que sigue aplicando la sangría cuando se proporciona.