Nouveautés de Rider

Rider 2023.1 apporte une meilleure prise en charge de C#, avec notamment des inspections pour optimiser et accélérer votre travail avec différents types de collections et des solutions plus flexibles pour l'introduction de vérifications de valeur null dans le code. Les capacites de développement de jeux de Rider sont renforcées par l'introduction de la prise en charge de la pile technologique multithread hautes performances orientée vers les données (Data Oriented Tech Stack, DOTS) de Unity et d'Unreal Engine 5.2, ce qui inclut les récentes mises à jour du format de fichiers Blueprints, la prise en charge de Godot 4, ainsi que tout un ensemble d'autres améliorations du workflow de développement de jeux. La dernière version de l'IDE apporte également plusieurs ajustements pratiques à l'éditeur, des améliorations pour les outils de contrôle de version et le travail avec Docker, ainsi que des mises à jour de la nouvelle interface utilisateur et de l'expérience utilisateur globale.

Principales mises à jour

Prise en charge de Unity DOTS Développement de jeux

En écho au passage de la conception orientée objet à la conception orientée données de Unity, Rider 2023.1 a introduit la prise en charge de la pile technologique multithread hautes performances orientée vers les données (Data Oriented Tech Stack, DOTS), une approche qui change le paradigme de la création de jeux et réduit la charge des processeurs.

En savoir plus

Réduction du nombre de recherches dans les collections

Réduction du nombre de recherches dans les collections Prise en charge de C#

Nous avons ajouté de nouvelles inspections et les correctifs rapides correspondants pour optimiser le travail avec les collections en réduisant le nombre de recherches. Par exemple, Rider suggère désormais de supprimer les vérifications Contains et ContainsKey redondantes ou d'utiliser les méthodes TryAdd et TryGetValue à la place.

Widget VCS pour Perforce Contrôle de version

L'intégration de Rider avec Perforce a beaucoup évolué avec l'ajout de Perforce au widget Version Control Systems (VCS). Le widget VCS pour Perforce fournit un accès rapide à des actions essentielles telles que Commit, Revert et Update Project. Il indique également l'espace de travail actif et affiche le statut de votre connexion.

Visualisation des variables de chaîne Débogueur

Pendant une session de débogage, vous pouvez désormais voir les valeurs visualisées pour les variables de chaîne encodées HTML, XML, JSON, JWT ou URL. Cliquez simplement sur le lien View à côté d'une chaîne dans l'onglet Threads & Variables de la fenêtre d'outil Debug. Une autre solution consiste à cliquer sur le lien View qui s'affiche lorsque vous survolez une variable dans l'éditeur.

Prise en charge de C#

Réduction du nombre de recherches dans les collections

Nous avons introduit un ensemble d'inspections accompagnées de correctifs rapides afin d'optimiser et d'accélérer le travail avec différents types de collections, en réduisant le nombre de recherches dans les collections :

  • Pour supprimer une vérification Contains(item) avant d'ajouter l'élément dans HashSet ou toute autre collection implémentant les interfaces ISet.
  • Pour supprimer une vérification ContainsKey(key) avant d'ajouter l'élément dans Dictionary ou toute autre collection implémentant l'interface IDictionary.
  • Pour utiliser TryAdd(key, value) pour les collections Dictionary ou les collections héritées de Dictionary lorsque c'est possible.
  • Pour utiliser TryGetValue(key, out value) pour les collections IDictionary lorsque c'est possible.

Option Syntax Style pour le modèle de vérification de null

Nous avons fourni le nouveau paramètre Syntax style pour vous aider à appliquer un style cohérent aux vérifications de not null dans les modèles. Il consiste en deux options : syntaxe de modèle récursif vide { } et modèle de négation not null, ce dernier style étant utilisé par défaut. Vous pouvez modifier le comportement à tout moment dans l'onglet Settings/Preferences | Editor | Code Style | C# | Syntax Style.

L'utilisation du modèle « not null » a pour inconvénient qu'il ne permet pas d'introduire les noms de variable pour la valeur vérifiée, comme cela est le cas avec le modèle récursif { LastName: { } lastName }. Nous avons ajouté l'action contextuelle Add pattern variable au modèle not null pour rechercher les expressions accédant à la même valeur (dans la mesure où nous introduisons un nom de variable) et les remplacer toutes par le nouveau nom, afin de consolider tous les accès à la même valeur.

Style ArgumentNullException.ThrowIfNull de vérification de null

Style ArgumentNullException.ThrowIfNull de vérification de null

Le SDK .NET 6.0 a introduit une nouvelle API pour la vérification de null : ArgumentNullException.ThrowIfNull. Notre moteur d'analyse de code reconnaît cette approche de vérification depuis son introduction, mais il n'était pas possible d'utiliser cette API comme style par défaut pour les vérifications de null produites par Rider.

Dans la version 2023.1, nous avons ajouté le modèle ArgumentNullException.ThrowIfNull à Settings/Preferences | Editor | Code Style | C# | Null checking pour Rider.

Extraction du modèle de propriété commun

Extraction du modèle de propriété commun

Si vous recourez souvent au filtrage par motif de propriété, essayez notre nouvelle inspection avec correctif rapide pour extraire les éléments communs de plusieurs schémas de propriétés lorsqu'ils sont dans le même flux de code. Le code généré par le correctif rapide Extract common property pattern permet de réduire la répétition du code en déplaçant les modèles de propriétés communs vers un modèle de niveau supplémentaire.

Suppression des régions vides

Suppression des régions vides

Les développeurs C# s'appuient souvent sur la directive #region et le pliage de code dans l'IDE pour structurer leur code. La refactorisation peut laisser certaines entrées #region vides, ce qui risque de prêter à confusion lorsque le code est réduit. Cette nouvelle inspection de code permet d'identifier les entrées #region vides à l'état réduit et de nettoyer le code avec le correctif rapide correspondant.

Remplacement de span.SequenceEqual("str")

Remplacement de span.SequenceEqual("str")

L'analyse de code inclut une inspection qui propose le remplacement de span.SequenceEqual("stringLiteral") par span is "stringLiteral" – une solution plus pratique que l'appel d'une fonction pour la syntaxe C#.

Insertion d'une spécification de type de retour pour les lambdas

Insertion d'une spécification de type de retour pour les lambdas

Les expressions lambda du code C# peuvent avoir des paramètres à typage implicite et des types de retour déduits. Toutefois, des types explicites peuvent être ajoutés pour clarifier le code dans les cas de résolution de surcharge complexes. À partir de C# 11, il est également possible d'ajouter une spécification de type de retour pour les expressions lambda.

Nous avons introduit une nouvelle action contextuelle Insert return type specification dans la version 2023.1 à cette fin. Cette action peut s'appliquer à toutes les portées, ce qui inclut les méthodes, classes, fichiers, projets ou l'intégralité de la solution.

Inspection Pattern is redundant

Inspection Pattern is redundant

Les modèles C# or/and/not sont utiles pour les vérifications de valeurs compactes, mais peuvent être moins facilement identifiables que les expressions traditionnelles, telles que ||/&&/!. Ils peuvent également être à l'origine de bugs difficile à trouver si des parenthèses manquent. Pour faciliter cela, nous avons introduit une nouvelle analyse de code qui vous signale les vérifications « caduques » dans les modèles complexes.

Action contextuelle Convert to list pattern

Action contextuelle Convert to list pattern

Nous poursuivons l'amélioration de la prise en charge des modèles de liste de C# 11. La nouvelle action contextuelle Convert to list pattern permet de transformer les vérifications de longueur de collection en syntaxe de modèle de liste. Cela fonctionne à condition que la vérification de longueur de la collection puisse être réalisée.

Développement de jeux

Unity

Prise en charge de DOTS

La pile technologique multithread hautes performances orientée vers les données (Data Oriented Tech Stack, DOTS) représente un changement majeur de l'architecture de Unity. Elle stocke les données de composants dans des vecteurs continus, accessibles par les systèmes et modifiables de façon plus efficace du point de vue du processeur. Cela permet d'améliorer les performances, notamment pour les projets plus grands et ambitieux.

Avec cette version, nous introduisons la prise en charge de Unity DOTS, renforçant encore davantage la réputation de Rider en tant qu'IDE le plus innovant pour le développement de jeux.

Avec Rider 2023.1, vous pouvez profiter des nouvelles fonctionnalités suivantes :

  • Nouveaux modèles de fichier.
  • Code Vision pour les types DOTS.
  • Génération automatique du code de mappage « baker » pour les composants de création.
  • Inspections et correctifs rapides pour vous aider à écrire et mettre à jour des bases de code pour qu'elles soient compatibles avec le nouveau style DOTS.

Découvrez tout ce que vous devez savoir sur DOTS dans Rider dans cet article de blog et cette démonstration.

Débogage sur les appareils Android via USB

S'il est techniquement possible de déboguer les jeux Android sur une connexion WiFi, il est parfois préférable d'utiliser simplement un câble. Rider 2023.1 prend maintenant en charge le débogage des jeux Android via USB.

Utilisez la boîte de dialogue Attach to Unity Process pour voir quels projets s'exécutent sur les périphériques connectés et procéder au débogage.

Configurations d'exécution temporaires pour les lecteurs attachés

Configurations d'exécution temporaires pour les lecteurs attachés

Rider 2023.1 crée automatiquement une configuration d'exécution temporaire lors du débogage d'un lecteur au moyen de la boîte de dialogue Attach to Unity Process, ce qui facilite le lancement d'une autre session de débogage. Vous pouvez enregistrer la configuration d'exécution pour la rendre permanente et la partager avec votre équipe. Cela fonctionne avec tous les lecteurs pris en charge, que ce soit de bureau, des appareils mobiles, des consoles ou des périphériques USB (iOS ou Android).

Documentation

Documentation

Rider s'accompagne déjà d'une documentation en ligne pour les bibliothèques de classe de base .NET et les API essentielles de Unity. Cependant, avec cette version, il vous donne également un accès rapide à la documentation en ligne pour les packages de registre Unity, dont DOTS. Vous pouvez afficher les liens de la documentation en appuyant sur F1 ou en consultant la fenêtre contextuelle de documentation rapide qui s'affiche lorsque vous survolez un symbole.

Comme pour le reste du produit, le texte affiché dans le cadre de la prise en charge de Unity par Rider est aussi disponible en chinois, japonais et coréen. Rider utilisera également la documentation localisée de l'API et les résumés d'infobulles de Unity lorsque disponibles.

Modèles de fichier compatibles avec UI Toolkit

Depuis Unity 2022.2, UI Toolkit est la solution recommandée pour écrire des extensions d'interface utilisateur pour Unity Editor. Pour commencer, nous avons ajouté 3 nouveaux modèles de fichier personnalisables basés sur UI Toolkit : création de fenêtres d'éditeur, tiroirs de propriétés ou éditeurs d'inspecteurs personnalisés. Ils sont uniquement disponibles à partir de Unity 2022.2 et les versions IMGUI restent accessibles.

Ce n'est pas tout !

Cette nouvelle version comprend de nombreuses autres modifications et mises à jour, comme l'amélioration de la précision pour la détection champs sérialisés dans votre code, ce qui inclut les scénarios complexes utilisant des types dérivés et l'attribut [SerializeReference]. Nous avons également amélioré la prise en charge de la recherche des utilisations de code C# dans les animations Unity et la mise en évidence de vos méthodes en tant que gestionnaires d'événements. En réponse à une demande très fréquente, nous avons mis à jour le moteur de formatage pour placer les attributs [Header] sur une ligne distincte.

Unreal Engine

Prise en charge d'Unreal Engine 5.2

Epic Games a fusionné UnrealHeaderTool (UHT) avec UnrealBuildTool (UBT) dans Unreal Engine 5.1 et 5.2. Rider 2023.1 est prêt pour ces modifications, et l'intégration UHT dans Rider fonctionnera pour les nouvelles versions Unreal Engine. De plus, Rider prend désormais en charge les mises à jour récentes du format de fichier Blueprints, ce qui sera inclus dans Unreal Engine 5.2.

Action contextuelle New UE class

Nous avons remanié l'action contextuelle Unreal Class… qui permet maintenant de choisir parmi un large éventail de classes parent, ainsi que de spécifier si la classe est publique ou privée. De manière générale, l'aspect et les fonctions de la nouvelle boîte de dialogue sont plus proches de son équivalent dans Unreal Engine.

Analyse des erreurs pour les Blueprints

Si un fichier Blueprint ne peut pas être analysé par Rider, l'IDE ffiche désormais les erreurs d'analyse dans un onglet Blueprints separé, dans la fenêtre Problems View. Cela vous permet de rechercher le fichier problématique dans l'explorateur de système de fichiers natif. et obtenir une description du type d'erreur qui a été détecté.

Analyse des messages de compilation Clang

Analyse des messages de compilation Clang

Rider 2023.1 peut maintenant analyser les messages générés par le compilateur Clang lors de la création de jeux Unreal Engine sous macOS et Linux. L'ensemble des avertissements et des erreurs de Clang de la fenêtre d'outils Build Output est analysé correctement, ce qui inclut les liens des fichiers. Vous pouvez accéder à l'endroit exact du code à l'origine de l'avertissement ou de l'erreur en double-cliquant sur le lien.

Aperçu de substitution de macro

Aperçu de substitution de macro

Lors du survol d'une macro, vous voyez désormais un aperçu de sa version étendue dans l'infobulle, avec la mise en évidence complète des éléments de syntaxe et le bon formatage de code. Vous pouvez toujours utiliser l'action contextuelle Substitute macro call pour l'étendre directement dans l'éditeur, mais l'aperçu instantané simplifie la manipulation des macros.

Modèle dynamique UInterface

Modèle dynamique UInterface

Rider fournit désormais un modèle dynamique UInterfaceintégré pour les solutions Unreal Engine. Comme pour les modèles dynamiques UCLASS, USTRUCT et UENUM existants, UInterface pemet d'ajouter rapidement une nouvelle classe d'interface qui applique les conventions d'Unreal Engine, ce qui vous fait gagner du temps et vous évite d'avoir à les créer manuellement.

Mappage des shaders

Il est désormais possible de spécifier des mappages pour les répertoires de shaders physiques et virtuels. Si RiderLink est installé dans le projet de jeu ou de moteur, vous pouvez également charger les informations de mappages des shaders depuis Unreal Engine.

Godot

Godot Plugin

La dernière version du plugin Godot pour Rider inclut les mises à jour et correctifs suivants :

  • La saisie semi-automatique pour res:// a été améliorée afin de la rendre plus visible et simple à utiliser. Pour certains appels d'API connus, comme par exemple GD.LoadPackedScene, la saisie semi-automatique des littéraux de chaîne est immédiatement disponible, y compris avant le typage du préfixe res://.
  • Godot 4 repose sur l'exécution de .NET6 et non plus de Mono. Plusieurs correctifs ont été requis pour compenser cette modification. Lorsque vous déboguez une application Godot et atteignez un point d'arrêt, une Current Scene est automatiquement créée dans la fenêtre Immediate. De plus, tout nœud Godot.Node dans la fenêtre Immediate comporte désormais un groupe Children supplémentaire, qui permet de voir ses enfants et les enfants de ses enfants, de façon récursive.

Éditeur de code

Possibilité d'afficher les espaces uniquement dans le code sélectionné

Possibilité d'afficher les espaces uniquement dans le code sélectionné

La nouvelle case à cocher Selection dans Settings/Preferences | Editor | General | Appearance | Show Whitespaces permet de configurer ce paramètre afin que Rider affiche les espaces sous forme de petits points uniquement lorsque vous sélectionnez du code.

Aperçu de la couleur et de la classe brush

Aperçu des couleurs et des pinceaux

L'éditeur de code de Rider affiche désormais des aperçus des couleurs et des pinceaux pour les valeurs et les références dans les fichiers Avalonia XAML (.axaml) et C#, tout comme pour les applications WPF.

Option de masquage des conseils de conversion du type

Option de masquage des conseils de conversion du type

Rider peut dorénavant masquer les conseils de conversion de type pour les opérateurs sélectionnés. Pour ce faire, placez le caret près d'un opérateur et utilisez le raccourci Alt+Entrée pour afficher un menu contextuel, puis allez dans Configure Inlay Hints | Type Conversion Hints et sélectionnez l'action Hide for….

Vous pouvez également aller dans Settings/Preferences | Editor | Inlay Hints | C# | Type Conversion Hints pour configurer la liste d'opérateurs pour lesquels vous souhaitez masquer les conseils de conversion du type.

Supression des vérifications orthographique pour les hashes et les valeurs spéciales

Supression des vérifications orthographique pour les hashes et les valeurs spéciales

Nous avons modifié l'inspection Typo afin qu'elle ne contrôle plus l'orthographe des hashes et des valeurs spéciales et ne les signale plus comme mal orthographiés. Cette mise à jour concerne les valeurs suivantes :

  • les valeurs hexadécimales Md5, Sha1 et Sha256.
  • les valeurs d'intégrité codées en base 64 Sha384 et Sha512 avec le préfixe shaNNN-.
  • les jetons JWT.
Conseils de nom de paramètre pour les attributs xUnit

Conseils de nom de paramètre pour les attributs xUnit

Comme c'est déjà le cas avec NUnit, Rider peut désormais afficher des suggestions de nom de paramètre pour les attributs InlineData et InlineAutoData dans les tests xUnit.

Développement Web

Importations lors de la saisie semi-automatique du code pour Angular

Dans Rider 2023.1, lorsque vous travaillez avec des symboles globaux et exportés dans le modèle Angular, l'IDE y ajoute automatiquement une importation dans votre composant lors de la saisie semi-automatique du code ou de l'utilisation d'un correctif rapide.

Prise en charge de TypeScript dans les expressions de modèles Vue

Rider 2023.1 inclut la prise en charge de TypeScript dans les expressions de modèles de Vue. Les expressions de modèle Vue sont désormais synchronisées avec lang=”ts” lors de l'ajout des balises de script. Rider peut ainsi fournir une meilleure évaluation de TypeScript et suggérer des préférences personnalisées et des refactorisations pertinentes correspondant au contenu de la balise de script. Vous avez peut-être déjà constaté qu'il y avait des différences entre les paramètres et les refactorisations pour les fichiers .js et .ts purs. Dorénavant, les attributs lang concorderont.

Conversion automatique des chaînes en littéraux de modèle

Conversion automatique des chaînes en littéraux de modèle

Rider transforme désormais automatiquement vos chaînes entre guillemets simples ou doubles en littéraux de modèle dès que vous saisissez ${. Cela concerne les chaînes brutes et les propriétés JSX.

Pour en savoir plus : Nouveautés de WebStorm 2023.1

Améliorations de l'expérience/interface utilisateur

Zoom complet dans l'IDE

Zoom complet dans l'IDE

Il est maintenant possible de faire un zoom avant et arrière qui augmente ou réduit la taille de tous les éléments de l'interface utilisateur de Rider en même temps. Dans le menu principal, sélectionnez View | Appearance et ajustez la mise à l'échelle de l'IDE.

Nouveau paramètre <i>Remember size for each tool window</i>

Nouveau paramètre Remember size for each tool window

Dans Rider 2023.1, nous inaugurons une nouvelle option de mise en page qui vous permet d'unifier la largeur des fenêtres d'outils latérales ou de conserver la possibilité d'ajuster librement leur taille lorsque vous personnalisez votre mise en page. La nouvelle case à cocher Remember size for each tool window est disponible dans Settings/Preferences | Appearance & Behavior | Tool Windows.

Recherche basée sur le Machine Learning pour les classes dans <i>Search Everywhere</i> activée par défaut

Recherche basée sur le Machine Learning pour les classes dans Search Everywhere activée par défaut

Pour vous fournir des résultats de recherche plus pertinents et plus précis, nous poursuivons nos efforts afin d’intégrer le classement par machine learning dans la fonctionnalité Search Everywhere (Double Maj). L'algorithme de tri de l'onglet Classes a désormais recours par défaut au machine learning, tout comme les résultats des onglets Actions et Files.

Modifications de la nouvelle interface utilisateur Bêta

Fractionnement vertical pour les fenêtres d'outils

Fractionnement vertical pour les fenêtres d'outils

Concernant la nouvelle interface utilisateur, nous avons introduit une option permettant de fractionner la fenêtre d'outils, afin de vous aider à organiser ces fenêtres en fonction de vos besoins.

Pour ajouter une fenêtre d'outils dans cette zone et la placer dans la partie inférieure, faites glisser son icône le long de la barre latérale et déposez-la sous le séparateur. Une autre possibilité consiste à faire un clic droit sur une icône pour appeler le menu contextuel et choisir la nouvelle position de la fenêtre d'outils en utilisant l'action Move to.

Mode Compact

Mode Compact

Afin d'améliorer l'expérience utilisateur de la nouvelle interface utilisateur de Rider sur des écrans plus petits, nous avons introduit le mode Compact Mode qui offre une expérience homogène en réduisant la hauteur des barres d'outils et des en-têtes de fenêtres d'outils, mis à l'échelle les espaces et le remplissage, et enfin utilisé des icônes et des boutons plus petits.

Pour activer le Compact Mode, allez dans le menu View et sélectionnez Appearance | Compact Mode.

Onglets de projet sous macOS

Onglets de projet sous macOS

Nous avons implémenté l'une des demandes de fonctionnalités les plus populaires pour la nouvelle interface utilisateur de l'IDE, à savoir les onglets de projet pour les utilisateurs de macOS. Ainsi, lorsque plusieurs projets sont ouverts, vous pouvez facilement les parcourir en utilisant les onglets de projet présents sous la barre d'outils principale.

Affichage des onglets masqués

Affichage des onglets masqués

Nous avons ajouté la fonctionnalité Show Hidden Tabs à la nouvelle interface utilisateur. Vous trouverez près des onglets une liste déroulante affichant l'intégralité des onglets ouverts. En effet, certains ont pu être masqués.

Nouveau design du widget Run

Nous avons revu le design du widget Run dans l'en-tête de la fenêtre principale et utilisé des couleurs plus calmes, afin d'obtenir un ton plus doux et moins fatigant pour les yeux.

Outils de contrôle de version

Amélioration du workflow de révision du code pour GitHub

Pour Rider 2023.1, nous avons optimisé le processus de révision du code dans l'IDE. Nos recherches relèvent que les utilisateurs tendent à basculer entre GitHub et leur IDE lorsqu'ils doivent parcourir le code. Nous avons amélioré ce workflow en remaniant la fenêtre d'outils Pull Requests.

Cette fenêtre dispose déjà d'un onglet dédié pour chaque requête pull, en affichant uniquement les informations essentielles pour aider les utilisateurs à se concentrer sur la tâche à réaliser. Nous avons également ajouté un bouton pour simplifier l'exécution de l'action la plus importante en fonction de l'état actuel de la requête pull.

Saisie semi-automatique dans la fenêtre contextuelle Create New Branch

Saisie semi-automatique dans la fenêtre contextuelle Create New Branch

Rider 2023.1 fournit la saisie semi-automatique dans la fenêtre contextuelle Create New Branch. Une fois que vous avez commencé à taper le nom de votre nouvelle branche, l’IDE vous proposera des préfixes pertinents basés sur les noms des branches locales existantes.

Amélioration de la fenêtre contextuelle Branches

Fenêtre Branches améliorée

Nous avons amélioré l’ergonomie de la fenêtre contextuelle Branches. Par exemple, la navigation entre les branches est maintenant facilitée, car elles sont regroupées et stockées dans des listes que vous pouvez développer.

Outils de bases de données

Comparaison des schémas de bases de données

Schema Compare est un outil essentiel de développement et de maintenance des bases de données. Il permet de comparer deux bases de données pour identifier rapidement les différences entre elles, s'assurer qu'il n'y a pas d'incohérences et que les données sont à jour.

Rider 2023.1 a introduit Schema Compare pour les bases de données connectées, les projets de base de données SQL Server et les fichiers .dacpac. Pour faire une comparaison, faites un clic droit sur le fichier de projet de base de données dans Solution Explorer et choisissez Schema Compare….

Nous avons créé une fenêtre d'éditeur dédiée permettant d'afficher et de modifier les fichiers Schema Compare (.scmp). De plus, la fenêtre Problems View inclut désormais les problèmes identifiés suite à une comparaison de bases de données, ainsi que ceux qui ont été identifiés par la validation du modèle de base de données.

Important : l'implémentation de Schema Compare par Rider est basée sur SQL Server Data Tools et, par conséquent, implique d'avoir Microsoft Visual Studio (version 2017 ou plus récente) installé sur votre ordinateur.

Docker

Exécution avec Fast Mode

Fast Mode permet désormais d'exécuter des projets Docker dans Rider. Auparavant, vous ne pouviez l'utiliser que pour le débogage. Nous avons également rendu possible l'utilisation de Fast Mode avec un plus large choix de Dockerfiles. Et pour finir, mais tout aussi important, nous sommes parvenus à accélérer encore plus le mode Rapide en extrayant les images Docker et en les inspectant pendant le démarrage de la solution.

Configurations d'exécutions auto-générées

Rider 2023.1 est désormais capable de générer automatiquement des configurations d'exécution Docker Compose à partir de fichiers de projet .dcproj à l'ouverture d'une solution. Cette version de l'IDE permet également de générer des configurations d'exécution DockerFile dès qu'une propriété de projet DockerfileFile est spécifiée ou un profil Docker inclus dans le fichier launchSettings.json.

Vous pouvez aller plus loin dans la personnalisation en spécifiant les propriétés httpPort, sslPort, publishAllPorts et useSSL dans le profil des paramètres de lancement.

Partage des certificats SSL générés

Lorsque vous déployez une application sur Docker en mode Rapide, vous devez partager les certificats de développement HTTPS partagés entre l'hôte et le conteneur. Nous avons automatisé cette étape en ajoutant l'option Share generated SSL certificate pour les configurations d'exécution de Docker. Il est uniquement possible de partager des certificats de confiance sous Windows et macOS, vous devez donc procéder manuellement sous Linux.

Docker Compose

Docker Compose

Il est désormais possible d'ajouter Docker Compose à votre projet pour gérer facilement plusieurs conteneurs à la fois. Pour ce faire, appelez le menu contextuel d'un projet et sélectionnez Add | Docker Compose File pour générer :

  • un Dockerfile pour le projet, s'il n'y en a pas ;
  • un fichier docker-compose.yml dans le dossier de solution Solution Items au-dessus de tous les projets dans l'arborescence ;
  • deux configurations d'exécution pour un fichier Dockerfile ou docker-compose.yml.

Journaux fusionnés pour l'ensemble des conteneurs Docker Compose

L'onglet Dashboard du nœud Docker Compose regroupe désormais les journaux de tous les conteneurs Docker Compose, les affiche au même endroit et les actualise en temps réel.

Prise en charge d’Azure Container Registry

Vous pouvez désormais vous connecter facilement à Azure Container Registry. Cliquez sur Settings/Preferences | Build, Execution, Deployment | Docker | Docker Registry et configurez-le en sélectionnant l'option Docker V2 dans le champ de saisie Registry.

Exécuter/déboguer

Exécuter la configuration

Il est parfois nécessaire d'exécuter votre application à partir d'un dossier personnalisé. À cette fin, nous avons introduit l'option Add Custom Runtime pour le paramètre Runtime sur la page Run/Debug Configurations.

D'autre part, nous avons ajouté des chemins aux versions d'exécution par défaut dans la liste déroulante Runtime.

Dans Rider 2023.1, la commande DebugRoslynComponent est prise en charge depuis le fichier launchSettings.json pour faciliter le débogage des composants Roslyn.

Action Reattach to Process

Action Reattach to Process

Vous pouvez maintenant rattacher facilement le débogueur de Rider au dernier processus auquel il était attaché en allant simplement dans Run | Reattach to Process... dans le menu principal ou en utilisant le raccourci clavier Ctrl+Alt+Maj+F5. La nouvelle action devient active après la première session de débogage.

Débogage du code de démarrage WASM

Rider peut désormais déboguer le code de démarrage pour les applications WebAssembly (WASM) .NET. Auparavant, le débogueur WASM ne pouvait être attaché qu'après l'initialisation pour la plupart des projets, car il faut du temps pour calculer le port, initialiser la connexion, etc. Ce délai rendait impossible de déboguer le code lors du démarrage.

Désormais, Rider attend l'initialisation de la cible de la page, se connecte au débogueur, et ce n'est qu'à ce moment-là que le chargement de l'application commence. Cela permet d'identifier les points d'arrêt définis lors des phases initiales de la logique d'initialisation de l'application.

Fermeture des onglets de navigateur à la fin du débogage

Lorsque vous commencez une session de débogage pour une application ASP.NET Core dans Rider, l'IDE ouvre une nouvelle fenêtre de navigateur ou un onglet pour cela. Jusqu'à présent, l'exécution de différentes sessions de débogage laissait plusieurs onglets ouverts que vous deviez fermer manuellement.

Désormais, lorsque vous déboguez une application ASP.NET Core avec un débogueur JavaScript activé, Rider ferme l'onglet de navigateur correspondant dès que vous arrêtez le processus.

Prise en charge de F#

Saisie automatique du code

Saisie semi-automatique dans la fenêtre contextuelle Create New Branch

Nous avons introduit les nouveaux modèles postfix match, for et with pour vous aider à écrire le code réutilisable.

Saisie semi-automatique dans la fenêtre contextuelle Create New Branch

Lorsque vous commencez une nouvelle expression match, il est suggéré de générer tous les cas pour union, enum, bool et les valeurs de tuple.

Injections de langage avec les expressions régulières

Injections de langage avec les expressions régulières

Nous avons ajouté la prise en charge des expressions régulières dans les littéraux de chaîne pour F# (avec l'aide considérable de Saul Rennison). Lors du transfert de paramètres de chaîne annotés avec [RegexPatternAttribute] ou [StringSyntax(StringSyntaxAttribute.Regex)], ou s'il y a un commentaire //language=regex près d'un littéral de chaîne, Rider traite les chaînes comme des expressions régulières, met en évidence les éléments de syntaxe et les erreurs, et assure la saisie semi-automatique.

Correctifs rapides

Correctifs rapides

  • Un nouveau correctif rapide génère les branches de modèle manquantes dans une expression match.

Vous trouverez la liste complète des mises à jour de F# et des correctifs ici.

Plugins

Localisation Bêta

Rider 2023.1 dévoile la première phase de localisation en chinois simplifié, coréen et japonais. Vous disposerez ainsi d'une interface utilisateur partiellement localisée, des inspections de code, un menu Alt+Entrée, des fenêtres d'outils et des notifications, notamment pour la prise en charge de Unity et Unreal Engine.

Pour localiser votre IDE, allez dans Settings/Preferences | Plugins et recherchez la Marketplace du pack linguistique voulu. Installez le plugin et redémarrez l'IDE pour appliquer les modifications. Vous pouvez également télécharger un plugin de pack linguistique en chinois, coréen ou japonais du site web de JetBrains Marketplace et l'installer en allant dans Settings/Preferences | Plugins | ⚙️ | Install Plugin from Disk.

Action Trigger Continuous Testing

Action Trigger Continuous Testing dotUltimate

Nous avons introduit l'action Trigger Continuous Testing, ainsi que la possibilité de créer le raccourci correspondant. Cette action permet de déclencher des tests continus directement, alors qu'auparavant cela ne pouvait se faire que de façon indirecte en créant ou enregistrant votre projet.

Pour affecter un raccourci à cette action, allez dans Preferences/Settings | Build, Execution, Deployment | Unit Testing | Continuous Testing, sélectionnez Trigger Continuous Testing on et créez le raccourci voulu.

Prise en charge d'Astro

La prise en charge initiale d'Astro est disponible, avec un nouveau plugin conçu pour Rider. Vous pouvez télécharger le plugin Astro depuis JetBrains Marketplace, ou l'installer directement depuis l'IDE en allant dans Preferences/Settings | Plugins et en recherchant « Astro ».

Le plugin assure les fonctionnalités de base, telles que la mise en évidence des éléments de syntaxe, la saisie semi-automatique du code avec des importations automatiques, des refactorisations, de la navigation, des intentions, du pliage de code, la prise en charge d'Emmet et le formatage correct.

Autres fonctionnalités

Vue Structure

Rider 2023.1 regorge d'améliorations et de correctifs pour la navigation du code. Rider affiche désormais les membres hérités dans la fenêtre d'outils de la vue Structure et nous avons restauré la capacité de Rider à afficher les membres de la classe du code décompilé dans la vue Structure.

Rider utilise maintenant la fenêtre contextuelle de la vue Structure d'IntelliJ IDEA lorsque la commande Go to File Member est initiée. Cela permettra à l'IDE d'afficher la structure d'un fichier et les symboles provenant des types de base compilés. Nous avons également implémenté le groupement dans la fenêtre contextuelle, ce qui permet de voir immédiatement où chaque élément est situé.

Nettoyage du code

Nettoyage du code

Reformat inactive preprocessor branches in file est un nouveau type de tâche de nettoyage du code que nous avons introduit dans Rider 2023.1. Cette tâche vous permet de reformater les branches de préprocesseurs inactifs. Cela doit s'appliquer uniquement à l'ensemble du fichier et fonctionne exclusivement avec les sources C#.

Cette tâche ne permet pas de reformater le code masqué derrière une directive de préprocesseur #if qui a toujours la valeur false. Les deux exemples les plus évidents de cette limitation sont les constructions #if false ... #endif et #define A #if !A ... #endif.

Filtres de texte pour les arborescences de tests unitaires

Filtres de texte pour les arborescences de tests unitaires

Les filtres de recherche de texte appliqués aux arborescences de tests unitaires dans les fenêtres d'outils Unit Tests et Unit Test Coverage, sont désormais pris en compte lors de l'exécution de tests au moyen des boutons Run de la barre d'outils. Seuls les tests qui correspondent aux critères de recherche restent dans la liste et sont exécutés.

Refactorisation Rename

Refactorisation Rename

Nous avons amélioré la façon dont Rider gère les changements de nom des fichiers dans un projet. À partir de cette version de Rider, lorsque vous renommez un fichier dans votre solution, une boîte de dialogue s'affiche pour renommer les symboles concernés (classes, interfaces, etc.) en fonction de la modification.