Novedades de Rider

Rider 2020.2 cuenta con funciones muy solicitadas, como la compatibilidad con Shader y Localization Manager en nuestra integración con Unity. Hemos rediseñado completamente el ejecutor de pruebas de unidades y la API del depurador para que sean más rápidos, más potentes y más estables. Esta versión también incluye mejor compatibilidad con C#, puntos de interrupción de datos y compatibilidad completa con solicitudes de incorporación de cambios de GitHub.

Depurador

Nueva API del depurador

Nueva API del depurador

La nueva versión incluye la nueva API del depurador, que se ha renovado en gran medida. Las novedades no son perceptibles desde IU, pero admite más funcionalidades futuras y permite que los complementos se unan al proceso de depuración como nunca antes. Esto incluye cálculos super-lazy mejorados con una mejor interrupción y representaciones de valores personalizadas. Lo único visible desde el exterior es que las ventanas de herramientas del depurador muestran los iconos correctos para todas las variables.

Puntos de interrupción de datos

Puntos de interrupción de datos solo en Windows

Los puntos de interrupción de datos son útiles cuando necesita centrarse en las propiedades de un objeto en particular. Normalmente los utiliza en casos en los que sabe qué cambiará, pero no tiene ni idea sobre de qué parte de su base de código procede el cambio. Podrá acceder a esta función desde la ventana de herramientas Watch, e incluso funcionará con elementos de vectores. Debido a limitaciones actuales de la plataforma, esto probablemente solo sea posible para .NET Core 3+ en Windows.

Más información

Pin-To-Frame

Pin-To-Frame

En Rider 2020.2 vamos a incorporar Pin-To-Frame, que le permite anclar valores entre marcos. Puede anclar parámetros para una función, y verlos en la lista de marcos de pila. Al depurar funciones recursivas, le permite mirar el estado de los valores en diferentes iteraciones.

Más información

Localization Manager

El Localization Manager ahora puede ayudarle desde Rider a localizar su aplicación .NET o página web. Puede acceder a él utilizando el menú Tools o haciendo doble clic en un archivo .resx.

Le permite ver todo lo que contienen los archivos .resx de su proyecto, o una selección de archivos especificados, en una sola retícula.

Puede encontrar fácilmente todos los recursos en los que faltan valores localizados o donde simplemente no se han utilizado.

Puede añadir, editar, renombrar, buscar, encontrar usos y eliminar con seguridad cualquier recurso localizado.

Puede añadir fácilmente una nueva cultura a su aplicación utilizando la lista de culturas predefinida en la finalización u ocultar culturas locales que no necesita actualmente.

Puede exportar toda la retícula a un formato CSV para compartirlo con los traductores e importar la versión final de vuelta al Localization Manager.

Puede añadir y editar comentarios en cualquier entidad a partir de los archivos de recursos directamente dentro de la retícula, y también puede importar y exportar estos comentarios.

Puede ver toda la estructura de archivos .resx en su solución con agrupaciones distintas.

GameDev

Unity

Compatibilidad con Shader

¡Rider 2020.2 incorpora la muy solicitada compatibilidad con shaders Cg y HLSL! Esta incluye resaltado de sintaxis, finalización de código, resaltado de errores semánticos, definición go to, buscar usos y refactorizaciones, entre otros.

Rider comprende por completo la estructura de los archivos shader, incluidas las macros, y es capaz de navegar a definiciones de macros o desplegarlas directamente en el código. Los archivos incluidos se descubren y se analizan, y si pulsa Ctrl+Click en uno de los archivos incluidos irá directamente a ese archivo.

Puntos de pausa

Puntos de pausa

¡Ahora incorporamos un tipo nuevo de punto de interrupción! Establezca un punto de interrupción en el código, conviértalo en un punto de pausa y, cuando el depurador llegue a ese punto, Unity Editor cambiará inmediatamente al modo pausa, para que pueda utilizar el inspector para ver el estado de su juego.

Esta herramienta resulta todavía más potente cuando se usa en combinación con puntos de interrupción condicionales y dependientes. Más información en este artículo del blog.

Análisis en Burst

Análisis en Burst

El código habilitado por Burst puede mejorar en gran medida el rendimiento de su aplicación Unity, pero impone restricciones en cuanto a lo que el código puede hacer.

Rider 2020.2 incorpora análisis inteligente para todo el código al que se llama desde dentro de un contexto Burst, y resaltará cualquier uso incorrecto del código, como boxing, uso de foreach o try/catch, así como lectura/escritura en campos static, entre otros.

Depuración USB para dispositivos Apple

Depuración USB para dispositivos Apple

Rider ya cuenta con gran compatibilidad para depurar players en la red, incluyendo players de escritorio independientes, móviles y consolas.

Rider 2020.2 incorpora depuración basada en USB para dispositivos Apple (la depuración USB para dispositivos Android está planeada para una versión futura).

Arreglos rápidos masivos

Arreglos rápidos masivos

Todos los arreglos rápidos que pueden realizarse en archivos, proyectos y soluciones completas se han actualizado para que esto sea posible.

Elimine los atributos de Unity redundantes, sustituya comparaciones literales de cadenas con CompareTag, mejore el rendimiento combinando la creación de objetos con la configuración de la transformación principal, todo ello en su proyecto Unity al completo con un solo clic.

Extensiones de valores del depurador

Extensiones de valores del depurador

El depurador de Rider le mostrará valores contextuales adicionales para proyectos Unity. Acceda fácilmente a la escena activa, objetos de juegos secundarios y todos los componentes adjuntos.

Rider también muestra información de resumen mejorada para ciertos tipos, como ángulos Euler para Quaternion, valores de total precisión para vectores, el estado habilitado para los comportamientos, y más.

Compatibilidad integrada con UnityYamlMerge

Compatibilidad integrada con UnityYamlMerge

Rider will automatically use Unity’s Smart Merge tool to merge asset files when performing integrated version control operations.

Más funcionalidades

  • Reducción significativa en el uso de memoria y resultados mejorados mientras se indexan recursos basados en texto para utilizaciones de código en escenas, prefabs y otros recursos.
  • Se han añadido términos comunes de la API de Unity como diccionario personalizado al corrector ortográfico de Rider.
  • La limpieza de código ahora reconoce los tipos Unity, y ya no ordenará campos serializados, lo cual es importante al mostrar estos campos en el inspector Unity Inspector.
  • More minor features and fixes.

Rider para Early Preview de Unreal Engine

Rider para Unreal Engine

¿Le interesa el desarrollo de juegos con Unreal Engine? En nuestro intento de convertir Rider en un IDE de desarrollo de juegos universal, todo en uno e independiente, hemos introducido compatibilidad anticipada con desarrollo de Unreal Engine en Rider:

  • Compatibilidad nativa con C++ gracias al motor de ReSharper C++.
  • Rendimiento optimizado para proyectos de Unreal Engine.
  • Integración con la información de Unreal Editor y Blueprints en el editor de Rider.
  • Comprender la reflexión de UE y RPC y aplicar las normas de nomenclatura de UE.
  • Compatibilidad con HLSL y C#, JSON y dialectos uproject/uplugin.

La vista previa de acceso anticipado es gratis. Simplemente regístrese para unirse.

Análisis de código

El análisis de código que podría ser nulo ahora detecta más casos y puede efectuar un seguimiento de la posibilidad de nulidad incorrecta a través de la deconstrucción y del ciclo foreach. También ofrece el arreglo rápido correspondiente.

El análisis de código ahora tiene en cuenta los atributos JetBrains.Annotations (NotNull y CanBeNull) para la API, incluso en código donde los tipos de referencia que aceptan valores null están deshabilitados (#nullable disable).

También dispone de acciones contextuales para convertir foreach a LINQ y LINQ a código en IAsyncEnumerable<T> si tiene instalado el paquete System.Linq.Async NuGet para su proyecto.

Ahora es posible generar fácilmente implementaciones IEqualityComparer<T> y IComparer<T> con los arreglos rápidos correspondientes.

Ahora, el análisis de código tiene en cuenta las anotaciones del compilador (como AllowNull y DisallowNull) al verificar la posibilidad de valores null de miembros implementados o anulados.

Cuenta con nuevas inspecciones y arreglos rápidos para hacer que las variables y los tipos de retorno sean "not nullable" si nunca han tenido o devuelto valores que acepten null.

El análisis de código ahora puede seguir las reglas dotnet_diagnostic desde el archivo .editorconfig. Especifique la gravedad de las inspecciones en el archivo .editorconfig, p. ej. dotnet_diagnostic.CS1058.severity = hint, y Rider mostrará las inspecciones correspondientes.

En esta versión se ha mejorado la compatibilidad con las implementaciones predeterminadas en la funcionalidad de interfaces. El medianil izquierdo del editor de código muestra que se ha implementado o anulado un método, y nuestras refactorizaciones y navegación son conscientes de esta funcionalidad del lenguaje C#.

Ahora los consejos de inserciones están disponibles en código XAML. Ofrecemos consejos para nombres de propiedades de marcado y DataContext, así como para márgenes y caracteres de relleno, lo cual resulta práctico si no desea memorizar sus órdenes.

El arreglo rápido Suppress nullable warning with ! se puede deshabilitar para una solución con el menú Alt+Enter.

Pruebas de unidades

Hemos renovado por completo nuestro ejecutor de pruebas de unidades .NET Framework y .NET Core para utilizar el mismo ejecutor para ambos tiempos de ejecución que se llevan a cabo fuera del proceso de Visual Studio. Esto nos ayuda a resolver una gran cantidad de problemas al descubrir, ejecutar y depurar pruebas de unidades, y nos da un control total de las jerarquías de pruebas de unidades para pruebas de .NET Core.

El nuevo ejecutor de pruebas de unidades incorpora las siguientes mejoras importantes:

  • Compatibilidad integrada con los marcos de trabajo de pruebas de unidades MSFakes for NUnit, xUnit y MSTest v2.
  • Compatibilidad integrada con TypeMock Isolator para NUnit, xUnit y MSTest v2.
  • Las pruebas MSTest v2 ahora pueden ejecutarse sin tener Visual Studio instalado.

Rider ahora es compatible con el atributo DisplayName en pruebas .NET Core para marcos de trabajo xUnit y NUnit.

Puede seleccionar múltiples estados de pruebas de unidades simultáneamente para filtrarlos en el árbol de pruebas de unidades. Habilite o deshabilite múltiples estados manteniendo pulsada la tecla Ctrl mientras hace clic en ellos.

Hay dos contadores distintos para cada estado cuando se aplica un filtro de marco de trabajo de destino o búsqueda, para mostrar el número total de pruebas de unidades y el número de pruebas que cumplen los criterios de filtrado.

Hemos añadido compatibilidad con códigos de escape ANSI en la ventana Output, para que pueda colorear el resultado de la prueba de unidad si lo desea.

Existe una nueva acción en el menú Alt+Enter para abrir el diálogo Settings si obtiene el estado "Visual studio installation folder is not set" para su prueba de unidad MSTest.

Control de la versión

Solicitudes de incorporación de cambios de GitHub

¡Por fin ha llegado la compatibilidad mejorada con solicitudes de incorporación de cambios de GitHub! Podrá explorar, asignar, gestionar e incluso combinar las solicitudes de incorporación de cambios, ver la línea de tiempo y los comentarios de línea, enviar comentarios y revisiones, y aceptar los cambios.

La nueva compatibilidad incluye:

  • Un nuevo diseño para el visor de solicitudes de incorporación de cambios.
  • Ver los resultados de las comprobaciones previas a la confirmación en la línea de tiempo.
  • Compatibilidad con revisiones.
  • Interacción con comentarios.
  • Combinar solicitudes de incorporación de cambios desde el IDE.

Para obtener más detalles acerca de esta nueva funcionalidad, eche un vistazo a este artículo del blog.

Otras funcionalidades de VCS

Además de la compatibilidad total con solicitudes de incorporación de cambios de GitHub, están disponibles las siguientes nuevas funcionalidades para sistemas de control de versiones:

  • Compatibilidad con Git instalado en WSL2.
  • Hemos mejorado el modo en que se presenta el resultado de la acción Compare branches.
  • Ahora puede seleccionar un número de confirmaciones locales en la pestaña Log de la ventana de herramientas Git y reagruparlas en una única con squash. Esta acción está disponible desde el menú contextual haciendo un clic con el botón derecho del ratón.

NuGet

Puede utilizar la ventana de herramientas de NuGet para ver todos los paquetes transitivos de una solución o proyecto en la nueva sección Implicitly Installed Packages.

Al pasar con el ratón por encima de un paquete implícito, aparece una descripción emergente que contiene información sobre la versión del paquete implícito y el paquete de referencia. Si se hace referencia al paquete en múltiples versiones, se mostrarán todas.

Hemos añadido un nuevo menú emergente contextual que se puede invocar haciendo clic con el botón derecho o pulsando Alt+Enter en un paquete de NuGet. Desde aquí puede acceder rápidamente a todas las acciones relevantes para un solo paquete de NuGet, como actualizar o eliminar el paquete, abrirlo en el Assembly Explorer para examinar la API, mostrarlo en el explorador del sistema de archivos, navegar a la correspondiente entrada NuGet.org o encontrar el código dependiente.

También existe una nueva acción Quick NuGet Documentation para ver las rutas de referencia implícitas a un paquete.

El cuadro de búsqueda de paquetes también se ha actualizado. Puede hacer clic en el icono de la lupa o utilizar Alt+Flecha hacia abajo parar abrir el historial de búsqueda de paquetes recientes.

Ahora también podemos editar valores para dos de las propiedades que se modifican más habitualmente: globalPackagesFolder y repositoryPath.

En la pestaña Feeds, ahora podemos ver inmediatamente si la ruta de una fuente no es válida, ya que la ruta se resaltará con un rectángulo rojo.

También se mostrará un mensaje de advertencia en la lista de búsqueda si buscamos un paquete y no se encuentra en ninguna de las fuentes.

Una nueva advertencia del panel de detalles indica visualmente qué paquetes se encuentran todavía en mantenimiento o se han quedado obsoletos.

Compatibilidad con F#

Refactorización

La refactorización Introduce Variable ahora está disponible para expresiones. Cuando se invoca, muestra las subexpresiones correspondientes (a menos que se seleccione una parte específica del código) y ofrece sustituir subexpresiones similares. También ofrece nomenclatura inteligente para la nueva variable, y sugiere un nombre significativo según el tipo y el contexto.

Rename ahora funciona con comodines de guión bajo. Siempre que necesite convertir un patrón de comodín en una variable con nombre, puede llamar a la refactorización en lugar de hacerlo manualmente. También tiene en cuenta el tipo y el contexto al sugerir nombres.

Arreglos rápidos y acciones contextuales

Se ha mejorado considerablemente Import Type. Ahora funciona en más casos y tiene en cuenta el recuento de parámetros al sugerir un tipo. Rider ahora puede sugerir hacer referencia a un módulo u otro proyecto de su solución e importar el tipo desde allí.

Otras funcionalidades de VCS

También se han agregado varios arreglos rápidos nuevos: añadir paréntesis a una aplicación de una función en la lista de parámetros, añadir el atributo Extension a un módulo o tipo contenedor, solucionar errores de sintaxis, convertir 'let' en 'use', entre otros.

Analizadores

Analizadores

Hemos implementado un analizador rápido de calificadores redundantes, así como el correspondiente arreglo rápido para eliminar las redundancias.

Editor

Ahora dispone de más opciones para destacar varios símbolos de forma distinta. Además, las abreviaturas de tipo se resaltan como los tipos que abrevian, y las funciones se pueden resaltar como métodos. Both are external contributions, and we thank Igor Bagdamyan for them.

Rider ahora dispone de consejos de escritura en cadenas |>. Estos le ayudan a mantener bajo control lo que sucede sin tener que seguir mentalmente toda la cadena. This too is an external contribution, which we’d like to thank Saul Rennison for.

Las referencias de color ahora se resaltan en el código, para que sean más visibles.

Finally, we now have an F# Compiler Service monitor – thanks again to Saul. Siempre que FCS esté ocupado, se mostrará un indicador. Se trata principalmente de una herramienta de diagnóstico: ayuda al desarrollador a comprender el motivo por el que el IDE se ha quedado pensando y, en caso de que ese comportamiento parezca sospechoso, se puede informar al equipo de Rider para que lo analice.

To learn more about updates in F# support, please take a look at the release notes on GitHub.

Compatibilidad con x:Bind

Tenemos buenas noticias para los desarrolladores de UWP: ¡por fin tenemos compatibilidad con vinculaciones compiladas con x:Bind!

Rider resuelve código x:Bind correctamente y ofrece varias inspecciones y los arreglos rápidos correspondientes. Le avisa acerca de setters de propiedades que faltan, atributos BindBack, y cuando hay colisiones de sobrecarga. Además, existe un conjunto de arreglos rápidos Create from Usage para generar un campo correcto, una propiedad o un método dentro del código detrás del modelo C#.

Cuenta con finalización de código e información de parámetros para atributos propertyPath, BindBack y UpdateSourceTrigger dentro de una expresión x:Bind.

Las refactorizaciones Change Signature y Safe Delete ahora conocen la utilización de métodos en código XAML y los actualizan según corresponda. Del mismo modo, las refactorizaciones Make Static/Const y Encapsulate Field funcionan directamente desde el código XAML y actualizan las utilizaciones de XAML correctamente si las llama desde el código detrás del modelo C#.

La detección de código que podría ser nulo está integrada en el análisis de código x:Bind. Rider ahora muestra las inspecciones relacionadas con null directamente dentro del código XAML si hay atributos CanBeNull y NotNull en código C#, por ejemplo, “Possible System.NullReferenceException” y “Possible null assignment to non-nullable entity” para argumentos en un método utilizados en un propertyPath.

Otras funcionalidades de Rider como Find Usages y Go to Declaration también reconocen las vinculaciones x:Bind.

Complementos

dotTrace

dotTrace dotUltimate

El complemento dotTrace es capaz perfilar la parte nativa de las aplicaciones Mono/Unity en Windows. Inicie una sesión con la opción 'Enable native profiling' y verá tanto las pilas de llamadas nativas como las gestionadas en instantáneas de rendimiento.

Dynamic Program Analysis

Dynamic Program Analysis

Ahora puede filtrar por proceso/módulo/clase/método en Settings/Preferences | Build, Execution, Deployment | Dynamic Program Analysis | Filtering para acotar el ámbito de Dynamic Program Analysis.

  • Si necesita analizar solo algún método/clase/etc. específico, añádalo a la lista Analyze code only in.
  • Si tiene que ocultar del análisis solo algún método/clase/etc. específico, añádalo a la lista Do not analyze code in.

dotCover dotUltimate

La nueva versión incluye varias prácticas funcionalidades al complemento dotCover:

  • La ventana Unit Tests Coverage ahora le permite exportar informes de cobertura.
  • La ventana Unit Tests Coverage ahora cuenta con una funcionalidad de búsqueda rápida.
  • Ahora puede navegar desde un símbolo del código hasta ese símbolo en el árbol de cobertura (Navigate to | Coverage Tree o utilizando el icono Navigate from Editor de la barra de herramientas de la ventana de herramientas Coverage).

Azure Toolkit for Rider

Una vez que instale el emulador de almacenamiento Azurite utilizando npm (npm install -g azurite), se añadirá un nodo Azurite a la ventana de herramientas Services. Desde aquí puede iniciar, detener y limpiar el emulador de almacenamiento.

Cuando utiliza desencadenantes de temporizador en Azure Functions, tiene que introducir una expresión NCrontab válida que defina cuándo se ejecutará la función. El Azure Toolkit para Rider ahora le ayuda a editar la crontab ofrenciendo finalización de código con varias expresiones de ejemplo desde donde comenzar a trabajar.

Rider ahora comprueba si una expresión NCrontab es válida o no, y le da información adicional sobre cuál podría ser el error.

Complemento Markdown

Complemento Markdown

¡Ahora Rider es compatible con Markdown! Rider 2020.2 ahora incluye el complemento Markdown. Reconoce los archivos Markdown de su solución, le ofrece un editor dedicado para ellos y muestra el HTML renderizado en una vista previa en directo.

Compatibilidad con Godot

Compatibilidad con Godot

Las configuraciones de ejecución de Godot se han renovado. Ahora puede ejecutar configuraciones de ejecución Player y Editor, depurarlas y ejecutarlas con generación de perfiles. Además, puede editar los parámetros de línea de comando que se utilizan para ejecutar tanto Player como Editor.

También puede ejecutar o depurar escenas individuales directamente desde el menú contextual de la vista Solution Explorer.

Compatibilidad con bases de datos

Editor separado para valores de celdas

Editor separado para valores de celdas

Ahora, si tiene un valor muy grande en su celda, puede verlo y editarlo en un panel por separado. También puede cambiar entre el modo de salto de línea suave (soft wrap) utilizando la barra de herramientas de la derecha. ¡Utilice toda la potencia del editor de código de Rider para sus datos!

Una nueva interfaz de usuario para valores booleanos

Una nueva interfaz de usuario para valores booleanos

Ahora hay un modo más intuitivo de ver y editar valores booleanos. Los valores True ahora se marcan con una viñeta para distinguirlos de los demás.

Vista previa DML en el editor de datos

A partir de esta versión, puede revisar la consulta que representa sus cambios en el editor de datos. Ahora hay un icono DML que está activo si hay cambios pendientes. Al hacer clic en el icono, verá un diálogo con la vista previa DML. Esta consulta no es necesariamente el SQL exacto que se ejecutará para modificar sus datos, porque Rider utiliza un controlador JDBC para actualizar las tablas, aunque en la mayoría de los casos sí será el mismo.

Eche un vistazo a Novedades de DataGrip para consultar todas las mejoras de las bases de datos que también están disponibles en Rider 2020.2.

Desarrollo web

Ahorre tiempo con nuevas funcionalidades para JavaScript

Ahorre tiempo con nuevas funcionalidades para JavaScript

Las nuevas intenciones inteligentes (Alt+Intro) le ayudarán a realizar algunas acciones más rápidamente. Por ejemplo, ahora puede convertir rápidamente un bucle for con un índice numérico en un método de vector forEach. Consultar los comentarios de la documentación en archivos JavaScript y TypeScript también se ha vuelto más sencillo, ya que ahora puede mostrarlos directamente en el editor para minimizar las distracciones.

Haga de Prettier el formateador predeterminado en sus proyectos JavaScript

Haga de Prettier el formateador predeterminado en sus proyectos JavaScript

¿Quiere utilizar Prettier en lugar del formateador integrado para organizar su código? Con esta actualización, se ha vuelto incluso más fácil que antes. Instale el complemento que encontrará en JetBrains Marketplace y, a continuación, en la página Settings/Preferences | Plugins, marque la nueva casilla 'On code reformat' y el IDE utilizará Prettier siempre que reformatee sus archivos .js, .ts, .jsx y .tsx. También se pueden añadir fácilmente otros tipos de archivo.

Disfrute de la mejor asistencia de su categoría para Vue

Disfrute de la mejor asistencia de su categoría para Vue

En el último año, hemos añadido la compatibilidad con Nuxt.js, configuraciones de estilo de código específicas de Vue, mejoras para Vue en los proyectos TypeScript y muchas cosas más. ¡La compatibilidad con Vue en Rider nunca había sido tan avanzada!

Eche un vistazo a Novedades de WebStorm para consultar todas las mejoras en el desarrollo web que también están disponibles en Rider 2020.2.

Refactorización

En esta versión, el diálogo Conflicts se ha rediseñado como paso por separado en la interfaz de Refactorings. La lista simple de antes se ha sustituido por un árbol agrupado por archivo. Para volver a la lista simple, haga clic en el icono Flatten en la barra de herramientas de la derecha.

Al llamar a las refactorizaciones Introduce parameter o Introduce field en una expresión, Rider pregunta a qué parte de la expresión se debería aplicar la refactorización.

Otras actualizaciones

Xamarin

Cuenta con un par de actualizaciones destacadas:

  • Las plantillas de archivos están disponibles en proyectos Xamarin tanto para macOS como para iOS.
  • Hemos mejorado la sincronización con XCode: cuando no hay un archivo “.Designer.cs file”, Rider ahora genera uno en lugar de mostrar un error.

Y por último, aunque no menos importante

  • Nueva presentación de los resultados de búsqueda en Search Everywhere.
  • Ahora es posible adjuntar el depurador a configuraciones de alojamiento de tiempo de ejecución .NET Core y ejecutarlas con depuración.
  • Se generan configuraciones de ejecución para todos los proyectos ejecutables.
  • Ahora se admiten ProjectReferences para proyectos de páginas web.