I would like to view this page in
La versión 2022.2 incluye mejoras generales en el rendimiento, con la optimización del rendimiento de inicio y del motor de análisis de la solución completa. La compatibilidad con C# 11 se ha ampliado para que cubra los miembros obligatorios, los operadores ckecked definidos por el usuario, las cadenas sin procesar y los patrones de listas. En esta versión, puede aplicar la misma configuración de disposición de las ventanas a todas las soluciones en las que esté trabajando. Además, hemos introducido dos nuevas acciones, New Unreal Module y New Unreal Plugin, y la posibilidad de especificar servidores de símbolos para obtener símbolos de la biblioteca cuando se depura.
Hemos migrado el backend de Windows de Rider al entorno de ejecución .NET 6. Ahora utiliza el entorno de ejecución .NET 6 para ejecutar el servicio de backend en los sistemas operativos compatibles: Windows, macOS y Linux. Gracias a las optimizaciones en el propio entorno de ejecución .NET 6, el rendimiento general de Rider ha mejorado en comparación con el de la versión 2022.1.
En vista de este cambio, también hemos sustituido NGen por la utilidad CrossGen para crear imágenes nativas en Windows tras instalar Rider. Dado que CrossGen funciona con el entorno de ejecución .NET y es multiplataforma, Rider se inicia y abre las soluciones más rápidamente.
Tenga en cuenta que Rider no ejecuta CrossGen durante la instalación, sino solo cuando se inicia Rider por primera vez. Por consiguiente, el primer inicio puede tardar un poco más, pero todos los posteriores serán más rápidos.
Las soluciones se inician más rápidamente cuando se abren por primera vez («arranque en frío») y Rider no tiene información sobre ellas. En el arranque en frío, todos los proyectos se cargan dos veces: primero, el IDE carga los proyectos para obtener la información sobre cada uno de ellos; a continuación, ejecuta «NuGet restore»; y, después, cuando todo está listo, carga los proyectos una segunda vez.
Hemos optimizado la primera etapa de carga de proyectos para que Rider obtenga solo la información que necesita para restaurar los paquetes NuGet. Nuestras métricas internas muestran que la nueva implementación es aproximadamente un 40 % más rápida.
En esta versión, hemos optimizado en gran medida el uso de memoria de Rider con el modo Análisis de solución completa activado, tanto en términos de tráfico de memoria (número de asignaciones de memoria) como en términos de consumo de memoria.
El motor Análisis de la solución completa utiliza la memoria para almacenar la lista de problemas en la solución y para almacenar la información de uso de tipos/miembros para realizar informes de uso de toda la solución (inspecciones de código tales como «el miembro público nunca se utiliza»). Los datos de uso están «activos», lo que significa que deben actualizarse constantemente al editar el código y no pueden descargarse en el disco. Esto puede consumir una cantidad considerable de memoria si la solución contiene muchos tipos y miembros de tipo. Hemos revisado los datos almacenados en la memoria y hemos encontrado patrones que nos han permitido desduplicar/normalizar los datos. También hemos utilizado tipos de colección especializados para reducir aún más el espacio de trabajo. Estas optimizaciones han mejorado el consumo de memoria de 5 a 10 veces y han acelerado la carga del Análisis de la solución completa.
Esta versión es compatible con varias funcionalidades más de la versión preliminar de C# 11.
En C# 11, ahora los tipos class
, struct
y record
pueden declarar una lista de miembros requeridos. Esta es la lista de todas las propiedades y campos que se consideran necesarios y deben inicializarse a la vez que la instancia de un tipo. Los tipos heredan estas listas de sus tipos base de forma automática, por lo que el código duplicado y repetitivo se elimina sin problemas.
Además de conocer la palabra clave required
para los miembros dentro de un tipo class
, struct
o record
, Rider también es compatible con la palabra clave required
:
required
en la finalización de código. required
a Modifiers order en la página Preferences/Settings | Editor | Code Style | C# | Syntax Style
. Hemos añadido Add initializer for required members, una nueva solución rápida para los casos en los que se ha creado un objeto de tipo, pero no se han inicializado los miembros todavía. Esta genera de forma automática todos los miembros required
que faltan para el objeto; solo tiene que rellenar los valores de los miembros con los datos correspondientes.
Los operadores checked
definidos por el usuario ayudan a los desarrolladores a crear operadores definidos por el usuario que operan en tipos donde el desbordamiento aritmético es un concepto válido. Rider muestra todos los errores y advertencias del compilador. Para ser totalmente compatible con los operadores checked
definidos por el usuario, Rider tiene un par de inspecciones más y una acción contextual.
Hemos actualizado la inspección Unchecked/checked context is redundant para tener en cuenta los operadores checked
cuando se utilizan en este contexto.
Si tiene un conjunto de operadores definidos por el usuario y algunos de ellos ya tienen una versión checked, Rider le ayudará a propagar los operadores checked a todo el conjunto. Una nueva inspección llamada The operator does not have a matching checked operator while other operators do le informará de los operadores que no tienen todavía un operador checked
y le propondrá una solución rápida para generar las versiones checked
de forma automática.
Si todavía no ha utilizado operadores checked
en su código base, pero quiere empezar a utilizarlos, la nueva acción contextual Create matching checked operator le resultará muy útil. Está disponible en todos los operadores definidos por el usuario y genera una versión checked de un operador directamente desde el menú que se abre con Alt+Intro.
C# 11 mejora la capacidad de incrustar otros lenguajes o formatos de texto en el código C# gracias al concepto de cadenas «sin formato».
Rider es compatible a nivel básico con cadenas «sin formato», entre las que se incluyen errores de compilación, y análisis correcto y resaltado de colores para la sintaxis """
, pares de comillas dobles y marcadores de posición dentro de cadenas interpoladas (sintaxis {{...}}
).
C# 11 sigue ampliando los patrones de lista disponibles en el lenguaje. En esta ocasión, C# permite hacer coincidir estructuras tipo lista, como vectores, cadenas y colecciones tipo List<T>
.
Rider 2022.2 es totalmente compatible con los patrones de lista, con comprobación de errores, finalización de código y análisis del código. Todavía estamos trabajando para añadir inspecciones de código para sugerir el uso de los patrones de lista en el código existente y acciones adicionales de refactorización.
>>>
) e incluye compatibilidad con la sobrecarga del operador definido por el usuario >>>
. Span<char>
como reemplazo de las instancias de cadena, ya que en C# 11 es posible comparar directamente las constantes de cadena con los valores de tipo Span<char>
y ReadOnlySpan<char>
. .NET 6 ha introducido nuevas plantillas de proyecto con el uso de declaraciones de C# 9 de nivel superior. Las declaraciones de nivel superior simplifican la declaración de una clase Program
o del método public static void Main(string[] args)
, aunque a veces es necesario o preferible utilizar la declaración explícita class Program
. Rider 2022.2 incluye la nueva acción contextual To explicit 'Program' class para ejecutar una transformación al estilo antiguo.
Además, si ya tiene una clase de inicio Program
y desea migrar a declaraciones de nivel superior, podrá hacerlo con la nueva acción contextual Convert to top-level code.
INotifyPropertyChanged
En esta versión, hemos modificado la compatibilidad con INotifyPropertyChanged
. Ya no depende de anotaciones externas para detectar las API comunes INotifyPropertyChanged
, lo que nos ha permitido ser compatibles con más marcos MVVM y clases base INotifyPropertyChanged
de forma automática. Ahora utilizamos un método SetField
cuya sintaxis es más concisa para las notificaciones INotifyPropertyChanged
.
Ahora también puede añadir notificaciones property change para todas las propiedades del tipo o del archivo.
Para aumentar la visibilidad de las refactorizaciones, hemos revisado las refactorizaciones más utilizadas y hemos introducido acciones contextuales relacionadas en el menú que se abre con Alt+Intro que dependen del contexto actual.
Hemos añadido la acción contextual Extract method al acceder al menú que se abre con Alt+Intro en un trozo de código seleccionado.
Ahora, las refactorizaciones Change Signature, Transform Parameters, Convert to extension method y Convert Property To Method están disponibles como acciones contextuales para las firmas de los miembros.
nameof
Rider 2022.2 reconoce los registros de DependencyProperty
en los proyectos WPF y sugiere el uso de un operador nameof
para capturar el nombre de la propiedad CLR correspondiente. Las plantillas activas integradas también se han actualizado para emitir nameof
en lugar de literales de cadena.
Rider no suele reconocer en el código el significado especial de un literal de cadena concreto que se utiliza para especificar el nombre de alguna entidad de código, como un miembro o un nombre de tipo. Para estos casos, hemos introducido la nueva acción contextual Capture element name para los literales de cadena con identificadores que pueden hacer referencia a una entidad de código en el contexto que contiene el literal de cadena.
Las correcciones rápidas que provienen de los patrones Structural Search And Replace (SSR) pueden aplicarse en el ámbito de un archivo, una carpeta, un proyecto o una solución completa. Afecta a los patrones personalizados de los usuarios, a las inspecciones de código incorporadas por Rider y a las correspondientes correcciones basadas en las acciones SSR.
Ahora, Rider 2022.2 detecta algunos patrones de asignación en el código y le sugiere un código C# más idiomático con concordancia de patrones.
Rider 2022.2 puede reemplazar algunos patrones is
en las expresiones ?:
por la versión más concisa de as
en la expresión ??
, con lo que se elimina de forma efectiva una variable temporal.
Hemos implementado una forma de aplicar la misma configuración de disposición de las ventanas a todas las soluciones en las que trabaje. Si, por ejemplo, mueve una ventana de herramientas a la derecha, estará ahí en todas las soluciones.
Este comportamiento será el predeterminado si es nuevo en Rider. De lo contrario, puede habilitarlo en el menú principal seleccionando Windows | Layout Settings | Use the Same Layout for All Projects
.
En esta versión, hemos rediseñado la forma en que se muestran las configuraciones de las soluciones. Los proyectos como Unity, Unreal Engine o Xamarin suelen tener muchas configuraciones, objetivos y plataformas. Antes, las combinaciones de todas estas entidades producían muchos elementos en el menú Solution Configurations. A partir de la versión 2022.2, ya no es necesario buscar en una larga lista de elementos la combinación exacta de configuración, objetivo y plataforma. Basta con hacer clic en cada tipo de parámetro, uno por uno, hasta seleccionar la combinación deseada.
Para aligerar la barra de herramientas principal, hemos trasladado la lista de configuración de las soluciones al menú desplegable del icono de compilación (el martillo verde). Los comentarios y las estadísticas que hemos recogido indican que los usuarios no cambian las configuraciones de sus soluciones con la suficiente frecuencia como para que haya un widget independiente en la barra de herramientas. Sin embargo, si necesita las configuraciones, están disponibles en el triángulo desplegable junto al icono del martillo verde, donde encontrará la lista habitual.
Si desea volver a mover las configuraciones de la solución a la barra de herramientas, puede seleccionar Show Configuration on Toolbar en la lista.
La lista de configuraciones de soluciones sigue estando en la barra de herramientas cuando se trabaja en proyectos de Unity, Unreal Engine o Xamarin, ya que las configuraciones de soluciones se utilizan mucho en este tipo de proyectos.
En respuesta a los comentarios de la comunidad, ahora es posible cambiar el ancho del widget Run/Debug en la barra de herramientas principal. Si hay espacio disponible en la barra de herramientas para ampliar el widget Run/Debug, puede arrastrar la esquina izquierda del icono del widget y cambiar el tamaño. Esto significa que puede crear más espacio para el widget cuando quiera o lo necesite.
Para macOS, hemos introducido la posibilidad de organizar el espacio de trabajo fusionando todas las ventanas de proyecto abiertas en una sola, convirtiendo cada ventana en su propia pestaña. Para realizar esta acción vaya a Window | Merge All Project Windows.
Hemos actualizado la forma en que se muestra la barra de progreso Cloning repository en la pantalla de bienvenida de Rider. Ahora se muestra directamente en la lista Projects, lo que la hace más clara y fácil de usar.
Ahora puede acceder a Code Completion Settings y configurar sus preferencias directamente desde el icono de los tres puntos verticales en la ventana emergente de finalización de código.
Hemos incluido un acceso anticipado a la compatibilidad con .NET Multiplatform App UI (.NET MAUI). Esta versión es compatible con proyectos dirigidos a las plataformas Android e iOS. Puede utilizar las configuraciones de ejecución para ejecutar y depurar el proyecto, e implementar la aplicación en un dispositivo de destino. Tenga en cuenta que macOS, Mac Catalyst, Blazor Hybrid y WinUI aún no son totalmente compatibles.
Learn more: macOS Environment Setup for MAUI Development
Hemos implementado la refactorización Safe Delete para los proyectos. Se puede invocar con la tecla Suprimir o con la acción Refactor This en un proyecto en Solution Explorer. Rider buscará los usos del proyecto seleccionado. Si hay algún uso, se mostrarán los conflictos y, si no, el proyecto se eliminará y Rider eliminará cualquier referencia o importación que sobre. También hay una opción para eliminar un proyecto sin estas comprobaciones: desmarque la opción Search for usages cuando se muestre el cuadro de diálogo Safe Delete y Rider no ejecutará esta búsqueda.
Rider 2022.2 le facilita el trabajo con soluciones filtradas. Ahora puede filtrar un proyecto, un conjunto de proyectos, una carpeta de soluciones o incluso todos los proyectos de la solución resultante. Para ello, utilice la acción Solution Filter | Remove project del menú contextual de un proyecto, una carpeta de soluciones o el nodo raíz de la solución en la vista Solution Explorer. Para ver qué proyectos se han filtrado, active el modo Show All Files en la vista Solution Explorer y utilice la acción Solution Filter | Add Project del menú contextual.
Además de estas operaciones básicas, Rider cuenta con dos acciones más avanzadas: Load Direct Project Dependencies y Load Entire Project Dependency Tree. Al utilizarlas, Rider comprobará todas las dependencias del proyecto de destino y cargará los proyectos necesarios para que pueda empezar a trabajar rápidamente en la solución filtrada.
Assembly Explorer permite presentar mejor las agrupaciones ReadyToRun (R2R) y NGen:
ngen
o R2R
junto al nombre de cada agrupación. La creación de un nuevo módulo con lógica de juego implica una larga lista de tareas: añadir una carpeta, añadir un archivo Build.cs
a la carpeta, crear una clase que inicialice el módulo, actualizar los archivos .uproject
y Target.cs
, etc. Ahora Rider tiene una acción que automatiza estas tareas: Add | New Unreal Module.
Si alguna vez ha intentado crear nuevos complementos en Unreal Editor, esta nueva acción le resultará familiar. Ahora puede crear diferentes tipos de complementos directamente desde Rider: con la acción Add | New Unreal Plugin se generarán todos los archivos necesarios para el nuevo complemento.
Al depurar, es posible que los símbolos de la biblioteca no estén disponibles en su máquina local, en cuyo caso puede utilizar servidores de símbolos. En la versión de Rider para Windows puede configurar el depurador para que utilice el servidor de símbolos que elija.
Ahora Rider es compatible con las pruebas Spec del marco de trabajo de automatización de pruebas de Unreal Engine. Si tiene un conjunto de pruebas definidas en el método Define
después de la macro DEFINE_SPEC
o de las macros BEGIN_DEFINE_SPEC
y END_DEFINE_SPEC
, Rider las localizará correctamente para que pueda ejecutarlas y observarlas en la vista Unit Tests.
Ahora Rider entiende que las llamadas a funciones de tipo Emplace
(como TArray<..>::Emplace
) implican la construcción de objetos, por lo que le advertirá sobre los argumentos no válidos pasados al constructor. Puede ver los consejos sobre la nomenclatura de parámetros y la información de los parámetros mientras escribe los argumentos. También puede ir a la definición de un constructor directamente desde una llamada Emplace
, y viceversa.
Mathf
. Hemos añadido un indicador de resumen de cobertura al editor. Puede ser útil si considera que el resaltado rojo y verde producido por el complemento dotCover es abrumador, ya que la nueva herramienta es mucho más discreta. Busque el icono en forma de escudo en el widget Inspections. El color y el relleno reflejan la cobertura del código del documento actual y, al hacer clic en él, se desplazará por las declaraciones que no están cubiertas.
Rider ahora incorpora dotMemory, nuestra herramienta de generación de perfiles de memoria. Estas son sus principales funcionalidades:
Tenga en cuenta que el complemento de dotMemory no permite tomar instantáneas y solo funciona en Windows en la versión 2022.2.
Ahora es posible generar fácilmente tablas de contenido en archivos Markdown basadas en los encabezados del documento. Esta nueva acción está disponible en los menús emergentes Insert y Generate, que puede invocar mediante el atajo de teclado Alt+Insertar o con un clic derecho. Rider insertará una tabla de contenidos en la posición actual del signo de intercalación y la encerrará con etiquetas <!-- TOC -->
, para que pueda actualizarla más tarde llamando al mismo menú.
Ya no es necesario reiniciar el editor de Unity para iniciar la generación de perfiles. Ahora, el perfilador puede adjuntarse y separarse de los procesos de Unity en ejecución.
Hemos estado trabajando en la compatibilidad con Angular 14 en Rider. La incorporación más importante en esta versión es la compatibilidad con los componentes independientes de Angular. Rider 2022.2 reconoce correctamente los componentes, las directivas y procesos marcados como standalone: true
.
Rider 2022.2 incorpora mejor compatibilidad con Vue 3. Por ejemplo, ahora entiende el estrechamiento del tipo en las directivas v-if/else
. También se ha mejorado la compatibilidad con Pinia, la solución de gestión de estados recomendada por los equipos de Vue que funciona como almacén global. Tanto la finalización como la resolución ahora funcionan en Vue con la biblioteca Pinia, y puede navegar a las propiedades de estado y acciones definidas en el almacén.
Rider 2022.2 incluye TypeScript 4.7, que admite nuevas características del lenguaje como moduleSuffixes
y ESM en Node.js. Insertará automáticamente la extensión .js
en la declaración de importación si module
está configurado como node16
o nodenext
en su archivo tsconfig.json
. Además, Rider admite el campo typesVersions
en los archivos package.json
.
Más información: Novedades en WebStorm 2022.2
Hemos rediseñado la ventana emergente Parameter Info para F#.
Parameter Info contiene detalles sobre los argumentos esperados de una función. La ventana emergente aparece mientras escribe una aplicación de función o una llamada a un método, o puede pulsar Ctrl+P para verla mientras lee el código.
A partir de la versión 2022.2, la ventana emergente Parameter Info es compatible con las aplicaciones currificadas y resalta correctamente las sobrecargas de los métodos. También muestra las descripciones de métodos, funciones y parámetros, los valores predeterminados de los parámetros, la información de los métodos de extensión y las anotaciones CanBeNull/NotNull
de JetBrains. Además, puede ver la Parameter Info en los atributos.
Ahora puede utilizar tanto la versión global como la local de la herramienta dotnet
de Fantomas. Rider utilizará la herramienta apropiada de forma automática para que pueda sincronizar la versión de Fantomas dentro de su equipo.
Hay una nueva corrección rápida, Change type of binding, que le será útil cuando un tipo de retorno definido difiera del tipo real de una expresión. Special thanks goes to Florian Verdonck for implementing this quick-fix.
You can take a look at the full release notes for more information about F# support in Rider 2022.2.
Más información: Novedades en DataGrip 2022.2