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.
Réduction du nombre de recherches dans les collections (prise en charge de C#)
JetBrains a ajouté de nouvelles inspections et les correctifs rapides correspondants pour optimiser le travail sur 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 progressé avec l'ajout de Perforce au widget Version Control Systems (VCS). Le widget VCS pour Perforce permet d'accéder rapidement à 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 HTML, XML, JSON, JWT, ou de codage d'URL. Cliquez simplement sur le lien View près d'une chaîne dans l'onglet Threads & Variables de la fenêtre d'outils 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
JetBrains a introduit un ensemble d'inspections accompagnées de correctifs rapides pour optimiser et accélérer votre 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.
- Supprimer une vérification ContainsKey(key) avant d'ajouter l'élément dans Dictionary ou toute autre collection implémentant l'interface IDictionary.
- Utiliser TryAdd(key, value) pour les collections Dictionary ou les collections héritées de Dictionary lorsque possible.
- Utiliser TryGetValue(key, out value) pour les collections IDictionary lorsque possible.
Option Syntax Style pour le modèle de vérification de null
JetBrains a 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. Cela comprend deux options : syntaxe de modèle récursif vide { } et modèle de négation not null, ce dernier é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 }. JetBrains a 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ù l'éditeur de logiciels pour développeurs introduit 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
Le SDK .NET 6.0 a introduit une nouvelle API pour la vérification de null : ArgumentNullException.ThrowIfNull. Le moteur d'analyse de code de JetBrains 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, JetBrains a ajouté le modèle ArgumentNullException.ThrowIfNull à Settings/Preferences | Editor | Code Style | C# | Null checking pour Rider.
Extraction du modèle de propriété commun
Si vous recourez de façon intensive au filtrage par motif des propriétés, essayez la nouvelle inspection incluant un correctif rapide pour extraire les éléments communs de plusieurs schémas de propriétés lorsqu'ils sont utilisés 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
Les développeurs C# s'appuient souvent sur la directive #region et le pliage de code dans l'EDI 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"
L'analyse de code inclut une inspection de code qui propose le remplacement de span.SequenceEqual("stringLiteral" par span is "stringLiteral", ce qui donne une syntaxe C# plus pratique que l'appel d'une fonction.
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 scénarios complexes de résolution de surcharge. À partir de C# 11, il est également possible d'ajouter une spécification de type de retour pour les expressions lambda. Pour cette raison, JetBrains a introduit l'action contextuelle Insert return type specification dans Rider 2023.1. Cette action peut s'appliquer à toutes les portées, ce qui inclut les méthodes, la classe, le fichier, le projet ou l'intégralité de la solution.
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, JetBrains a introduit une nouvelle analyse de code dans la version 2023.1 qui vous signale les vérifications « caduques » dans les modèles complexes.
Action contextuelle Convert to list pattern
L'éditeur de logiciels pour développeurs poursuit l'amélioration de la prise en charge des modèles de liste 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, JetBrains introduit la prise en charge de Unity DOTS, renforçant encore davantage la réputation de Rider en tant qu'EDI 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é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
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
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, JetBrains a 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.
Autres changements
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]. JetBrains a é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, l'éditeur de logiciels pour développeurs a 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
JetBrains a 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'EDI affiche 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
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
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
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 permet 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 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.
Autres nouveauté et améliorations
Éditeur de code
- Possibilité d'afficher les espaces uniquement dans le code sélectionné.
- 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.
- Rider peut dorénavant masquer les conseils de conversion de type pour les opérateurs sélectionnés.
- Suppression des vérifications orthographiques pour les hashes et les valeurs spéciales.
Développement Web
- Importation automatique lors de la saisie semi-automatique du code pour Angular.
- Prise en charge de TypeScript dans les expressions de modèles Vue.
- Conversion automatique des chaînes en littéraux de modèle.
Améliorations de l'expérience utilisateur
- Zoom complet dans l'EDI : 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.
- Nouveau paramètre Remember size for each tool window 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.
- Recherche basée sur le machine learning pour les classes dans Search Everywhere activée par défaut
Changements de la nouvelle interface utilisateur (Bêta)
- Fractionnement vertical pour les fenêtres d'outils : une nouvelle option permet de fractionner la fenêtre d'outils, afin de vous aider à organiser ces fenêtres en fonction de vos besoins.
- Mode Compact : ce mode 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.
- Onglets de projet sous macOS : lorsque plusieurs projets sont ouverts, vous pouvez facilement les parcourir en utilisant les onglets de projet présents sous la barre d'outils principale.
- Possibilité d'afficher des onglets masqués avec la fonctionnalité Show Hidden Tabs.
- Nouveau design du widget Run
Outils de contrôle de version
- Amélioration du workflow de révision du code pour GitHub.
- Saisie semi-automatique dans la fenêtre contextuelle Create New Branch.
- Amélioration de la fenêtre contextuelle Branches.
Outils de bases de données
Comparaison des schémas de bases de données : 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.
Docker
- Exécution avec Fast Mode.
- 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.
- Partage des certificats SSL générés : ajout de l'option Share generated SSL certificate pour les configurations d'exécution de Docker.
- Docker Compose : il est désormais possible d'ajouter Docker Compose à votre projet pour gérer facilement plusieurs conteneurs à la fois.
- Journaux fusionnés pour l'ensemble des conteneurs Docker Compose.
- Prise en charge d’Azure Container Registry.
Exécuter/déboguer
- Une option Add Custom Runtime pour exécuter votre application à partir d'un dossier personnalisé.
- Une nouvelle action Reattach to Process qui vous permet maintenant de rattacher facilement le débogueur de Rider au dernier processus auquel il était attaché.
- Rider peut désormais déboguer le code de démarrage pour les applications WebAssembly (WASM) .NET.
- Fermeture des onglets de navigateur à la fin du débogage
Prise en charge de F#
- Saisie semi-automatique dans la fenêtre contextuelle Create New Branch.
- Prise en charge des expressions régulières dans les littéraux de chaîne pour F#.
- Un nouveau correctif rapide génère les branches de modèle manquantes dans une expression match.
Plugins
- Action Trigger Continuous Testing (dotUltimate) permettant 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.
- Prise en charge d'Astro.
Autres
- Des améliorations à la vue Structure.
- Nettoyage du code : Reformat inactive preprocessor branches in file est un nouveau type de tâche de nettoyage du code qui permet de reformater les branches de préprocesseurs inactifs.
- Filtres de texte pour les arborescences de tests unitaires.
- Amélioration de la façon dont Rider gère les changements de nom des fichiers dans un projet.
Nouveautés et téléchargement de Rider 2023.1