Novedades de Rider

Rider 2020.3 por fin es compatible con las nuevas funcionalidades .NET 5, C# 9 y F# 5. También hemos introducido nuevas funcionalidades, como la ventana Immediate y Private Source Link en el depurador, y Project Dependency Diagrams, Push-to-Hint y lenguajes compatibles con el marco de trabajo de la interfaz de usuario Avalonia. Los desarrolladores de Unity encontrarán actualizaciones del análisis Burst y compatibilidad con shader. Y, por último, puede arrastrar y soltar pestañas para dividir el editor como más le guste.

Compatible con .NET 5 y C#

¡Demos la bienvenida a la primera versión de Rider compatible con .NET 5! La compatibilidad incluye Source Generators, funcionalidades de C# 9, nuevas funcionalidades de NuGet y nuevos marcos de trabajo de destino (net5.0-windows y net5.0). Además, puede crear, compilar, ejecutar, depurar, generar perfiles e incluir aplicaciones .NET 5.

Es posible que Source Generators sea la funcionalidad de la que más se habla en el compilador de C#. Es normal: la posibilidad de crear código nuevo durante el proceso de compilación y usarlo de inmediato es emocionante y puede ser de utilidad en muchas situaciones.

¿Qué puede hacer Rider aquí? Bueno, muestra sus puntos fuertes y tiene en cuenta los archivos generados al refactorizar, ofrece funcionalidades de edición de código y le ayuda a navegar hasta el código generado.

Ahora, los métodos parciales pueden tener parámetros out, tipos de retorno distintos de void y todo tipo de accesibilidad, lo que los vuelve más útiles con Source Generators. Source Generators puede utilizar la declaración de definición del método parcial para personalizar el comportamiento del código generado.

Otra buena adición son las propiedades de solo init. Solo es posible cambiar dichas propiedades durante la inicialización de un objeto. Así, podrá utilizar inicializadores de objeto sin riesgo de que cambien las propiedades.

Rider es consciente de la existencia de propiedades de solo init y las tiene en cuenta al finalizar el código, y lleva a cabo una finalización generativa, analiza si la propiedad ha cambiado en algún punto y ofrece un arreglo rápido para cambiarla si lo prefiere.

El mejor sitio para aplicar la propiedad init son los nuevos tipos record. Estos tipos de referencias tienen una semántica de valores con la que puede conseguir que el objeto no cambie, pero, en este caso, se aplica al objeto en su totalidad. De nuevo, Rider sigue realizando actualizaciones en el lenguaje, que van desde arreglos rápidos para elegir el estilo de declaración que prefiera a finalizaciones básicas.

Los registros posicionales tienen un método Deconstruct() generado por el compilador. Rider es compatible con todas las funcionalidades de deconstrucción de dichos objetos. Fíjese en la ventana emergente al introducir una variable: le da a elegir entre una variable o una declaración de deconstrucción. Ocurre lo mismo cuando una función accede a una propiedad de un objeto registrado.

Además de los aspectos importantes, ahora las funciones locales pueden tener atributos (así como parámetros y parámetros de tipo). Esto es compatible con los arreglos rápidos de Rider, incluida la práctica funcionalidad de anotar el método como [NotNull] o [CanBeNull] pulsando ! o ?, respectivamente.

Otra adición útil de C# 9 es la capacidad de escribir programas de primer nivel. Deje de pelearse con las clases del programa: ¡puede colocar el código de punto de entrada justo después de las directivas using! También tiene a su disposición una ayuda para trabajar con instrucciones de primer nivel. Hay dos reglas para las instrucciones de primer nivel: deberían ir antes de cualquier tipo o espacio de nombres, y solo puede haber código de primer nivel en un único archivo del proyecto. Es fácil incumplir ambas reglas al reorganizar y copiar y pegar código. Para solucionar esto, Rider cuenta con arreglos rápidos que trasladan el código de primer nivel a la parte superior o a otro archivo.

Dado que el código de primer nivel sigue siendo código, también tiene refactorizaciones: Extract local variable y Extract method.

Más información: Instrucciones de primer nivel de C# 9 en ReSharper y Rider

Con las nuevas expresiones basadas en el tipo de destino en C# 9, podemos omitir el tipo después de la nueva palabra clave si este se sobreentiende gracias al contexto de uso. Rider es totalmente compatible con la funcionalidad, incluida la capacidad de buscar usos del constructor y configurar el estilo de sintaxis preferido. Esta última le permite utilizar la sintaxis new() cuando un tipo creado es evidente, mientras que en otros casos se aplica una especificación de tipo explícita.

Por cierto, si pierde la pista de los elementos new() del código, puede que los consejos para nombres de tipo de Rider le sean de utilidad.

Gracias a la covarianza del tipo de retorno, ya no tiene que devolver el mismo tipo en los miembros que se van a reemplazar que en el método de clase base. Ya no necesita soluciones alternativas para devolver un tipo más específico.

La concordancia de patrones sigue en desarrollo en la nueva versión del lenguaje. Ahora, las expresiones de coincidencia permiten utilizar patrones relacionales (<, >, etc.) y lógicos (not, or, and), con lo que se reduce mucho el nivel de detalle de las antiguas construcciones switch. Rider puede serle útil para analizar los patrones y volver a escribirlos con el estilo deseado.

Por último, al introducir parámetros lambda desechables, pensamos que sería buena idea añadir un arreglo rápido para esta característica.

Esta es la información más importante sobre el lenguaje. Hay otras mejoras menores del lenguaje que también son compatibles con Rider 2020.3. Como expresiones condicionales basadas en el tipo de destino, lambdas estáticas, métodos de extensión GetEnumerator en foreach, tipos de puntero de función y tipos de enteros nativos.

Depurador

Ventana Immediate

Introducción de una nueva ventana Immediate con asistencia a la codificación. Si el programa se para en un punto de interrupción, puede crear variables sintéticas y experimentar con el código sin reiniciar el depurador.

Al iniciar una sesión de depuración, la ventana Immediate aparece en la parte inferior derecha, bajo las variables de inspección del panel de depuración. Solo aceptará valores de entrada si la aplicación está en pausa, normalmente al alcanzar un punto de interrupción.

Escriba y valide código C#, con todas las funcionalidades de finalización de código a su disposición.

Defina nuevas variables sintéticas. Rider hará el seguimiento de dichos valores en la ventana de variables según una serie de variables sintéticas. Puede inspeccionar, anclar y modificar dichas variables como ocurre con el resto de variables.

Incluso puede llamar a una función miembro de los objetos disponibles o a funciones estáticas disponibles en el contexto actual con los objetos disponibles como argumento. Los puntos de interrupción en la ruta de ejecución de la función interrumpen la ejecución como en una llamada normal. La llamada tiene su propia área en la pila y empieza por Function Evaluation, que se puede explorar en el panel Frames.

Ejecute instrucciones sin asignarlas a ninguna variable. Rider registrará el último valor recuperado de una instrucción de ejecución con el marcador de posición $result. La ventana Immediate hará el seguimiento de todas sus instrucciones.

Más información: Ventana Immediate – Interactúe con su código al depurar con Rider

Nuevas acciones

Ahora, dispone de nuevas acciones de depuración antes de empezar a depurar.

Ahora, no tiene que empezar a depurar y seguir varios pasos hasta llegar al método o un punto concreto del código. Con Start Debugging and Run to Here o Start Debugging and Run to Here Non-Stop, Rider lo lleva directamente al punto deseado y omite los puntos de interrupción.

Para empezar a depurar la aplicación y detener la ejecución justo al principio, en cuanto llegue al punto de entrada de la aplicación, utilice las acciones Start Debugging and Step Over o Start Debugging and Step Into.

Puede encontrar estas acciones en el menú principal Run | Debugging Actions.

Tenga en cuenta que las acciones mencionadas solo están disponibles para la configuración del proyecto .NET o la de .NET Static Method.

Private Source Link

Buenas noticias para todos aquellos a quienes el término “Private Source Link” les resulta familiar, ya que ahora Rider 2020.3 es totalmente compatible con los servidores de fuente privada, tanto en el depurador como en el descompilador integrado. Rider es compatible con fuentes ubicadas en GitHub, GitHub Enterprise, BitBucket y Azure DevOps (antiguo VSTS).

Rider puede almacenar credenciales de autenticación para facilitar el acceso en el futuro.

Otras actualizaciones del depurador

  • Hemos implementado la evaluación de métodos que tienen parámetros out y ref o declaran variables out en la lista de parámetros.
  • Hemos acelerado de forma significativa la enumeración de secuencias de IEnumerable.
  • Ahora, el enlace ‘View’ se muestra correctamente en los objetos con presentaciones muy largas.
  • Las cadenas largas ya no se truncan si se copian sus valores y se ha optimizado la evaluación de estas.

Diagrama de dependencias del proyecto

Con nuestra nueva herramienta de arquitectura, puede visualizar las dependencias del proyecto en su solución y explorar la arquitectura.

Explorar el diagrama

Puede abrir el diagrama de dependencias del proyecto desde Tools | Architecture | Show Project Diagram o desde el menú contextual de Solution Explorer. Sigue la estructura de la solución y empieza mostrando todos los elementos de primer nivel de esta. Puede seleccionar qué proyectos o carpetas de soluciones deberían estar visibles, cambiar la escala, habilitar una cuadrícula (y la opción de ajustar a la cuadrícula, si fuese necesario) y añadir notas a proyectos concretos.

Navegación

Con Ctrl+F en Windows y Cmd+F en macOS puede buscar el proyecto deseado.
El botón Show Neighbors of Selected Nodes de la barra de herramientas filtra el diagrama de dependencias del proyecto para limitar la visualización al nodo seleccionado, sus dependencias directas y los proyectos que dependen de este proyecto.

Para diagramas de dependencias del proyecto grandes, puede abrir la ventana de herramientas File Structure (View | Tool Windows | Structure) y desplazarse utilizando una vista de alto nivel.

Analizar el emparejamiento entre proyectos

Haga clic en el icono Enable Coupling Analysis de la barra de herramientas para analizar y actualizar el diagrama. El grosor, el color y el estilo de los enlaces puede variar en función de lo fuerte que sea el emparejamiento entre proyectos. Pase el cursor sobre el enlace y Rider mostrará una descripción emergente con el número exacto de usos. Al hacer clic en el enlace, se recoge información sobre código dependiente y se muestra en una ventana de herramientas separada.

En un diagrama de dependencias del proyecto, también puede mostrar las dependencias transitivas con Show Transitive. Esta acción mostrará las dependencias del proyecto, tanto directas como indirectas.

Guardar y comparar instantáneas

Guarde una instantánea del diagrama de dependencias del proyecto desde la barra de herramientas y compárela con la solución actual. Utilice el menú Tools | Architecture | Compare With Saved... para cargar e inspeccionar instantáneas guardadas previamente. Rider resaltará las diferencias entre los diagramas.

Más información: Los diagramas de dependencias del proyecto llegan a Rider 2020.3

Exportar diagramas

Desde la barra de herramientas, puede exportar el diagrama como imagen e incluirla en la documentación.

Desarrollo de juegos

Unity

Con actualizaciones para análisis Burst, compatibilidad con shader y pruebas de unidades, así como unas cuantas correcciones útiles, Rider 2020.3 supone otro gran paso en términos de compatibilidad con Unity.

Al hacer clic en el icono situado al lado de cualquier método marcado con el atributo [MenuItem] de Unity, Rider pedirá a Unity que invoque el método directamente desde el IDE.

Se ha mejorado la compatibilidad inteligente de Rider con shaders: al analizar el código, se utilizan de forma automática los símbolos definidos de pragmas, como shader_feature y target. Hay un nuevo selector de contexto en la barra de estado para analizar un shader según los símbolos definidos en la ubicación desde la que se incluyó.

Hemos mejorado el análisis contextual Burst con un nuevo indicador de Code Vision y nuevos avisos de uso incorrecto de SharedStatic. También puede utilizar el menú Alt+Enter para añadir rápidamente un atributo [BurstDiscard].

Las nuevas acciones contextuales permiten controlar mejor el análisis de métodos críticos para el rendimiento, como Update. Ahora, puede decirle a Rider que deje de tratar un método como "llamado con frecuencia" o que deje de resaltar un método como "intensivo", e incluso puede iniciar un nuevo contexto de rendimiento desde cualquier método.

También hay actualizaciones importantes en pruebas de unidades, como compatibilidad con el atributo [Explicit] y funcionalidades para pruebas parametrizadas. También puede ejecutar las pruebas de los modos de edición y juego en una única prueba.

La interfaz de usuario de la ventana de herramientas del visor de registros de Unity ha recibido alguna mejoras, entre las que destacan la opción de filtrar según la última vez que el juego se cambió al modo juego o la última vez que se recargó la AppDomain del juego.

Por supuesto, también hemos resuelto una serie de incidencias; por ejemplo, hemos corregido que el mensaje “refreshing solution” se mostrase de forma indefinida si no había conexión con el editor de Unity, y hemos quitado un mensaje de evento redundante. También hemos resuelto el problema de las sugerencias incorrectas del lenguaje C# en proyectos player. Para obtener más información, consulte el registro de cambios.

Rider para Unreal Engine Early Preview

Rider for Unreal Engine todavía está en la fase de versión preliminar pública y está programado su lanzamiento como parte de Rider en 2021. Puede evaluar la vista previa de forma gratuita hasta el lanzamiento oficial.

Rider for Unreal Engine proporciona una integración perfecta con UnrealHeaderTool para que pueda detectar más incidencias de código específico de Unreal Engine desde el editor. Al trabajar con un proyecto de Unreal Engine, ejecutará de forma automática UnrealHeaderTool en el archivo que está editando y mostrará los errores o avisos que haya, como ocurre con otras inspecciones.

Descubra la integración UnrealHeaderTool en acción

Con los archivos shader de HLSL, ahora puede utilizar por completo el análisis del flujo de control. Le avisa del código no alcanzable, las variables sin inicializar, el control de salto de flujo redundante y las ramas condicionales, entre otras cosas. En el Rider principal, está habilitado el mismo análisis para los shaders de Unity en la versión 2020.3.

Hemos añadido filtros a Unreal Log y ahora Rider for Unreal Engine le permite filtrar por el nivel de detalle y la categoría, de modo que puede mostrar u ocultar las marcas de tiempo. Hemos resuelto una incidencia con la interfaz de usuario, ya que esta se bloqueaba si había demasiados mensajes en el panel de registros de Unreal.

El complemento UnrealLink/RiderLink permite la integración avanzada entre JetBrains Rider y Unreal Editor de Epic Games. Ahora está alojado en el Marketplace de JetBrains y se puede actualizar de forma independiente a la compilación del producto.

Compatibilidad con F#

Funcionalidades de F# 5

Hemos añadido compatibilidad con la nueva sintaxis de interpolación de las cadenas. Ahora, puede marcar como interpolada una cadena con el símbolo $ y colocar marcadores de posición en el literal de cadena. La sintaxis “interpolaciones de tipo” (%s y %d) para los marcadores de posición también es compatible.

Esta versión es compatible con la palabra clave nameof, que le ayuda a convertir casi cualquier símbolo en F# a su nombre.

Por último, pero no por ello menos importante, ahora las declaraciones open type también son compatibles. Con ellas, puede abrir cualquier tipo para importar contenido estático almacenado en el tipo.

Otras funcionalidades y mejoras

Ahora, puede generar anulaciones que falten en los tipos y mejoras en la interfaz, como arreglos rápidos y acciones contextuales. ¡Gracias a Matt por la idea y la implementación inicial!

Hay nuevas descripciones emergentes que resaltan la sintaxis para mejorar la legibilidad del código. Nos gustaría dar las gracias a Saul por la implementación.

Las nuevas acciones contextuales para anotar permiten tipos de enlace. Gracias, de nuevo, a Matt.

Ahora, es posible configurar la gravedad de los analizadores proporcionados por el backend de ReSharper. Tenga en cuenta que FCS sigue produciendo la mayoría de los avisos o errores.

Nuevos analizadores y arreglos rápidos:

  • Analizador de lambdas que se puede simplificar o sustituir por un analizador de función incorporado.
  • Analizador Redundant applications, por ejemplo, para quitar llamadas Ignore redundantes si no hay nada que ignorar.
  • Analizador Redundant patterns para mejorar el estilo de código.
  • Un arreglo rápido para convertir un espacio de nombres en un módulo.

Asistente de escritura:

  • Mejora en el comportamiento de Enter en las invocaciones de métodos.
  • Compatibilidad con “Surround with Quotes”.

Ahora, hay una acción que renombra archivos para que coincida el nombre de un módulo/tipo.

Ahora, el depurador hace un mejor seguimiento de las variables locales en flujos de trabajo asíncronos.

Mejoras en la interfaz y la experiencia de usuario

Nueva pantalla de bienvenida

Hemos rediseñado la ventaba de bienvenida para hacerla más clara y moderna. Sigue teniendo la misma funcionalidad, pero está mejor organizada. Seguirá pudiendo gestionar sus proyectos, iniciar tutoriales para aprender algo nuevo sobre Rider, crear nuevas soluciones, abrir soluciones existentes u obtener una solución desde el VCS.

Buscar en Solution Explorer

¡La búsqueda “true” llega a la vista de Solution Explorer! Busca en todos los nodos del árbol de soluciones (ahora incluso en los nodos colapsados), entre los que se incluyen archivos, carpetas, proyectos, referencias, analizadores, importaciones y paquetes, para recuperar todas las ocurrencias de una consulta de búsqueda. Puede explorarlos de uno en uno con los accesos directos de teclado o los iconos de la barra de herramientas. Para abrir el campo de búsqueda, utilice el acceso directo Ctrl+F o el icono de la lupa en la barra de herramientas.

Arrastrar y soltar pestañas

Si quiere tener varias pestañas abiertas mientras trabaja en un proyecto, ahora puede arrastrar y soltar pestañas de archivo para dividir el editor horizontal o verticalmente.

Open in Right Split

Hemos añadido la acción Open in Right Split (View | Open in Right Split o Shift+Enter) para que el editor se divida de forma vertical al abrir el archivo. Invoque la acción desde la vista Explorer u otras ventanas emergentes de navegación cuando haya algún archivo seleccionado, como Recent Files, Search Everywhere y Navbar.

Pestañas ancladas

Hay un nuevo icono de anclaje para pestañas fijadas. Si hace clic en el archivo, se desancla. También puede anclar y desanclar sus pestañas arrastrándolas y soltándolas sobre otros archivos anclados o desanclados. Si suele abrir muchas pestañas, puede mantener todas sus pestañas ancladas en una fila. Para hacerlo, vaya a Preferences/Settings | Editor | General | Editor Tabs y marque la casilla Show pinned tabs in a separate row.

Resaltado de sintaxis en las descripciones emergentes

Hemos añadido el resaltado de sintaxis en las descripciones emergentes para que el contenido pueda leerse y entenderse con más facilidad.

Pestaña de vista previa

Ahora puede abrir un archivo en una pestaña de vista previa con un solo clic. Cuando abre un archivo en una pestaña de vista previa, su nombre se muestra en cursiva. Si empieza a editar este archivo, dejará de ser una vista previa y se convertirá en un archivo normal. Para habilitar esta funcionalidad, haga clic en el icono de la rueda dentada en la vista Project y seleccione Enable Preview Tab.

Acción Build en la Touch Bar

Hemos añadido la acción Build a la Touch Bar para los usuarios de macOS.

Control de versiones

Ahora puede probar los cambios directamente desde Rider. Haga clic en el icono + para añadir sus archivos al nuevo nodo Staged en la vista Commit. También puede probar los cambios directamente desde el medianil o en la vista Diff. Para activar esta funcionalidad, vaya a Preferences/Settings | Version Control | Git y marque la casilla de verificación Enable staging area. Para obtener más información, lea esta publicación del blog.

Hemos añadido una nueva pestaña Git en el cuadro de diálogo Search Everywhere. Ahora puede buscar hashes de confirmación y mensajes, etiquetas y ramas en el cuadro de diálogo Search Everywhere.

Hemos hecho algunas mejoras para trabajar con ramas. Rider ahora muestra todas las acciones disponibles para la rama seleccionada en ese momento. Se ha cambiado el nombre de las acciones Merge into Current y Rebase Current onto Selected por Pull into Current Using Merge y Pull into Current Using Rebase, respectivamente.

Otras actualizaciones del VCS:

  • Ahora, se cambia el nombre al menú del VCS en función del sistema de control de versiones que esté utilizando en ese momento.
  • Ahora, los parches se crean en formato Git.

Complementos

Dynamic Program Analysis (DPA)

Ahora, el complemento Dynamic Program Analysis también está disponible en macOS y Linux para aplicaciones .NET Core, no solamente en Windows. Está disponible para aplicaciones cuyo destino sea .NET Core 3.0 o posterior.

Ahora, el complemento DPA puede analizar memorias asignadas si se adjunta un depurador a un proceso de ejecución.

Azure DevOps

El complemento Azure DevOps puede crear una nueva área de trabajo en servidor o importar una existente.

dotCover

El complemento dotCover le permite realizar análisis de cobertura de aplicaciones cuyo destino sea .NET 5 en Windows, macOS y Linux.

La ventana Unit Tests Coverage le permite filtrar los resultados de cobertura según el marco de trabajo de destino.

El resaltado proporcionado por dotCover en el editor de código se puede modificar en la configuración del complemento o en la ventana emergente Configure highlighting level.

Ahora, puede definir qué proyectos deberían compilarse al lanzar una sesión de pruebas continua. Esto le permite acelerar las sesiones de pruebas continuas.

dotTrace

Ahora, el generador de perfiles de rendimiento le permite generar perfiles para aplicaciones .NET 5 en Windows, macOS y Linux.

Hemos añadido un gráfico de llamas al generador de perfiles de rendimiento, es decir, una vista previa del árbol de llamadas que le permite encontrar métodos lentos más rápidamente.

Ahora, el complemento dotTrace para Rider puede plegar el árbol de llamadas, algo que antes solo estaba disponible en la versión independiente de dotTrace. Con esto, se simplifica el análisis del árbol de llamadas, ya que se pliegan las cadenas de llamadas que no pertenecen a los módulos y las agrupaciones del usuario.

Azure Toolkit para Rider

Ahora, al utilizar el emulador de almacenamiento Azurite en Rider, puede explorar el almacenamiento de la cola. Entre otras cosas, puede añadir y consultar mensajes.

Ahora también es posible ejecutar la nueva versión alfa de Azurite 3.9 con un emulador de almacenamiento de tablas.

En los proyectos de Azure Functions, las configuraciones de ejecutar/depurar se muestran en el menú contextual del proyecto para hacerlas más accesibles. También hemos reorganizado los menú contextuales de la ventana de herramientas de Azure Explorer de modo que las acciones más habituales se puedan ejecutar más rápidamente.

AWS Toolkit para Rider

  • Compatibilidad básica con Amazon Elastic Container Registry.
  • Compatibilidad con la depuración local de las funciones lambda de .NET Core 3.1 (requiere la versión 1.4.0 o posterior de SAM CLI).
  • La lista de depósitos S3 se carga bastante más rápidamente que antes.
  • Ahora, Rider 2020.1 es la versión mínima requerida para utilizar el complemento; la compatibilidad con 2019.3 ha quedado obsoleta.
  • Más información en el Marketplace.

Markdown

Se ha mejorado la interfaz de usuario de vista previa y la experiencia de usuario de la herramienta Markdown. Puede personalizar el formato Markdown desde Preferences | Settings | Editor | Code Style | Markdown. El botón Auto-Scroll Preview en la esquina superior derecha del editor le permite sincronizar el desplazamiento del panel de vista previa y el editor. También hemos añadido la compatibilidad con Mermaid.js.

Editor de código

Consejos de inserción

Creemos en el poder de los consejos de inserción, pero también sabemos que el entorno tiene que estar lo más limpio y despejado posible. Hemos hallado un nuevo mecanismo de "Push-to-Hint" para los consejos de inserción que mantiene lo mejor de ambos mundos.

En el modo de visibilidad de Push-to-Hint, los consejos de inserción no se muestran de forma predeterminada. Se muestran si mantiene presionada la tecla Ctrl y desaparecen en cuanto la suelta.

Hay bastantes ajustes detallados: le puede decir a Rider qué consejos deberían estar siempre habilitados, cuáles deberían mostrarse como elementos emergentes y cuáles no le interesan. Utilice la opción Visibility para cada tipo de consejo.

También hemos estado trabajando con los consejos para las conversiones de tipo implícitas. Dichas conversiones pueden suponer una pérdida de datos o una degradación del rendimiento, y ahora Rider puede indicarle dónde está teniendo lugar una conversión implícita.

Encabezado del archivo

Ahora, se puede especificar una plantilla para un encabezado de archivo en Preferences/Settings | Editor | File Header Template. Puede usarla para añadir un aviso de copyright, información de la empresa, el nombre de usuario actual, etc.

Funcionalidades de estilo y formateo de código

Por fin se ha añadido una funcionalidad que detecta y configura ajustes de formateo desde el editor de código. Seleccione un trozo de código, pulse Alt+Enter y, después, seleccione Format Selection / Configure o Format Selection / Detect Formatting settings. Rider le mostrará una ventana con una lista con todos los ajustes que afectan a estas líneas en concreto. Se resaltan los valores que difieren de la configuración predeterminada y, con la opción "Only show changed values", también podrá ver aquellos que sean distintos específicamente.

Más información: Detección automática de reglas de formateo de código con Rider

Seguimos añadiendo ajustes concretos al motor de formateo. Estos son los que hemos añadido en esta versión:

  • Ajustes para ordenar patrones de propiedad que le permiten decirle a Rider que coloque un patrón simple en una única línea y cómo prefiere que se ajusten los patrones largos. También hay una opción que le permite ordenar los patrones de propiedad por columnas.
  • Ahora, es posible añadir líneas en blanco alrededor de métodos de acceso a propiedades o eventos.
  • Para Visual Basic .NET, existe la opción de añadir un espacio después del operador unario +/-.

Hemos añadido una opción para seleccionar el estilo de sintaxis preferido para los valores predeterminados en la pestaña Preferences/Settings | Editor | Code Style | C# | Syntax Style: default frente a default(T).

Se ha actualizado la compatibilidad de .editorconfig:

  • El nuevo parámetro “Spaces around ‘=’” al exportar a .editorconfig. Su valor se detecta de forma automática en los archivos existentes y se puede establecer de forma manual en los archivos nuevos. Está establecido en ‘true’ de forma predeterminada.
  • Compatible con la lectura de propiedades Roslyn: file_header_templates, dotnet_sort_system_directives_first y dotnet_separate_import_directive_groups.

Ahora, puede ajustar la indentación de la línea actual de código con la tecla Tab. Asigne la tecla Tab a la acción Emacs Tab para utilizar esta funcionalidad.

Compatibilidad con Avalonia

Análisis de código

Como ocurre con todos los marcos de trabajo del tipo WPF, el análisis del código proporciona muchas inspecciones de código con los correspondientes arreglos rápidos tanto para los archivos de código detrás del modelo C# como para .axaml, incluidos “Possible ‘System.NullReferenceException’” y “Class/Property {...} is obsolete: Use {...}”.

Además de las inspecciones WPF habituales, hay muchas inspecciones específicas de Avalonia, como “Path to resource is case-sensitive” o “ColumnDefinitions tag can be converted to attribute” con arreglos rápidos. Por último, hay una acción contextual en el atributo ColumnDefinitions="*,Auto,*" para convertirlo de nuevo en una etiqueta <Grid.ColumnDefinitions>.

Ahora, $self, $parent, ^ y la sintaxis # son totalmente compatibles en las vinculaciones de Avalonia, y los índices en el vector $parent[] están validados de forma correcta.

Ahora, CompiledBinding y la extensión x:CompileBindings son más compatibles. Rider sabe que DataType es necesario y le solicita que especifique las vinculaciones en su código.

El arreglo rápido “Create from usage” está disponible para todo tipo de propiedades de Avalonia.

La compatibilidad con Avalonia XAML incluye el reconocimiento del sistema de estilos del tipo CSS.

Los consejos de inserciones le ayudan a entender mejor el código que tiene delante.

Finalización de código

La finalización de código y la información de los parámetros están disponibles para todas las palabras clave XAML, todo tipo de extensiones de marcado, x:Name, propiedades Style y propiedades Source para StyleInclude, entre otras cosas.

Navegación

Puede navegar fácilmente hasta los tipos de datos para enlaces compilados, propiedades enlazadas, tipos de control de Avalonia y declaraciones x:Name. Rider también puede ir directamente del código XAML al código externo descompilado (incluidas las propiedades de establecimiento de estilo) y a espacios de nombres xmlns referenciados.

Find Usages

Con Find Usages, puede encontrar todos los usos de enlaces de métodos, atributos x:Name, clases Style y setters, así como todo tipo de propiedades.

Refactorización

Ahora, las refactorizaciones Rename y Safe Delete reconocen todos los usos en el código XAML de Avalonia y los actualizan según corresponda.

Jerarquía y estructura del código

Puede ver la jerarquía y la estructura del código XAML de Avalonia.

Desarrollo web

Compatibilidad con Blazor

Seguimos mejorando la compatibilidad con Blazor. Esta iteración destacan la compatibilidad con parámetros de tipo genéricos y sus inferencias de tipo a partir de los usos, así como a la eliminación de problemas de rendimiento al abrir soluciones. La lista completa de incidencias corregidas se puede consultar en nuestro sistema público de seguimiento de errores.

Compatibilidad con Tailwind CSS

Ahora, Rider puede ayudarle a trabajar con Tailwind CSS de un modo más productivo. Instale el complemento Tailwind CSS desde Preferences / Settings | Plugins y el IDE completará de forma automática sus clases Tailwind, le mostrará una vista previa del CSS resultante al pasar el ratón por encima y será compatible con las personalizaciones que efectúe utilizando los archivos tailwind.config.js.

Cree un componente React a partir de utilizaciones

¿Tiene un componente React sin resolver en su código? Coloque el signo de intercalación en este, pulse Alt+Enter y seleccione Create class / function component de la lista. Después, Rider creará la construcción de código adecuada.

Otras mejoras a destacar:

  • En archivos JavaScript y TypeScript, puede utilizar la barra de navegación para saltar a elementos de código específicos en el archivo actual (más información).
  • Mejor formato para literales de plantilla con CSS y HTML, una característica bastante específica, pero cuya incidencia relacionada tenía muchos votos. Más información.
  • Compatibilidad total con pnpm (información).

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.3.

Compatibilidad con bases de datos

SQL para MongoDB

¡Ahora puede usar SQL para consultar las bases de datos de MongoDB! Para ello, hemos creado nuestro propio traductor JS-SQL.

Solo funcionan las consultas SELECT, y las cláusulas funcionales son JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT y OFFSET. Puede consultar la publicación completa con los elementos compatibles aquí.

Compatibilidad con Couchbase

Siempre nos alegra dar la bienvenida a la familia a una nueva base de datos, ¡y Couchbase es la nueva incorporación! Es importante mencionar que Rider es compatible con el servicio Couchbase Query, aunque no con el servicio Couchbase Analytics.

Autenticación con Azure AD

Ahora puede utilizar Azure AD para conectarse a su base de datos.

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.3.

Otras actualizaciones

Pruebas de unidades

Con el menú Alt+Enter, las pruebas de unidad para un marco de trabajo de destino específico se pueden iniciar directamente desde el editor de código.

Ahora, se pueden exportar los resultados de las pruebas de unidad desde la pestaña Unit Test Session.

Xamarin

Si configura proyectos de iOS con archivos “information property list”, todas las plataformas disponen de un nuevo y completo editor para Info.plist en los proyectos Xamarin.iOS. Ya no tiene que abrir Xcode para editar estos archivos.

Miscelánea

  • Ahora, las configuraciones de ejecución guardadas como archivos se añaden a los elementos de la solución en la carpeta Run Configurations. Gracias a ello, Rider puede utilizar correctamente las configuraciones de ejecución almacenadas en las carpetas personalizadas.
  • Ahora, puede guardar plantillas de configuración de ejecución como archivos y compartirlos mediante el VCS.
  • Ahora también es posible evaluar expresiones matemáticas simples en el campo de búsqueda Search Everywhere.
  • El tema del IDE se puede sincronizar de forma automática con la configuración del sistema operativo, tanto en Windows como en macOS. Para ello, habilite la opción Sync with OS desde Settings | Appearance & Behavior | Appearance | Theme.
  • El rendimiento del análisis de errores de solución completa ha mejorado alrededor de un 25 % al desactivar el voraz cálculo de inspecciones.