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.
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.
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.
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#.
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.
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.
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().
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.
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.
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.
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.
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.
ReSharper 2025.1 incluye algunas mejoras en la compatibilidad con C++:
Obtenga más información sobre las actualizaciones de C++ en la página Novedades de ReSharper C++ 2025.1
<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.
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.
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.
//. Encontrará algunas capturas de pantalla útiles en estos tickets:[RSRP-225809], [RSRP-78312].
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.
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.
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.
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.
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.
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.
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.
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.
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:
required. System.Threading.Lock introducido en C# 13. ref y modificadores de parámetros scoped. allows ref struct. using basado en patrones para tipos ref struct. .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.
ReSharper proporciona ahora la compatibilidad de registro estructurado mejorado, que ayuda a los desarrolladores a escribir y analizar registros de forma más eficiente.
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.
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.