Novedades en ReSharper Ultimate 2020.1

ReSharper Ultimate 2020.1 introduce una nueva herramienta de análisis de flujo de datos para los valores enteros en C# y ofrece una mayor compatibilidad con la funcionalidad de tipos de referencias que aceptan valores null y con las nuevas funcionalidades de C++20. Mejora la compatibilidad con XAML y con Unreal Engine, introduce un par de nuevas funcionalidades en Navigation, y habilita la posibilidad de añadir comentarios en Localization Manager. El decompilador es compatible con más funcionalidades de C# 7.x y 8.0.

Descargar

Prueba gratuita de 30 días disponible

Análisis de flujo de datos de los valores enteros en C#

Análisis de flujo de datos de los valores enteros en C#

Esta versión de ReSharper introduce un nuevo tipo de análisis del código C# para hacer un seguimiento de la utilización de valores enteros en su aplicación. Este nuevo tipo de análisis hace un seguimiento de la variación de los valores de todas las variables locales int, y comprueba la exactitud de todas las operaciones comunes en dichas variables para detectar trozos de código inútiles o que puedan ser erróneos. En concreto, le avisa de lo siguiente:

  • Operadores relacionales y de igualdad que siempre den resultados true o false.
  • Casos switch inalcanzables heurísticamente que comprueban valores int.
  • Operaciones aritméticas sin sentido, como la multiplicación por 1, la suma de 0, etc.
  • Posibles desbordamientos de int.
  • Posible división por 0.

Para mejorar la precisión del análisis, también hemos añadido dos nuevos atributos de JetBrains.Annotations para utilizarlos con miembros de tipo y parámetros del tipo int: [NonNegativeValue] y [ValueRange(from, to)]. Estos atributos especifican cómo pueden variar los valores de los miembros int concretos en tiempo de ejecución.

Compatibilidad con C#

Compatibilidad con C#

Seguimos mejorando nuestra compatibilidad con funcionalidades del lenguaje C# 8. Hemos refactorizado muchos aspectos de la compatibilidad con el lenguaje C# para preparar el análisis del código y otras funcionalidades, como las refactorizaciones y ReSharper Build, con el fin de admitir tipos de referencias que aceptan valores null (NRT). En ReSharper 2020.1, el análisis del código informa de las advertencias de compilación relacionadas con los tipos de referencias que aceptan valores null y proporcionan arreglos rápidos para la mayoría de ellas.

También hay varias nuevas inspecciones y arreglos rápidos:

  • Para detectar restricciones de parámetro de tipo redundante con respecto a los tipos de referencias que aceptan valores null.
  • Para detectar y utilizar sobrecargas asincrónicas de métodos cuando estén disponibles en lugar de sobrecargas sincronizadas.
  • Para utilizar la expresión nameof en lugar de utilizar la construcción typeof(SomeType).Name para obtener el nombre del tipo actual.

Noticias sobre el rendimiento

Esta versión cuenta con muchos cambios en la arquitectura de ReSharper que nos aproxima a nuestro objetivo de ejecutar todas las funcionalidades básicas de ReSharper fuera del proceso de Visual Studio. Todas estas modificaciones se han realizado en el código interno, por lo que no notará ningún cambio en la interfaz/experiencia de usuario en el build de la versión 2020.1 de ReSharper.

Si no se enteró de la noticia sobre nuestros avances para sacar a ReSharper del proceso, esta es una buena oportunidad de ponerse al día y obtener más información sobre el lugar en el que nos encontramos.

Actualizaciones de Navigation

Esta actualización añade nuevas funcionalidades menores pero muy útiles a Navigation, y beneficia tanto a quienes usan principalmente el ratón como a quienes prefieren emplear el teclado para interactuar con ReSharper:

  • Ahora puede hacer clic con el botón central (el botón de desplazamiento de su ratón) para llamar a Go to Declaration.
  • Si pulsa Ctrl+Intro en la lista de resultados de Go to File se resaltará el archivo en la ventana Solution Explorer.
  • Ahora puede utilizar una ruta completa en Go To File / Go To Everything para buscar archivos.
Compatibilidad mejorada con XAML

Compatibilidad mejorada con XAML

En la versión 2020.1, hemos realizado muchas mejoras y correcciones en la compatibilidad con XAML. Abarca los XAML de WPF, Xamarin.Forms, UWP y Avalonia

Nos complace poder ofrecer una compatibilidad mucho mayor con la inferencia de contexto de datos y la resolución de símbolos en las vinculaciones: 

  • Cuando se utiliza d:BindingContext
  • En Picker.ItemDisplay en Xamarin.Forms
  • Vinculación RelativeSource en Xamarin.Forms
  • Vinculación de plantilla para el control ScrollViewer
  • Cuando se utiliza ItemsSource como elemento anidado
  • En TreeView.ItemContainerStyle

En los proyectos UWP hemos añadido la compatibilidad con los elementos siguientes: 

  • Markup Conditional XAML
  • Vinculación CustomResource 

Entre otras correcciones se incluye la compatibilidad con:

  • Utilización del nombre Uniform Resource Name (URN) en una definición de un esquema de espacios de nombres XML personalizado
  • Poner un símbolo de barra en un nombre de recurso
  • Directivas x:Static para Avalonia
Actualizaciones de las pruebas de unidades

Actualizaciones de las pruebas de unidades

A partir de ReSharper 2020.1, puede exportar e importar cualquiera de sus Sesiones de prueba de unidad. Esto le permite compartirlas con su equipo, entre sus ordenadores o entre ramas cuando realiza algún cambio en el código y quiere ejecutar/cubrir el mismo conjunto de pruebas de unidad para las dos ramas.

Además, las Sesiones de prueba de unidad que ya se han creado se conservan después de actualizar a una nueva versión principal ReSharper, que es útil si no desea perder sesiones abiertas y bloqueadas.

Comentarios en Localization Manager

Comentarios en Localization Manager

¡Nuestros usuarios lo reclamaron y aquí lo tienen! Hay nuevas filas en la retícula para comentarios. Ahora puede añadir un comentario (o modificar uno existente) para cualquier valor que proceda de un archivos de recursos directamente en la retícula. También puede exportar e importar estos comentarios. Si no utiliza los comentarios, o si no los necesita en este momento, puede ocultarlos haciendo clic en el icono “Show/Hide comments”.

Aparte de eso, hemos implementado varias correcciones de rendimiento que aceleran la carga y el filtrado de la retícula, elimina algunas congelaciones de la interfaz de usuario y hace más fluido el desplazamiento. 

También merece la pena mencionar que hay bastantes mejoras en la experiencia de usuario: 

  • Compatibilidad mejorada con los idiomas que se escriben de derecha a izquierda
  • Navegación más precisa a filas específicas desde el editor de texto y los cuadros de diálogo de refactorización
  • Mejora de la finalización de código y de la validación en los cuadros de diálogo
Formateo de código

Formateo de código

El formateo de código ofrece nuevas configuraciones que incluyen la coma final para los estilos de código C#. Puede encontrarlos en ReSharper | Options | Code Editing | C# | Code Style | Trailing comma, y también son compatibles con la inspección StyleCop SA1413, excepto en unos pocos casos especiales.

Compatibilidad con C++20

Mejor compatibilidad incluso con C++20

La norma de C++20 ya casi se ha aprobado, y ReSharper C++ amplía su compatibilidad con la última norma. Ahora se admiten varias nuevas funcionalidades de lenguaje, incluidos los marcadores de posición de tipos restringidos, plantillas de función abreviada y las declaraciones using enum. Además, ReSharper C++ ofrece un arreglo rápido para actualizar una declaración de lambda con la sintaxis de la plantilla C++20 y una refactorización para introducir fácilmente las declaraciones using enum.

Desarrollo de juegos

Más funcionalidades para el desarrollo de juegos

Con las actualizaciones en la compatibilidad con Unreal Engine, ReSharper C++ 2020.1 mejora la refactorización Rename e introduce la compatibilidad con los archivos USF y GDK SpatialOS con rutas a archivos virtuales. ReSharper C++ también se adhiere con mayor precisión a las normas de Unreal Engine al suprimir la inspección Use auto y seguir las convenciones de nomenclatura para las variables de consola y las categorías de registro.

ReSharper C++ 2020.1 ofrece una compatibilidad inicial con HLSL. Incluso en esta etapa inicial, esta compatibilidad incluye una variedad de funcionalidades, desde el resaltado de código básico hasta la finalización de código inteligente y la navegación rápida.

Novedades en ReSharper C++

Next Important Call

Next Important Call en dotTrace dotUltimate

Ahora puede navegar por el árbol de llamadas con la acción Next Important Call. Pulse CtrlMayúsFlecha derecha y dotTrace le llevará a un nodo de los más relevantes para un análisis más profundo (por ejemplo, un nodo con un tiempo de ejecución propio elevado).

La funcionalidad está disponible en dotTrace Standalone (tanto en Performance Viewer como en Timeline Viewer), en Visual Studio y en JetBrains Rider.

Novedades de dotTrace 2020.1

Compatibilidad con los tipos de referencias que aceptan valores null

Compatibilidad con los tipos de referencias que aceptan valores null en dotPeek

Esta versión aporta una mayor compatibilidad con funcionalidades del lenguaje C#:

  • La compatibilidad con los tipos de referencias que aceptan valores null (NRT) ha llegado al decompilador. Tenga en cuenta que esto solo funciona en las declaraciones, no en los cuerpos de los métodos.
  • Hemos añadido la compatibilidad con el decompilado de miembros predeterminados de interfaces y atributos Auto-Implemented Property Field-Targeted
  • Hemos mejorado la compatibilidad para decompilar nombres de componentes de tupla.

Novedades de dotPeek 2020.1

Descargar

Prueba gratuita de 30 días disponible