ReSharper 2023.2 ofrece una compatibilidad mejorada con C#, con nuevas inspecciones para trabajar con funciones locales, cadenas sin procesar, y para resolver problemas comunes de Entity Framework. Esta versión también ofrece compatibilidad con la refactorización de C++ y más funciones de C++20 y C++23. Entre las funcionalidades que hacen su debut en ReSharper 2023.2 se encuentra la capacidad de crear y navegar fácilmente a través de pruebas de unidad, el modo de depurador predictivo y el nuevo AI Assistant.
Prueba gratuita de 30 días disponible
ReSharper 2023.2 incorpora nuevas inspecciones de código y arreglos rápidos para trabajar con literales de cadena sin formato y funciones locales, así como para gestionar incidencias comunes de Entity Framework y directivas «nullable» redundantes. La compatibilidad inicial con C# 12 abarca los constructores primarios y las expresiones lambda con parámetros opcionales. También hemos mejorado la compatibilidad de ReSharper con descartes y recursos desechables y hemos añadido nuevas sugerencias en línea e interlínea.
¡Las pruebas de unidad de ReSharper reciben una importante actualización con la incorporación de una funcionalidad que le permite navegar y crear pruebas para su código de producción!
Para crear una prueba, basta con invocar la acción Generate Code y elegir Unit Test o pulsar Ctrl+U,C. ReSharper le permite elegir el nombre de la clase de prueba e incluso creará un nuevo proyecto con su marco de pruebas preferido (si no existe todavía). Una vez creada la prueba, puede navegar entre su implementación y el código de prueba utilizando la acción Navigate to o pulsando Ctrl+U,F.
Las versiones 2023.2 de los IDE basados en IntelliJ y las herramientas .NET introducen una nueva funcionalidad importante: AI Assistant. El conjunto inicial de funciones basadas en IA ofrece un chat de IA integrado y se entrelaza de forma natural con algunos de los flujos de trabajo de desarrollo principales mediante acciones contextuales, lo que permite que AI Assistant le explique fragmentos de código seleccionados, elimine posibles problemas y genere documentación XML por usted.
Hemos añadido nuevas inspecciones de C# y acciones contextuales para trabajar con cadenas sin formato, así como asistencia mejorada para la escritura y nuevas opciones de formato:
Consulte el artículo del blog correspondiente para obtener más información sobre nuestra compatibilidad mejorada con cadenas sin formato.
Hemos añadido varias inspecciones nuevas, arreglos rápidos y opciones de navegación contextual para problemas comunes que puede sufrir al trabajar con bases de datos que utilizan un marco de asignación objeto-relacional (ORM) como Entity Framework.
Más información sobre las nuevas inspecciones relacionadas con Entity Framework en el artículo del blog.
ReSharper 2023.2 incorpora dos nuevas inspecciones y sus correspondientes arreglos rápidos destinados a mejorar la legibilidad del código con funciones locales:
return
o continue
explícito antes de las funciones locales al final de un método. return
o continue
explícito u otra instrucción de salto de flujo de control. Para los casos en los que no desee o no se le permita cambiar el código, ReSharper 2023.2 mostrará un consejo entre líneas con las instrucciones return;
o continue;
antes de las funciones locales para ayudarle a entender el código sin necesidad de cambiarlo.
Consulte este artículo del blog con más detalles sobre las nuevas inspecciones.
#nullable
y anotaciones NRT Ya están disponibles varias inspecciones nuevas para las directivas #nullable
y las anotaciones NRT:
JetBrains.Annotations
de un miembro base. Para saber más sobre estas inspecciones, visite este artículo del blog.
var
Ahora, todas las acciones de navegación (Go to…, Find Usages, etc.) sugieren tipos subyacentes cuando se navega desde var
para tipos comunes usados para contener otros tipos. Por ejemplo, ReSharper sugerirá navegar a Person
si se utiliza la acción Go to declaration desde la palabra clave var
de una variable con el tipo ImmutableArray<Person>?
.
Puede obtener más información en el siguiente artículo del blog.
En la versión 2023.2, hemos introducido la compatibilidad con constructores primarios para clases y structs que no son registros a partir de la versión preliminar de C# 12. Existen varias inspecciones que detectan aquellos tipos en los que la inicialización puede expresarse con nuevos constructores primarios y sugieren aplicar un arreglo rápido para reducir en gran medida la cantidad de repeticiones de código.
A veces, la inicialización del tipo debe hacerse menos trivial y ya no puede expresarse mediante un constructor primario. Para estos casos, hemos introducido un par de acciones contextuales para invertir el reemplazo de los parámetros primarios del constructor por constructores y campos ordinarios.
Para ver todas estas y muchas más funcionalidades de los constructores primarios en acción, consulte este otro artículo del blog.
Como parte de nuestro trabajo en pro de la compatibilidad con las actualizaciones del lenguaje C# 12, vamos a introducir la compatibilidad con valores de parámetros predeterminados en las expresiones lambda. Además del conjunto estándar de mensajes de advertencia asociados al reconocimiento de esta sintaxis, también hemos modificado una inspección existente, The parameter has the same default value, para tener en cuenta los valores predeterminados de los parámetros en las lambdas. Puede obtener más información aquí.
ReSharper 2023.2 introduce dos nuevas inspecciones de código diseñadas para controlar mejor la eliminación de un objeto:
También hemos mejorado la funcionalidad Generate dispose pattern para que admita la interfaz IAsyncDisposable
y pueda generar un método asíncrono para liberar los recursos.
Encontrará más detalles sobre estas incorporaciones aquí.
El análisis de código ha recibido nuevas y útiles adiciones a la compatibilidad con descartes de C#:
_
name is typically reserved for local parameters without usages que advierte sobre variables y parámetros con nombre _
que se están utilizando realmente. Parecen un valor «descartado», pero en realidad representan todo lo contrario. Eche un vistazo a el artículo del blog para obtener más información sobre la compatibilidad mejorada con los descartes.
Al pasar un valor a un argumento de tupla o tipo de retorno, C# le permite omitir los nombres de los componentes. Sin embargo, sin los nombres, resulta más difícil saber el significado de cada componente sin mirar su tipo de destino. Por ejemplo, muchos desarrolladores de software tendrán que comprobar dónde se asigna una tupla (null
, false
) para entender qué significan sus componentes.
¡Ahí es donde los consejos de inserción pueden ayudarle! ReSharper 2023.2 mostrará consejos de inserción con nombres de componentes de tupla cuando esos nombres no se desprendan ya de la expresión del componente, lo que hará que su código sea mucho más fácil de leer y comprender de un vistazo.
Para los componentes nulos y predeterminados, ReSharper 2023.2 mostrará consejos sobre sus tipos de destino incluso si el componente de destino no tiene un nombre explícito. Hará una excepción con los tipos cadena y objeto, ya que estos no suelen ser muy informativos.
Otra situación común en la que los nombres pueden mejorar la legibilidad son los patrones de deconstrucción en los que se conoce un nombre explícito, ya sea por el método Deconstruct
o por los componentes de la tupla fuente. Estos consejos se han desarrollado para proporcionarle un contexto adicional cuando un patrón en sí no contiene suficientes datos para entender qué coincide, como value is ({ }, true, null)
.
#pragma warning
mejorada Las directivas «pragma» permiten deshabilitar o restaurar fácilmente las advertencias del compilador mediante sus ID. Sin embargo, aunque estos ID son una buena forma de comunicarse con el compilador, es posible que a los desarrolladores humanos les cueste entenderlos. Sin conocimientos avanzados, puede no estar claro a qué se refiere un ID como CS0168
o CS0618
, o qué requiere atención.
Las consultas LINQ pueden ser complejas e implicar varias transformaciones y proyecciones. Depurar consultas LINQ complejas puede llevar mucho tiempo, especialmente cuando se trata de grandes conjuntos de datos. Para ayudarle a inspeccionar fácilmente el resultado de cada paso de la consulta, ReSharper mostrará ahora los resultados intermedios como consejos de inserción durante la depuración.
Con la optimización del editor que muestra los resultados intermedios, ahora debería ser capaz de identificar rápidamente si hay algún valor inesperado o transformaciones incorrectas en el camino.
ReSharper C++ introduce la refactorización Safe Delete para permitirle eliminar símbolos del código fuente de forma segura. Esta refactorización está disponible para clases, funciones, variables, enumeradores, espacios de nombres e incluso conceptos.
Antes de eliminar un símbolo, ReSharper C++ busca sus usos y le permite previsualizar los cambios en el código fuente, para que pueda asegurarse de que todas las eliminaciones son intencionadas. Si intenta eliminar una entidad compleja como una clase o un espacio de nombres, ReSharper C++ comprobará recursivamente los usos de todos sus miembros.
Esta versión incorpora compatibilidad con varias funcionalidades nuevas del lenguaje, como if consteval
, los módulos de la biblioteca estándar C++23, el atributo [[no_unique_address]]
y operator()/operator[]
estático.
ReSharper 2023.2 añade un par de nuevas opciones para el formateo de código C#, diseñadas para mejorar la legibilidad de las llamadas a métodos encadenados.
La primera opción de formato de código controla si se produce un salto de línea antes de la primera llamada al método. La segunda opción es para situaciones en las que se combinan invocaciones de métodos y propiedades, y determina si debe insertarse un salto de línea tras la invocación de la propiedad.
AI Assistant no se incluye con ReSharper y debe instalarse por separado. Por el momento, existe una lista de espera para acceder a la funcionalidad de AI Assistant.
Obtenga más información sobre AI Assistant y cómo instalarlo mediante Toolbox App o el instalador de dotUltimate en nuestra ayuda web.
De forma predeterminada, AI Assistant dentro de ReSharper conoce su entorno de desarrollo: los lenguajes de programación, los marcos de trabajo, las bibliotecas y las tecnologías utilizadas en la solución. Este conocimiento permite a la IA generar respuestas más precisas y específicas a sus consultas.
La opción Smart chat permite a AI Assistant hacer referencia a archivos y símbolos específicos, recuperar fragmentos de código o los últimos cambios y buscar usos de métodos concretos. Como resultado, puede ofrecer sugerencias aún más precisas.
Con el complemento AI Assistant instalado, las acciones contextuales de ReSharper ofrecerán una serie de opciones basadas en la IA. AI Assistant puede ayudarle a lo siguiente:
El modo de depurador predictivo que estamos introduciendo en ReSharper 2023.2 es capaz de prever todos los posibles estados desencadenados por la ejecución de un programa sin tener que ejecutarlo realmente, lo que le permite:
El depurador predictivo le ofrecerá un nuevo nivel de comprensión de la ejecución de su programa. También le permitirá experimentar con diferentes valores y solucionar los problemas de su código sin tener que reiniciar el proceso de depuración para cada cambio.
Puede activar el depurador predictivo accediendo a ReSharper | Options | Tools | Debugger | Editor Integration | Predictive debugger | Show predicted values (beta).
Este depurador se encuentra actualmente en estado Beta, lo que significa que sus comentarios son cruciales para que alcance todo su potencial. Asegúrese de informar de cualquier error que encuentre a nuestro sistema de seguimiento de incidencias, junto con cualquier sugerencia o petición.
ReSharper 2023.2 proporciona un modo de realizar una comparación detallada entre dos agrupaciones. Esta funcionalidad es especialmente útil cuando se examinan las diferencias entre dos versiones de una agrupación específica y se buscan posibles vulnerabilidades que puedan haberse introducido en una versión más reciente.
Para comparar agrupaciones, haga clic en Compare Two Assemblies en la ventana de herramientas Assembly Explorer. Pueden seleccionarse para la comparación tanto aplicaciones de un solo archivo como archivos .exe
o .dll
.
Haga clic aquí para obtener más información sobre esta funcionalidad.
Con ReSharper 2023.2, hemos revisado nuestro enfoque del almacenamiento en caché de los datos que necesita el IDE para que funcionen sus sistemas. Esta revisión, respaldada por innumerables pruebas de rendimiento, se tradujo en una notable reducción del consumo de espacio en disco por cada solución que abre. En términos prácticos, significa en general menos tiempo dedicado a la entrada/salida de disco y tiempos de carga más rápidos para las soluciones.
Otro cambio que permitió mejorar la velocidad de carga de las soluciones fue la refactorización de la lógica interna de construcción de componentes de ReSharper. Más información.
Prueba gratuita de 30 días disponible