Rider 2021.3 ajoute la prise en charge officielle du SDK .NET 6, notamment la fonctionnalité Hot Reload. Cette version apporte une barre d'outils principale et un onglet Debug entièrement repensés, ainsi qu'une nouvelle fenêtre d'outils Problems View. Rider prend également en charge davantage de fonctionnalités C# 10, telles que les espaces de noms au niveau du fichier et les directives using avec global, pour vous aider à utiliser plus efficacement les dernières évolutions du langage.
Les dernières mises à jour permettent aussi la prise en charge de Unity et F#, de Reformat and Cleanup on Save, de l'aperçu XAML pour les SDK .NET 6, .NET 5 et .NET Core 3.x, et des puces Apple Silicon.
Rider 2021.3 prend officiellement en charge le SDK .NET 6, notamment :
Rider offre également une prise en charge précoce des projets Xamarin iOS et Xamarin Android qui font partie du SDK .NET 6.
Rider prend maintenant en charge la fonctionnalité Hot Reload de .NET 6 ! Lorsque vous modifiez le code source géré de votre application alors que celle-ci est en cours d'exécution, Rider vous demande si vous souhaitez appliquer cette modification à l'application en cours d'exécution sans la redémarrer. Repérez la barre de notification jaune Sources are modified en haut de l'éditeur de texte. Si vous acceptez la modification, votre application sera mise à jour à la volée et vous pourrez poursuivre votre travail avec l'application actualisée.
La fonctionnalité Hot Reload est automatiquement activée lors de l'utilisation des configurations d'exécution .NET Project et .NET Launch Settings Profile.
Une nouvelle page est dédiée à l'activation et à la désactivation de la fonctionnalité Hot Reload : Preferences/Settings | Build, Execution, Deployment | Hot Reload.
Limitations :
En savoir plus : Hot Reload pour .NET 6 dans Rider 2021.3
L'ancienne barre d'outils principale présentait certains problèmes que nous voulions éliminer. Elle comportait trop d'icônes, dont la plupart n'étaient pratiquement jamais utilisées. Les fonctionnalités de VCS et de navigation n'étaient pas facilement accessibles. Et surtout, il n'était pas possible de contrôler plusieurs configurations d'exécution.
Rider 2021.3 est doté d'une barre d'outils principale entièrement remaniée. Avec le nouveau design, nous avons essayé d'apporter une barre d'outils propre et fonctionnelle. Elle comprend les éléments suivants :
Pour éviter de perturber le flow des utilisateurs de Rider habitués à l'ancienne barre d'outils, la nouvelle barre ne sera activée par défaut que sur les nouvelles installations de Rider. Si vous avez déjà installé Rider et souhaitez essayer la nouvelle barre d'outils, vous pouvez l'activer à tout moment dans View | Appearance | Toolbar au lieu de Toolbar Classic.
Il peut être utile de centraliser tous les problèmes potentiels d'une solution, c'est pourquoi nous inaugurons dans cette version la vue Problems View ! La vue Problems (l'onglet Problems dans l'interface utilisateur Rider) est une fenêtre d'outils qui regroupe tous les problèmes potentiels d'une solution, tels que les erreurs de chargement de projets, les processus de restauration NuGet qui ont échoué, les inspections à partir d'un fichier ouvert et toutes les erreurs SWEA. La fenêtre d'outils se compose de trois onglets.
Vous trouverez ici l'ensemble des erreurs, avertissements, suggestions et indications que l'analyse de code Rider a trouvés dans le fichier sur lequel vous travaillez actuellement. De la même manière que dans nos IDE basés sur IntelliJ, le widget Inspection situé en haut de la barre de défilement verticale mène directement à cet onglet.
Cet onglet regroupe tous les diagnostics et messages concernant les activités de chargement de la solution, les processus de restauration NuGet, etc. Pour chaque problème, il offre une description appropriée et une liste des correctifs correspondants, s'il en existe. Auparavant, vous deviez ouvrir la fenêtre d'outils Event Log pour trouver les détails de ce type de messages de diagnostic.
C'est le nouvel emplacement de la fenêtre d'outils SWEA. Vous pouvez y consulter toutes les erreurs que l'analyse Solution Wide Error Analysis a trouvé dans la solution.
Nous inaugurons la nouvelle fenêtre d'outil Bookmarks, destinée à remplacer une instance similaire, Favorites.
Lorsque vous ajoutez un signet, Rider le place par défaut dans le nœud portant le nom de votre projet dans la fenêtre d'outil Bookmarks. Chaque fois que vous ajoutez un nouveau signet, il s'affiche en haut de la liste à l'intérieur de ce nœud. Vous pouvez également créer de nouveaux nœuds et y glisser-déposer des éléments.
Nous inaugurons une nouvelle interface utilisateur pour l'onglet Debug ! Nous avons beaucoup de changements à évoquer.
Trois onglets sont disponibles par défaut : Threads & Variables, Console et Debug Output. D'autres onglets comme Memory et Parallel Stacks sont masqués, mais vous pouvez les afficher via l'icône 'engrenage tout à droite dans le menu Options.
Nous avons supprimé la barre d'outils de gauche et déplacé les icônes qui s'y trouvaient dans la barre d'outils supérieure ou le menu contextuel. Afin que la barre d'outils supérieure soit aussi compacte que possible, nous avons réorganisé les icônes et seules les actions les plus importantes restent visibles. Le reste des icônes a été déplacé vers le menu déroulant More (icône points verticaux). L'icône Hide Frames from Libraries et le bouton Hide/Show Threads ont été déplacés dans le menu contextuel de la vue Threads.
Le menu déroulant More dispose d'un nouveau sous-menu Settings. Vous y trouverez une liste des paramètres les plus courants pour le débogueur. Plus besoin de les rechercher (auparavant, vous deviez aller dans la boîte de dialogue Settings/Preferences et chercher jusqu'à la page Build, Execution, Deployment | Debugger.
Vous avez le choix entre deux mises en page : étendue et réduite. Dans la présentation réduite, la vue Variables n'affiche le résultat de l'exécution que dans la variable $result
. Dans la présentation étendue, en plus de la variable $result
, vous pouvez consulter l'historique des lignes précédemment exécutées ainsi que leurs résultats. Vous pouvez passer d'une mise en page à l'autre grâce à l'icône Étendre/Réduire.
Add Watch a été déplacé de la vue Variables vers la barre d'outils de la fenêtre Immediateet a maintenant un raccourci : Ctrl+Maj+Entrée.
La nouvelle option Stop on Breakpoints force le processus d'évaluation à s'arrêter aux points d'arrêt lors de l'exécution d'une expression. Vous pouvez désactiver cette option pour que le processus d'évaluation ignore les points d'arrêt.
Pour faciliter l'évaluation d'un objet ayant de nombreuses propriétés, nous avons ajouté une icône Evaluate qui ouvre la fenêtre Evaluate avec cet objet déjà évalué. Il est beaucoup plus facile d'examiner les propriétés de l'objet sous forme d'arborescence dans cette fenêtre.
Bonne nouvelle pour les développeurs UWP : vous pouvez démarrer votre projet UWP avec le débogueur associé directement. Il n'est plus nécessaire d'exécuter d'abord le projet, puis de joindre manuellement le débogueur au processus en cours.
Vous pouvez désormais déboguer les applications .NET (Core) et .NET Framework dans des conteneurs Docker Windows locaux. Auparavant, le débogueur ne pouvait fonctionner avec des applications .NET Core que dans des conteneurs Docker Linux.
Lorsque vous créez un délégué standard (System.Func
ou System.Action
), vous pouvez facilement naviguer vers une méthode ou une expression lambda que ce délégué encapsulera. Essayez le lien Navigate pour le nœud du délégué dans la liste Variables.
Lorsque vous créez un gestionnaire d'événement event handler
(delegate
) en utilisant une expression lambda, vous pouvez examiner les abonnés et les objets collectés à l'aide du nouveau moteur de rendu.
Le gestionnaire d'événement comporte maintenant un nœud Subscribers avec un sous-nœud Captured variables. Pour naviguer rapidement vers l'emplacement de l'abonnement à un événement, nous avons ajouté un nouveau lien Navigate pour chaque abonné.
Nous continuons d'ajouter de nouvelles fonctionnalités de C# 10 dans Rider. Cette version prend en charge les espaces de nom au niveau du fichier, les directives using avec le modificateur global, l'attribut CallerArgumentExpression
, le concept de « gestionnaires de chaînes interpolées » et les lambdas C# 10.
Commençons par les espaces de nom au niveau du fichier. En plus de la prise en charge de la nouvelle syntaxe elle-même, nous avons ajouté une nouvelle option Syntax style qui vous permet de sélectionner le style que vous souhaitez (Settings/Preferences | Editor | Code Style | C# | Syntax Style | Code body | Namespaces). Lorsque vous choisissez un style, Rider présente des inspections portant sur le code qui doit être changé pour appliquer le style et vous suggère des correctifs rapides. Vous pouvez propager les correctifs dans le projet, voire dans le reste de la solution, en un clic.
Vous disposez de deux actions contextuelles permettant de rétablir le style de syntaxe précédent : Convert to file-scoped namespace et Convert to block-scoped namespace.
En savoir plus : noms d'espace au niveau du fichier
Voyons de plus près les directives using avec modificateur global. L'analyse du code de Rider tient compte des directives using accompagnées du mot-clé global et les utilise pour résoudre correctement les symboles de l'ensemble des fichiers de code du projet. Rider vous préviendra également si une directive using avec global a été placée au mauvais endroit dans un fichier.
Rider met en évidence les directives using avec global inutilisées dans le projet et propose un correctif rapide pour supprimer la déclaration.
Rider offre aussi une prise en charge enrichie de l'attribut CallerArgumentExpression
, notamment la saisie semi-automatique et des inspections de code, afin de vous aider à l'utiliser correctement.
En savoir plus : CallerArgumentExpressions
C# 10 a introduit le nouveau concept de « gestionnaire d'interpolation de chaîne ». Pour les utilisateurs finaux, cela signifie que les expressions d'interpolation de chaînes fonctionneront généralement plus vite dans .NET 6 et que les nouveaux gestionnaires permettront d'utiliser les valeurs Span<char>
pour les lacunes d'interpolation. Pour les auteurs de bibliothèques, cette fonctionnalité leur permet de contrôler si les expressions d'interpolation de chaînes sont converties en chaînes. Rider reconnaît les modèles de « gestionnaires de chaînes interpolées » dans le code de la bibliothèque et peut faire des suggestions fiables concernant l'utilisation des expressions d'interpolation de chaînes dans plus d'endroits.
Rider permet d'obtenir de meilleures performances à partir des records
de types structs en vous suggérant de les marquer en tant que readonly
. Pour éviter de surcharger les déclarations de type avec des modificateurs inutilement, cette inspection sera proposée uniquement lorsque le type record
contient des membres d'instance sans mutation et lorsqu'il n'y a pas de mutation via setters dans la solution (pour le déterminer, il faut effectuer une analyse de l'ensemble de la solution).
C# 10 permet de simplifier la syntaxe de reconnaissance de schémas en autorisant la syntaxe à point plutôt que l'imbrication de schémas d'objets.
Rider fournit l'inspection correspondante avec un correctif rapide, ainsi qu'une action contextuelle permettant d'annuler le correctif rapide.
Et pour finir, mais tout aussi important :
Program
en tant que nom de classe générée valide pour le code avec des déclarations de niveau supérieur. static abstract
dans les interfaces est désormais possible. L'analyse du code considère cette construction comme valide, ce qui signifie que vous ne devriez plus avoir affaire à du code rouge. La fonctionnalité Generate missing members tient compte des membres static abstract
et les gère correctement. Cette version inclut également les marqueurs dans la gouttière d'héritage et la possibilité d'accéder aux symboles de base/dérivés. Les développeurs utilisent souvent du code provenant de sources externes comme stackoverflow.com. Désormais, avec les types de référence nullables disponibles dans C#, certains échantillons de code incluent déjà la syntaxe NRT. Mais que se passe-t-il si NRT n'est pas activé dans votre solution ? Rider fournit deux nouveaux correctifs rapides pour vous aider à éliminer cette syntaxe après avoir copié ce type de code dans votre projet : Replace with JetBrains.Annotations attributes et Remove nullable annotations without ‘#nullable' context.
De temps à autre, il peut y avoir des incohérences de nullabilité entre les arguments de type et leurs contraintes. Vous disposez à présent de correctifs rapides pour ces cas, notamment pour :
notnull
des arguments de type.Un correctif rapide groupé permet de corriger les annotations de paramètres ayant des valeurs par défaut nullable dans un fichier, un projet ou l'ensemble de la solution.
Il existe également un nouveau correctif rapide groupé qui rend un paramètre nullable si la valeur null a été vérifiée dans une méthode.
Nous avons ajouté deux correctifs rapides et une action contextuelle pour les fonctions locales/anonymes statiques comportant des fermetures :
Rider propose une nouvelle inspection Simplify string interpolation, avec un correctif rapide correspondant qui remplace les appels de méthode .PadLeft()
et .PadRight()
par des expressions d'alignement dans les emplacements de chaînes interpolées.
Outre l'ajout du nouveau record struct
de C#10, nous avons amélioré la prise en charge des structs standards. De nombreux développeurs utilisent toujours des classes avec des initialisateurs d'objet pour leurs DTO. Désormais vous pouvez rapidement transformer toutes ces utilisations en constructeurs avec des paramètres. Vous pouvez faire cela soit à partir de la déclaration record
elle-même, soit à partir d'un initialisateur d'objet. Veuillez noter qu'il est également possible de convertir des DTO qui définissent un constructeur avec des affectations de propriété.
Depuis quelque temps déjà, Rider vous met en garde contre les incohérences de verrouillage des champs. Dans cette version, nous avons ajouté une inspection qui prend en compte l'ordre de verrouillage des ressources et signale les éventuels cycles de blocage.
Dorénavant, Rider vérifie la plausibilité des expressions d'arithmétique intégrale en recherchant les types d'entiers supplémentaires. Cela concerne les types byte
, sbyte
, short
, ushort
, uint
, long
, ulong
et enum
. Cela évite d'obtenir des branches de code inaccessibles.
Nous avons réduit le temps d'implémentation des correctifs rapides et des actions contextuelles lorsqu'ils sont appelés pour un dossier, un projet ou une solution.
Si Solution-Wide Error Analysis (SWEA) est activé avec Monitor warnings, Rider utilise désormais les résultats SWEA pour simplement ignorer les fichiers sans problèmes correspondants, ce qui accélère considérablement la recherche des problèmes à corriger.
Nous avons également de bonnes nouvelles pour les personnes qui n'exécutent pas d'analyse SWEA pour leurs solutions ! Rider utilise désormais tous les cœurs CPU disponibles pour exécuter l'analyse du code en parallèle. Cela réduit la durée nécessaire à l'exécution des correctifs rapides et des actions contextuelles.
Nous avons amélioré de façon significative les performances du démon pour les fichiers comportant des méthodes très volumineuses, notamment :
switch
. Nous avons amélioré la prise en charge des injections de langage SQL. Nous prenons désormais en charge un grand nombre de cas courants dans lesquels vous écrivez du code SQL directement dans du code C#.
Les chaînes de requêtes SQL sont correctement résolues pour les méthodes string.Format
, les interpolations de chaînes et les concaténations simples de chaînes.
L'utilisation de variables SQLParameter
avec le dialecte Microsoft SQL Server ou la bibliothèque Dapper pour les paramètres des chaînes de requête SQL ne provoque plus d'erreurs.
Cette version apporte des mises à jour majeures à la prise en charge des fichiers de définition d'assembly. Vous pouvez utiliser Ctrl+Clic pour naviguer vers une référence, trouver les occurrences des définitions d'assemblies dans l'ensemble du projet (même dans les paquets référencés), renommer les définitions d'assemblies et bénéficier d'une saisie semi-automatique lors de l'ajout de nouvelles références.
Rider fonctionnera également avec les références basées sur les GUID, en affichant une indication utile avec le nom de la définition de l'assembly cible, ainsi que des actions Alt+Entrée pour convertir les références nommées en références basées sur les GUID.
Rider met désormais en évidence les « define constraints » non respectées dans les fichiers de définition d'assemblies. Cela vous permet de comprendre facilement pourquoi un assemblage a été exclu. Vous bénéficiez même de la saisie semi-automatique pour les symboles define
!
La configuration de version defines a également été simplifiée, avec la saisie semi-automatique des noms de paquets et un conseil d'incrustation pour la version actuellement installée. Rider mettra également en évidence le symbole si la condition n'est pas remplie.
Rider affiche désormais les fichiers sources des paquets Unity référencés, dans un contexte spécial qui fournit des informations sur les symboles définis lors de la compilation des paquets. Dans ces fichiers sources, les branches correctes du préprocesseur sont donc mises en évidence.
L'attribut [Tooltip]
de Unity fournit le texte que l'inspecteur peut afficher lors de la modification des champs. Rider affichera également ce texte dans la fenêtre contextuelle de documentation rapide lorsque vous utilisez un champ sérialisé. Une nouvelle action contextuelle permet de créer l'infobulle à partir de la documentation XML et inversement.
La prise en charge du débogage des appareils iOS via USB a été mise à jour dans Rider pour fonctionner avec Apple Silicon, et cette version se dote également d'une prise en charge pour Linux.
L'index des ressources examine maintenant les paquets référencés. Rider peut donc trouver des occurrences du code dans les préfabriqués en fonction des ressources dans les paquets.
Le suivi des métafichiers a été entièrement réécrit pour gérer davantage de cas d'utilisation. Il devrait fonctionner en toute fluidité pour l'ajout, la suppression, le renommage, le déplacement ou la refactorisation des fichiers dans la fenêtre d'outil Unity Explorer.
Cette version apporte également son lot habituel de correctifs, tels que la mise à jour de l'index des ressources lors de la mise à jour du fichier par certains types d'applications externes, l'ouverture de fichiers à partir d'Unity sur Apple Silicon et la mise à jour de l'analyse Burst pour l'aligner sur les changements effectués dans le compilateur Burst. Nous avons également amélioré les performances de Rider pour la recherche des versions installées d'Unity et l'actualisation de la fenêtre d'outil de visualisation des journaux Unity.
Si vous ajoutez des tests à votre jeu à l'aide du framework de test Unreal Engine, Rider peut désormais lancer des tests pour vous et afficher leurs résultats dans la fenêtre d'outils Unit Test. Dans cette fenêtre d'outils, vous pouvez examiner les résultats des tests et relancer ceux que vous voulez : des tests spécifiques, ceux qui ont échoué, ou l'ensemble des tests. Vous pouvez également regrouper les tests en fonction des indicateurs qui leur sont envoyés.
Rider for Unreal Engine continue son parcours de sa version d'accès anticipé vers sa version finale. Pour l'instant, cela reste un accès gratuit sous la forme d'une version distincte de Rider, disponible après envoi d'un formulaire.
L'aperçu XAML fonctionne désormais pour les applications qui ciblent les SDK .NET 6, .NET 5 et .NET Core 3.x. Vous pouvez prévisualiser directement dans Rider les résultats des modifications apportées au code XAML.
Nous inaugurons le paramètre Reformat and Cleanup on Save. Cette fonctionnalité vous permet de remettre en forme et de réorganiser votre code chaque fois que vous appelez explicitement Save ou Save All dans l'IDE. Tous les déclencheurs implicites de la sauvegarde, tels que les builds, le passage à un autre onglet et les commits, n'entraîneront pas de remise en forme du code. Toutefois, Rider ajoutera le document modifié à une liste interne de fichiers qui seront nettoyés et remis en forme lors de la prochaine sauvegarde explicite. Nous espérons que cette fonctionnalité vous aidera à préserver la propreté et l'ordre de votre code sans avoir à vous en soucier.
Pour activer et ajuster ce paramètre, accédez à Preferences/Settings | Tools | Actions on Save. Vous pouvez y sélectionner le profil de nettoyage à utiliser. La liste des profils disponibles est héritée de la page Preferences/Settings | Editor | Code Cleanup. Vous pouvez également indiquer si l'action doit être appliquée à l'ensemble du fichier ou seulement aux lignes modifiées.
De même, la fonction Reformat and Cleanup on Save respecte le paramètre Do not format. Pour spécifier les fichiers et les répertoires à exclure de la mise en forme, utilisez l'onglet Preferences/Settings | Editor | Code Style | Formatter.
La fonction Reformat and Cleanup fonctionne pour plusieurs fichiers et répertoires sélectionnés dans la fenêtre d'outil Solution Explorer.
Nous avons ajouté de nouvelles options à l'outil de mise en forme :
if()
et de while()
. if()
, foreach()
, et ainsi de suite. Elle est ACTIVÉE par défaut. x is Foo or Bar or Baz
. À partir du SDK .NET 5, vous pouvez configurer les options de l'analyseur Visual Studio à l'aide de fichiers AnalyzerConfig globaux. Rider 2021.3 peut lire les informations de style du code à partir de ces fichiers AnalyzerConfig globaux et l'utiliser pour ajuster les règles de Rider en conséquence.
Rider 2021.3 vous permet de mettre à jour vos paquets npm vers la dernière version directement depuis l'éditeur ! Ouvrez votre fichier package.json, placez le curseur sur la version du paquet que vous souhaitez mettre à jour, puis appuyez sur Alt+Entrée et sélectionnez Update 'nom du paquet' to the latest version. Un correctif rapide s'affiche également lorsque vous survolez la version du paquet avec votre souris. Vous trouverez plus d'explications sur cette inspection dans cet article de blog.
Nous avons amélioré le fonctionnement de la saisie semi-automatique du code en HTML. Chaque fois que vous saisissez un nom de balise ou une abréviation dans l'éditeur, ou que vous appelez la saisie semi-automatique du code, Rider affiche immédiatement des suggestions pertinentes. Auparavant, il ne les montrait que si vous commenciez par saisir <
. De plus, la saisie semi-automatique du code pour les références aux entités de caractères devrait mieux fonctionner à présent.
Rider peut générer des Binding Redirects pour les paquets NuGet dans les projets .NET Framework. Si des redirections Binding Redirects sont nécessaires dans votre projet, Rider les ajoutera au fichier App.config ou Web.config.
Les Binding Redirects sont générées lors de l'installation ou de la mise à jour d'un paquet NuGet. Toutefois, vous pouvez demander à Rider de générer les redirections Binding Redirects manuellement à tout moment en cliquant sur Tools | Generate Binding Redirects, dans le menu contextuel du projet de la fenêtre d'outils Solution Explorer.
Vous trouverez une nouvelle propriété, Auto-Generate Binding Redirects, dans l'onglet Applications de la page Properties du projet. Elle demande à MSBuild de générer des redirections Binding Redirects pendant la génération du projet si le fichier App.config n'en comporte pas.
Outre l'ajout de la prise en charge des Binding Redirects, nous avons apporté une petite amélioration à l'ergonomie. Vous pouvez désormais désinstaller les paquets NuGet directement depuis la fenêtre d'outil Solution Explorer.
À partir de cette version, Rider fonctionne en mode natif sur les ordinateurs Mac équipés de processeurs Apple Silicon. Rider 2021.3 utilise les runtimes suivants :
Plus de traduction de x64 en ARM64 ! Rider est maintenant super rapide sur les puces Apple !
La plus grande nouvelle est que Rider prend désormais officiellement en charge F# 6 ! Dans cette version, vous trouverez également de nombreuses mises à jour de qualité pour la saisie semi-automatique du code, les refactorisations et la navigation, ainsi que diverses autres améliorations pour la prise en charge du langage F#.
La refactorisation Introduce Variable a bénéficié de plusieurs mises à jour puissantes. Elle suggère désormais de déconstruire les tuples et les types union
à cas unique lorsque c'est nécessaire, et elle préconise également d'utiliser des types de calcul dans les expressions de calcul. Elle recommande en outre les mots-clés use
et use!
lorsque c'est pertinent, et nous avons amélioré le placement de la liaison ajoutée.
Cette version contient un certain nombre de mises à jour pour la saisie semi-automatique du code, notamment un meilleur ordre de suggestion et un filtrage préliminaire des mots-clés en fonction du contexte (certains mots-clés ne s'affichent plus s'ils ne sont pas applicables). Il est désormais plus facile d'utiliser les fonctions F# de manière récursive, car il n'est plus nécessaire de revenir en arrière et d'ajouter manuellement des rec
à la fonction qui les contient.
Une autre mise à jour notable concerne la saisie semi-automatique du code. Lors de la saisie semi-automatique de schémas de cas union, Rider vous propose d'utiliser la correspondance des schémas pour ces champs.
De nouvelles icônes dans les résultats de Find Usages vous aideront à distinguer les invocations, les applications partielles, les schémas et les autres types d'utilisation.
Rider vous permet désormais d'étendre correctement votre sélection à l'intérieur des chaînes interpolées. Special thanks to Andrew Rublyov for this contribution! Le comportement de sélection pour _
et divers types de crochets a également été amélioré.
Nous avons implémenté un certain nombre de petits correctifs rapides, de refactorisations et d'autres améliorations dans la prise en charge de F#. Please take a look at the full release notes for more information.
Code Vision se dote d'une nouvelle statistique, Covering tests. Elle s'affiche si Rider dispose des informations de couverture pour le projet, et si la méthode (ou la propriété, l'indexeur ou l'événement) est couverte par au moins un test.
Vous pouvez l'activer ou la désactiver à partir de la page Settings/Preferences | Editor | Code Vision.
Vous pouvez désormais lancer des tests unitaires à partir d'une fenêtre contextuelle qui s'affiche lorsque vous cliquez sur la ligne de couverture à gauche de l'éditeur de code.
Le plugin dotTrace vous permet de collecter des données sur les appels asynchrones sous macOS et Linux. Pour obtenir ces données, utilisez le mode de profilage Timeline. L'arborescence Call Tree affiche les appels asynchrones, notamment awaits et continuations.
Le plugin dotTrace peut profiler les processus enfants des applications sous macOS et Linux dans le mode de profilage Timeline. Cette prise en charge est disponible uniquement pour les applications .NET 5+.
Nous avons ajouté quelques nouveaux marqueurs dans la gouttière afin de vous aider à parcourir la structure d'héritage d'une classe, d'une interface ou d'un struct. Les nouvelles icônes ↑O
et ↑I
indiquent qu'une entité de code hérite d'une autre classe ou interface ou l'implémente. Si cet héritage d'entité de code est complexe, la sélection d'une icône affiche un menu avec tous ses ancêtres au-dessus de cette dernière, jusqu'au sommet de la hiérarchie d'héritage. Si une classe implémente une interface et une classe simultanément, ou en hérite, Rider place l'icône ↑IO
dans la gouttière.
Nous avons également activé les marqueurs dans la gouttière pour les membres de classes par défaut. Rider ajoute l'icône ↓O
dans la gouttière de gauche à côté d'un membre de classe si ce dernier est remplacé dans les classes dérivées. Cliquez sur l'icône pour :
Vous pouvez désormais appeler Find Usages pour les opérateurs de conversion implicite définis par l'utilisateur ! L'implémentation de cette fonctionnalité dépend du mécanisme utilisé pour les conseils de conversion de type.
Cela vous permet de savoir si des opérateurs de conversion implicites définis par l'utilisateur sont utilisés, puis de naviguer vers les blocs de code comportant des conversions.
Veuillez noter que cet algorithme est plutôt lent et que les opérations de calcul et d'affichage des résultats peuvent prendre un peu de temps.
Nous avons ajouté la possibilité d'afficher une vue Aggregate pour une plage de cellules. Cette fonctionnalité très attendue vous permettra de gérer vos données et vous épargnera l'écriture de requêtes supplémentaires ! Cela rend l'éditeur de données encore plus puissant et simple d'utilisation, et le rapproche encore un peu plus d'Excel et des feuilles de calcul Google.
Sélectionnez simplement la plage de cellules pour laquelle vous voulez afficher la vue, puis cliquez droit et sélectionnez Show Aggregate View.
Cette version vient compléter la précédente version de l'IDE, dans laquelle nous avions introduit la possibilité de générer une source de données DDL basée sur une source réelle. Désormais, ce workflow est totalement pris en charge. Vous pouvez :
Pour rappel, une source de données DDL est une source de données virtuelle dont le schéma repose sur un ensemble de scripts SQL. Le stockage de ces fichiers dans le système de contrôle de version (VCS) est une méthode possible pour conserver votre base de données dans ce système.
Les propriétés de configuration des données comportent un nouvel onglet, DDL mappings, permettant de définir quelle source de données réelle est mappée à chaque source de données DDL.
La nouvelle fenêtre Database Diff est disponible à partir du menu contextuel. L'interface utilisateur est plus conviviale et le volet de droite indique clairement le résultat que vous obtiendrez après la synchronisation.
La légende du panneau droit donne la signification des couleurs pour votre résultat potentiel :
L'onglet Script preview affiche le script du résultat qui peut ensuite être ouvert dans une nouvelle console ou exécuté depuis cette boîte de dialogue. Le résultat de ce script applique les modifications pour faire de la base de données de droite (cible) une copie de la base de données de gauche (source).
Outre l'onglet Script preview, le panneau inférieur comporte deux autres onglets : Object Properties Diff et DDL Diff. Ils indiquent les différences entre les versions particulières de l'objet dans les bases de données source et cible.
Cette version ajoute plusieurs nouveaux paramètres à la boîte de dialogue Project Properties :
Le tableau de la boîte de dialogue Solution Properties comporte une nouvelle colonne Dependancies qui permet de spécifier les dépendances de build pour chaque projet. Certains projets ne peuvent pas être sélectionnés afin d'éviter les dépendances circulaires.
À partir de la version 2021.3, Rider importe tous les fichiers .pubxml
de Properties/PublishProfiles lorsqu'un projet est chargé, et les convertit en configurations d'exécution. À chaque fois que vous ajoutez un nouveau fichier .pubxml
, une nouvelle configuration d'exécution est générée automatiquement. Vous n'avez plus besoin de créer ces configurations d'exécution manuellement !
Un sélecteur de runtime explicite permet de spécifier l'environnement runtime d'exécution de l'application. Les options affichées dépendent du système d'exploitation que vous utilisez, mais la liste complète contient : .NET/.NET Core
, .NET Framework
et Mono
.
Vous pouvez désormais ajuster la liste de la saisie semi-automatique du code pour filtrer les éléments en fonction de l'attribut EditorBrowsable. Il suffit de sélectionner le comportement souhaité sur la page Preferences | Editor | General | Code Completion sous Filter members by EditorBrowsable attribute.
Comme demandé, il est désormais possible de modifier la taille de la police dans tous les onglets ouverts simultanément avec ⌘+molette de la souris sous macOS ou Ctrl+molette de la souris sous Windows et Linux. Pour activer cette fonctionnalité, accédez à Preferences/ Settings | Editor | General, choisissez Change font size with Command + Mouse Wheel in, puis All editors. Si vous sélectionnez Active editor, le raccourci ne modifiera la taille de la police que dans le fichier sur lequel vous travaillez actuellement.