Novedades en ReSharper Ultimate 2019.3

ReSharper Ultimate 2019.3 presenta una nueva gestión de la localización y consejos de nombre de tipo, y ofrece incluso una mayor compatibilidad con C# 8, C++ 20 y Unreal Engine. Se ha mejorado la navegación, los estilos de código y la pruebas de unidades, y las Herramientas de línea de comando para ReSharper y dotTrace ahora funcionan en Linux y macOS.

Descargar

Prueba gratuita de 30 días disponible

Gestor de localizaciones

Gestor de localizaciones

El nuevo Gestor de localizaciones le ayuda a trabajar de un modo más eficiente con numerosos archivos .resx en su solución. Muestra todo lo que tiene en sus archivos .resx en una sola retícula, para que pueda observar el estado actual de la localización de la aplicación o sitio web y buscar rápidamente cualquier valor de recurso que falte en un idioma.

Puede:

  • Añadir, editar, renombrar, buscar, integrar, mover y eliminar con seguridad cualquier recurso localizado.
  • Busque todos los recursos a los que les falten valores localizados.
  • Oculte los idiomas que no necesite en ese momento.
  • Cree los archivos .resx de cultura que falten.
  • Vea una descripción emergente que muestra una descripción detallada de cuál es el problema con la celda.

Puede ver el Gestor de localizaciones en ReSharper | Windows o en el menú contextual de Solution Explorer.

Para obtener más información, consulte Localization Becomes Easier with the Localization Manager.

Mejor compatibilidad incluso con C# 8

Mejor compatibilidad incluso con C# 8

La nueva versión de ReSharper gestiona C# 8 incluso mejor. Ahora incluye:

  • Una mejor comprensión de los tipos de referencias que aceptan valores null, incluida la compatibilidad con restricciones notnull.
  • Expresiones switch de tipo de objetivo.
  • Compatibilidad anticipada con métodos de interfaz predeterminados.
  • Un nuevo consejo, “Local function can be static”, con un arreglo rápido complementario.
  • Un nuevo arreglo rápido para habilitar los avisos y las anotaciones que aceptan valores null en un archivo, proyecto o todos los proyectos en una solución.
  • Un nuevo arreglo rápido para añadir el atributo EnumeratorCancellation a los parámetros CancellationToken de los iteradores async.

Además, la inspección de código “Type or type member is never used” se ha dividido en dos opciones independientes, una para tipos (“Type is never used”) y otra para miembros de tipo (“Type member is never used”).

Generación de código

Generación de código

La acción Generate sabe más de C# 8 y también le ayuda a aprender con:

  • Un nuevo arreglo rápido Add missing arms para comprobar los valores enum exhaustivamente.
  • Un nuevo arreglo rápido y acciones contextuales para generar patrones de tipo en expresiones switch.
  • Nullability se tiene en cuenta al generar miembros/comparadores de igualdad/relacionales.

Además, hay una nueva opción para utilizar System.HashCode para implementar GetHashCode al generar miembros de igualdad o comparadores de igualdad para C# y VB.NET, lo que le permitirá obtener un código más limpio.

Formateo de código

Estilo de código

En esta versión, hemos implementado una petición más muy esperada. La configuración de nomenclatura C# ahora permite la lectura y la exportación a EditorConfig.

Además de este gran cambio, también hay varios cambios más pequeños que le ofrecen más control sobre el estilo de su código:

  • Para quienes prefieran utilizar var en lugar de tipos explícitos solo cuando el tipo de expresión de inicializador es evidente/aparente, ReSharper ahora puede detectar los casos más “evidentes”. También hay un modo de “compatibilidad” que replica el comportamiento de Roslyn.
  • Hay una nueva opción de estilo de código, que es compatible con StyleCop y Roslyn, para añadir paréntesis que aclaren la precedencia solo para un grupo de operadores anidados con otros del mismo grupo. Por ejemplo, si no puede recordar si && o || tiene precedencia, esta opción le ayudará a aclararlo con paréntesis.
  • Comment Code ahora añade una sangría a un comentario de manera predeterminada. Hay un nuevo ajuste en “Place comments at first column when commenting out code” para desactivarlo si lo desea.
  • Las páginas de opciones para configurar las sangrías ahora muestra la notificación adecuada cuando el ajuste Autodetect indent size and value está activado.
  • También hay una descripción emergente de notificación que explica las funcionalidades Configure formatting y Autodetect formatting en las páginas de opciones del formateador de C#.
Herramientas de línea de comandos multiplataforma de ReSharper

Herramientas de línea de comandos multiplataforma de ReSharper

La gente nos preguntaba a menudo si sería posible ejecutar las Herramientas de línea de comandos ReSharper en una Integración continua alojada en Linux. Durante mucho tiempo, nuestra respuesta era: “No, no se puede hacer.” Sin embargo, hemos trabajado duro para quitar todas las partes específicas de Windows para poder trasladar todo al tiempo de ejecución Mono para Linux y macOS. No se preocupe, porque sigue utilizando .NET Framework en Windows.

¡Nos complace anunciar que las Herramientas de línea de comandos de ReSharper llegan a Linux y macOS! Ya nada le impide utilizar el potente análisis del código de ReSharper en sistemas operativos que no sean Windows.

Consejos de nombre de tipo

Consejos de nombre de tipo

Esperamos que le gusten los consejos sobre nombres de parámetros y anotaciones dentro del código que hemos introducido en ReSharper 2019.1. En esta versión, hemos ido más lejos y podemos ofrecerle consejos sobre nombres de tipo. Están disponibles para:

  • Parámetros de lambda.
  • Todas las ocurrencias de var, incluida la concordancia de patrones y la deconstrucción de tuplas.
  • Variables de rango dentro de declaraciones LINQ.
  • Al final de una línea en una cadena de llamadas de métodos.
Navigation y Find Usages

Navigation y Find Usages

La mayoría de nosotros a veces necesitamos saber dónde se utiliza una referencia en concreto dentro de nuestro código. Durante mucho tiempo, era posible ejecutar la acción “Find dependent code” en una referencia para encontrar todos los lugares en los que aparecían tipos o miembros de tipo de dicha referencia. Sin embargo, siempre ha habido límites.

A partir de la versión 2019.3, hemos eliminado un par de ellos:

  • Find dependent code ahora funciona con las referencias NuGet y puede ejecutarse para toda una situación en lugar de para solo un proyecto.
  • Consuming APIs amplía las acciones “Navigate to” y podría resultar útil si quiere enumerar todos los métodos que reciben objetos de un tipo concreto en sus parámetros.
  • La ventana Find results de Find dependent code tiene filtros nuevos.
  • Ahora puede navegar a los recursos externos de los paquetes NuGet que tienen un paquete de símbolos de fuente.
Actualización en las pruebas de unidades

Actualización en las pruebas de unidades

Las ventanas de herramientas Unit Testing ya gozan de excelente salud y cubren casi todo lo que se espera de ellas. Sin embargo, creemos que podríamos añadir más modos de personalizar su vista de la lista de pruebas de unidades, y eso es lo que hemos hecho.

  • Utilice la nueva funcionalidad avanzada Group by en las ventanas de herramientas Unit Test Explorer y Unit Test Session para crear un grupo personalizado. Con el elemento añadido Duration, ahora puede agrupar pruebas de unidades según el tiempo que tardan en ejecutarse.
  • Puede filtrar las pruebas de unidades según el marco de trabajo objetivo en la ventana de herramientas Unit Test Session, en caso de que tenga más de una (algo bastante común en la actualidad) y no quiera ver algunas.
Actualización del resaltado de identificadores

Actualización del resaltado de identificadores

Se ha rediseñado por completo el resaltado de identificadores. Hemos añadido más ajustes de colores para una mayor precisión en el resaltado de código (disponible en Tools | Options | Fonts and Colors). Los nuevos ajustes de colores incluyen:

  • Una sección general para colores de entidades en todos los lenguajes.
  • Ajustes exclusivos para los colores de C#.
  • Nuevos ajustes de colores para construcciones en lenguajes diferentes.
Otras funcionalidades

Otras funcionalidades

  • Las nuevas NUnit inspections cubren las pruebas de unidades combinatorias y parámetros individuales de pruebas de unidades parametrizadas.
  • La ventana emergente Parameter Info está disponible para tuplas.
  • La compatibilidad con Xamarin ha recibido un par de correcciones importantes, como es la compatibilidad con x:DataType y el atributo Class.
  • Los asistentes de escritura para eliminar nuevas líneas y para hacer retroceso antes de una nueva línea ahora deja un espacio para separar tokens o cuando lo requiere las reglas de formateo.
Compatibilidad con C++20

Compatibilidad con C++20

C++20 está repleto de funcionalidades y se autorizará oficialmente el año que viene para ofrecer a los desarrolladores de C++ muchas y esperadas novedades. ReSharper C++ 2019.3 ya es compatible con muchas de esas funcionalidades, y las aumenta con análisis e información adicionales.

En primer lugar, ReSharper C++ ahora es consciente de que los agregados pueden iniciarse desde una lista de valores con paréntesis, y de que en algunos casos debe realizarse ADL extra con plantillas de función.

No solo Concepts son compatibles con el analizador de ReSharper C++, sino que la refactorización Rename y Find Usages también están disponibles. Incluso mejor, el análisis del código le puede mostrar más información sobre los errores relacionados con Concepts. Por ejemplo, si la resolución de sobrecarga falla porque un requisito de Concept no se ha cumplido, verá toda la información en una descripción emergente. A propósito, en ReSharper 2019.3 también hemos añadido color a la descripción emergente que muestra la información sobre los fallos de resolución de sobrecarga.

Hemos empezado una serie de publicaciones en el blog sobre C++20 y ReSharper C++, en las que puede obtener más información sobre las funcionalidades del lenguaje y su adopción en ReSharper C++.

Compatibilidad con Unreal Engine 4

Compatibilidad con Unreal Engine 4

Cuando ReSharper C++ detecta que está desarrollando un proyecto con Unreal Engine, ajusta su comportamiento para que sea más específico para UE4.

La plantilla de postfix “new” para las UCLASS se amplía a una llamada a función de factory adecuada (que registrará el objeto creado en el recolector de basura). Las plantillas activas con los nombres correspondientes ahora están disponibles para ayudarle a generar rápidamente USTRUCT/UCLASS/UENUM/UENUMCLASS.

Los punteros inteligentes de Unreal Engine (TSharedPtr, TSharedRef, TWeakPtr, TUniquePtr) ahora se gestionan en ReSharper C++ de manera similar a std::shared_ptr/std::unique_ptr. Esto significa que funcionalidades como Parameter Info, el análisis del código y la finalización de código postfix funcionan con los punteros inteligentes.

Por último, hay algunas mejoras en el rendimiento para los proyectos UE4. Por ejemplo, hemos solucionado un bloqueo que ocurría después de "Refresh Visual Studio Project" en el editor de UE4.

Vea las Novedades de ReSharper C++.

Perfilador de línea de comando en macOS y Linux

Generador de perfiles de línea de comando en macOS y Linux dotUltimate

El perfilador de línea de comando por fin llega a macOS y Linux. dotTrace.sh tiene la misma funcionalidad que su versión de Windows, y se distribuye como archivo .tar.gz y como paquete NuGet.

Ver novedades de dotTrace 2019.3.

Mejoras de dotCover dotUltimate

dotCover 2019.3 recibe varias mejoras:

  • Compatibilidad con Unity 2018.3 y, más tarde, con todos los sistemas operativos. Para llevar a cabo un análisis de cobertura de pruebas de Unity, debe usar JetBrains Rider.
  • Compatibilidad con Microsoft Fakes.
  • Posibilidad de agrupar los resultados de cobertura por espacios de nombres anidados en Rider, Visual Studio y en informes generados por la herramienta de la consola dotCover.

Ver novedades de dotCover 2019.3.

Descargar

Prueba gratuita de 30 días disponible