Nouveautés de Rider

Rider 2020.3 apporte la prise en charge tant attendue des nouvelles fonctionnalités .NET 5, C# 9 et F# 5. Nous avons également introduit de nouvelles fonctionnalités telles que la fenêtre Immediate et Private Source Link dans le débogueur, les diagrammes de dépendance de projet, le Push-to-Hint et la prise en charge linguistique du framework Avalonia UI. Les développeurs Unity y trouveront des mises à jour de l'analyse Burst et de la prise en charge des shaders. Et enfin, vous pouvez glisser-déposer des onglets pour diviser l'éditeur comme vous le souhaitez !

Prise en charge de .NET 5 et C#

Veuillez accueillir la première version de Rider avec la prise en charge de .NET 5 ! La prise en charge comprend les Source Generators, les fonctionnalités C# 9, les nouvelles fonctionnalités NuGet et de nouveaux frameworks cibles (net5.0-windows et net5.0). De plus, vous pouvez créer, compiler, exécuter, déboguer, profiler et couvrir des applications .NET 5.

Source Generators est sans doute la fonctionnalité du compilateur C# la plus commentée. C'est compréhensible : la possibilité de créer du nouveau code dès le processus de compilation et de l'utiliser immédiatement est très intéressante et peut être utile dans de nombreuses situations.

Que peut faire Rider ? He bien, ce qu'il fait le mieux : prendre en compte les fichiers générés lors des refactorisations, fournir des fonctionnalités d'édition de code et vous aider à naviguer vers le code généré.

Les méthodes partielles sont maintenant autorisées à avoir des paramètres out, des types de retour non annulés, et tout type d'accessibilité, et peuvent donc être plus largement utilisées avec Source Generators. Source Generators peut utiliser la déclaration de définition de la méthode partielle pour personnaliser le comportement du code généré.

Un autre ajout intéressant est celui des propriétés init-only. Ces propriétés ne peuvent être définies que lors de l'initialisation d'un objet. Vous pouvez donc enfin utiliser des initialiseurs d'objet sans exposer la propriété comme modifiable !

ReSharper détecte les propriétés init-only et les prend en compte lors de la saisie semi-automatique de votre code, de la saisie automatique générative, de l'analyse pour déterminer si la propriété a changé quelque part et pour proposer un correctif rapide pour la rendre modifiable si vous changez d'avis.

L'application de init est idéale pour les nouveaux types de record. Ce sont des types de référence avec une sémantique de valeur qui vous aident à obtenir une immutabilité, mais cette fois pour l'ensemble de l'objet. Une fois de plus, Rider a suivi l'évolution du langage, des correctifs rapides pour choisir le style de déclaration que vous préférez à la saisie automatique de base.

Les records positionnels ont une méthode Deconstruct() générée par le compilateur. Rider prend en charge toutes les fonctionnalités de déconstruction de ces objets. Observez la fenêtre contextuelle lors de l'introduction d'une variable : elle vous donne le choix entre une variable unique ou une déclaration déconstructive. Le même choix sera proposé lorsqu'une fonction accède à une propriété d'un objet record.

Au-delà des nouveautés majeures, les fonctions locales sont désormais autorisées à avoir des attributs (ainsi que des paramètres et des paramètres de type). Ceci est pris en charge par les correctifs rapides de Rider, y compris la fonctionnalité d'annotation de la méthode comme [NotNull] ou [CanBeNull], en appuyant respectivement sur ! ou ?.

Un autre ajout C# 9 utile est la possibilité d'écrire des programmes de haut niveau. Plus besoin de se battre avec les classes de programme : vous pouvez placer votre code initial juste après les directives using ! Une aide est également disponible pour travailler avec les instructions de niveau supérieur. Il y a deux règles concernant les instructions de niveau supérieur : elles doivent précéder tout type ou espace de noms et un seul fichier du projet peut contenir du code de niveau supérieur. Or ces deux règles peuvent facilement être enfreintes lorsque vous réorganisez et copiez-collez du code. Rider fournit des correctifs rapides pour remédier à cela en déplaçant votre code de niveau supérieur vers le haut ou vers un autre fichier.

Nous proposons également des refactorisations pour le code de niveau supérieur : Extract local variable et Extract method.

Pour en savoir plus : Déclarations C# 9 de haut niveau dans ReSharper and Rider

Les nouvelles expressions de type cible en C# 9 permettent d'omettre le type après le nouveau mot-clé lorsqu'il peut être déduit du contexte d'utilisation. Rider fournit une prise en charge complète de la fonctionnalité, y compris la possibilité de rechercher les occurrences du constructeur avec Find Usages et de configurer le style de syntaxe préféré. Ce dernier vous permet d'utiliser la syntaxe new() lorsqu'un type créé est évident tout en imposant une spécification de type explicite dans d'autres cas.

À propos, les nouveaux conseils de ReSharper pour les noms de type peuvent vous aider si vous vous sentez envahi·e par tous ces nouveaux new() dans votre code.

Avec la covariance du type de retour, vous n'avez plus à renvoyer le même type dans les membres de substitution comme c'est le cas dans la méthode de classe de base. Il n'est plus nécessaire de recourir à des solutions alternatives pour retourner un type plus spécifique.

La reconnaissance de schémas continue d'évoluer dans la nouvelle version du langage. Les expressions correspondantes permettent désormais d'utiliser des schémas relationnels (<, >, etc.) et logiques (not, or, and), ce qui permet de réduire la verbosité par rapport aux anciennes constructions switch. Rider peut vous aider à analyser les schémas et à les réécrire dans le style souhaité.

Enfin, lorsque les paramètres de suppression de lambda ont été introduits, nous avons pensé qu'il serait utile de leur créer un correctif rapide.

C'est à peu près tout pour les principales nouveautés du langage. Il y a également de petites améliorations du langage qui sont prises en charge dans Rider 2020.3. Cela concerne les expressions conditionnelles de type ciblé, les lambdas statiques, les méthodes d'extension GetEnumerator dans foreach, les types de pointeurs de fonction et les types d'entiers natifs.

Débogueur

Fenêtre Immediate

Découvrez une nouvelle fenêtre Immediate avec assistance au code. Elle vous permet de créer des variables synthétiques lorsque le programme s'arrête sur un point d'arrêt, et d'expérimenter avec votre code sans redémarrer le débogueur.

Lorsque vous démarrez une session de débogage, la fenêtre Immediate apparaît en bas à droite, sous les variables de surveillance dans le panneau du débogueur. Il n'acceptera les entrées que lorsque votre application est en état de pause, typiquement lorsqu'elle a atteint un point d'arrêt.

Écrivez n'importe quel code C# valide, avec toute la gamme de fonctions de saisie automatique du code à votre disposition.

Définissez de nouvelles variables synthétiques. Rider suivra ces valeurs dans la fenêtre des variables dans une collection de variables synthétiques. Vous pouvez inspecter, épingler et modifier ces variables comme vous le faites pour toute autre variable.

Vous pouvez même appeler des fonctions membres sur les objets disponibles ou des fonctions statiques disponibles dans le contexte actuel en utilisant les objets disponibles comme arguments. Les points d'arrêt sur le chemin d'exécution de la fonction suspendront l'exécution comme s'il s'agissait d'un appel normal. L'appel aura sa propre partie de la pile à commencer par Function Evaluation, que vous pouvez explorer dans le panneau Frames.

Exécutez des instructions sans avoir besoin de les affecter à des variables. Rider enregistrera la dernière valeur retournée d'une instruction d'exécution sous le placeholder $result. La fenêtre Immediate permet de suivre l'historique de toutes vos déclarations.

Pour en savoir plus : Fenêtre Immediate - Intéragissez avec votre code pendant le débogage dans Rider

Nouvelles actions

De nouvelles actions de débogage sont désormais disponibles lorsque le débogage n'a pas commencé.

Vous n'avez pas besoin de commencer à déboguer et de naviguer à travers plusieurs étapes pour trouver la méthode ou l'emplacement dans le code qui vous intéresse. Si vous utilisez Start Debugging and Run to Here ou Start Debugging and Run to Here Non-Stop, Rider vous emmènera à l'emplacement souhaité en ignorant les points d'arrêt éventuels.

Si vous souhaitez commencer à déboguer votre application et arrêter l'exécution dès le début, dès qu'elle atteint le point d'entrée de l'application, utilisez les actions Start Debugging and Step Over ou Start Debugging and Step Into.

Vous pouvez trouver ces actions dans Run | Debugging Actions dans le menu principal.

Veuillez noter que les actions mentionnées ci-dessus ne sont disponibles que pour la configuration .NET Project / .NET Static Method.

Private Source Link

Bonne nouvelle pour tous ceux qui sont familiers avec le terme « Private Source Link » : Rider 2020.3 fournit maintenant une prise en charge complète des serveurs de source privés, à la fois dans le débogueur et dans le décompilateur intégré. Rider prend en charge les sources situées sur GitHub, GitHub Enterprise, BitBucket et Azure DevOps (anciennement VSTS).

Rider peut enregistrer les données d'authentification pour faciliter les accès futurs.

Autres mises à jour du débogueur

  • Nous avons mis en place une évaluation des méthodes qui ont des paramètres out et ref ou qui déclarent des variables out dans la liste des paramètres.
  • Nous avons considérablement accéléré l'énumération des séquences IEnumerable.
  • Le lien 'View' s'affiche désormais correctement pour les objets ayant de très longues présentations.
  • Les longues chaînes ne sont plus tronquées lorsque vous copiez leurs valeurs et leur évaluation a été optimisée.

Diagramme des dépendances du projet

Notre nouvel outil d'architecture vous aide à visualiser les dépendances du projet dans votre solution et à explorer son architecture.

Exploration du diagramme

Vous pouvez ouvrir le diagramme des dépendances du projet à partir de Tools | Architecture | Show Project Diagram ou du menu contextuel dans Solution Explorer. Il suit la structure de votre solution et commence par montrer tous les éléments de haut niveau de votre solution. Vous pouvez sélectionner les projets ou les dossiers de solution qui doivent être visibles, changer l'échelle, activer une grille (et l'option d'ajustement à la grille, si nécessaire) et annoter certains projets.

Navigation

Utilisez Ctrl+F sur Windows ou Cmd+F sur macOS pour trouver le projet sur lequel vous voulez vous concentrer.
Le bouton Show Neighbors of Selected Nodes de la barre d'outils filtre le diagramme des dépendances du projet vers le nœud sélectionné, ses dépendances directes et les projets qui dépendent de ce projet.

Pour les diagrammes de dépendance de grands projets, vous pouvez ouvrir la fenêtre de l'outil File Structure (View | Tool Windows | Structure) et parcourir les diagrammes en utilisant une vue d'ensemble de haut niveau.

Analyser le couplage entre les projets

Cliquez sur l'icône Enable Coupling Analysis dans la barre d'outils pour effectuer l'analyse et mettre à jour le diagramme. L'épaisseur, la couleur et le style des liens peuvent varier en fonction de l'étroitesse du couplage entre les projets. Passez le curseur sur le lien et Rider affichera une infobulle avec le nombre exact d'utilisations. En cliquant sur le lien, vous obtiendrez des détails sur le code dépendant et les afficherez dans une fenêtre d'outils séparée.

Dans un diagramme des dépendances du projet, vous pouvez également afficher les dépendances transitives avec Show Transitive. Cela montrera à la fois les dépendances directes et indirectes des projets.

Enregistrer et comparer des instantanés

Enregistrez un instantané du diagramme de dépendances du projet à partir de la barre d'outils et comparez-le ensuite avec la solution actuelle. Utilisez le menu Tools | Architecture | Compare With Saved... pour charger et inspecter les instantanés précédemment enregistrés. Rider mettra en évidence les différences entre les diagrammes.

Pour en savoir plus : Les diagrammes de dépendances du projet arrivent dans Rider 2020.3

Exporter des diagrammes

À partir de la barre d'outils, vous pouvez exporter le diagramme sous forme d'image et l'inclure dans votre documentation.

Développement de jeux

Unity

Rider 2020.3 apporte une meilleure prise en charge pour Unity, avec des mises à jour de l'analyse Burst, de la prise en charge des shaders et des tests unitaires, ainsi qu'e plusieurs correctifs.

Cliquez sur l'icône à côté de toute méthode marquée par l'attribut [MenuItem] de Unity et Rider indiquera à Unity d'appeler la méthode, directement depuis l'IDE.

La prise en charge intelligente des shaders par Rider a été améliorée et utilise automatiquement des symboles définis dans les pragmas tels que shader_feature et target lors de l'analyse du code. Un nouveau sélecteur de contexte dans la barre d'état permet d'analyser un shader en fonction des symboles définis à l'emplacement dans lequel il a été inclus.

Nous avons amélioré l'analyse contextuelle Burst avec un nouvel indicateur Code Vision et de nouveaux avertissements en cas d'utilisation incorrecte de SharedStatic. Vous pouvez également utiliser le menu Alt+Entrée pour ajouter rapidement un attribut [BurstDiscard].

De nouvelles actions contextuelles permettent un meilleur contrôle de l'analyse des méthodes critiques pour les performances telles que Update. Vous pouvez maintenant demander à Rider d'arrêter de traiter une méthode comme étant fréquemment appelée, ou d'arrêter de mettre en évidence une méthode comme étant coûteuse en ressources, et pouvez même commencer un nouveau contexte de performance à partir d'une méthode arbitraire.

Les tests unitaires bénéficient également de nouvelles mises à jour très utiles, avec la prise en charge de l'attribut [Explicit] et des fonctions de test paramétrées. Vous pouvez également effectuer des tests en mode édition et en mode lecture dans un seul test.

La fenêtre d'outils de visualisation du journal Unity a bénéficié de quelques améliorations au niveau de l'interface utilisateur, notamment la possibilité de filtrer en fonction de la dernière fois que vous avez passé le jeu en mode play, ou de la dernière fois que l'AppDomain du jeu a été rechargé.

Et bien sûr, nous avons corrigé un certain nombre de problèmes, notamment un correctif pour le message permanent "refreshing solution" lorsque vous n'étiez pas connecté à l'éditeur Unity et un nouveau correctif rapide pour supprimer un message d'événement redondant. Nous avons également résolu les suggestions de langage C# incorrectes pour les projets player. Veuillez consulter le journal des modifications pour plus de détails.

Rider pour Unreal Engine Early Preview

Rider for Unreal Engine est encore au stade de preview publique et sa sortie est prévue au sein de Rider en 2021. Vous pouvez tester la version preview gratuitement jusqu'à la sortie officielle.

Rider for Unreal Engine offre une intégration parfaite avec UnrealHeaderTool pour vous aider à détecter plus de problèmes de code spécifiques à Unreal Engine directement dans l'éditeur. Lorsque vous travaillez avec un projet Unreal Engine, il lance automatiquement UnrealHeaderTool sur le fichier que vous modifiez et affiche les erreurs ou les avertissements éventuels, comme pour les autres inspections.

Voir l'intégration UnrealHeaderTool en action

Toute la puissance de l'analyse des flux de contrôle se trouve maintenant dans les fichiers de shaders HLSL. Elle vous prévient en cas de code inaccessible, de variables non initialisées, de sauts de flux de contrôle redondants et de branches conditionnelles, etc. Dans la version 2020.3. de Rider, la même analyse est activée pour les shaders Unity.

Nous avons ajouté des filtres dans Unreal Log, afin que Rider for Unreal Engine vous permette de filtrer par verbosité et par catégorie, et vous pouvez afficher ou cacher les horodatages. Nous avons corrigé un problème de blocage de l'interface utilisateur lorsqu'il y a trop de messages dans le panneau de journal d'Unreal.

Le plugin UnrealLink/RiderLink permet une intégration avancée entre JetBrains Rider et l'Unreal Editor d'Epic Games. Il est désormais hébergé sur JetBrains Marketplace et peut être mis à jour indépendamment du build du produit.

Prise en charge de F#

Fonctionnalités de F# 5

Nous avons introduit la prise en charge de la nouvelle syntaxe d'interpolation des chaînes. Vous pouvez maintenant marquer une chaîne avec le symbole $ pour la rendre interpolée, puis placer des spaceholders à l'intérieur de la chaîne littérale. La syntaxe des « interpolations typées » (%s et %d) pour les espaces réservés est également prise en charge.

Cette version ajoute la prise en charge du mot-clé nameof qui vous aide à convertir presque n'importe quel symbole en F# en son nom.

Enfin, les déclarations open type sont désormais prises en charge. En utilisant la déclaration de type open, vous pouvez « ouvrir » n'importe quel type pour importer du contenu statique stocké à l'intérieur du type.

Autres fonctionnalités et améliorations

Vous pouvez désormais générer des redéfinitions manquantes dans les types et les implémentations d'interface, en utilisant à la fois des correctifs rapides et des actions contextuelles. Merci à Matt pour l'idée et l'implémentation initiale !

Il existe de nouvelles infobulles syntaxiques pour améliorer la lisibilité du code. Nous tenons à remercier Saul pour cette implémentation.

Nouvelles actions contextuelles pour annoter les types de biding let. Encore une fois, un grand merci à Matt.

Nous avons ajouté la possibilité de configurer les sévérités des analyseurs fournis par le backend ReSharper. Veuillez noter que la plupart des avertissements/erreurs sont toujours produits par FCS.

Nouveaux analyseurs et correctifs rapides :

  • Les lambdas peuvent être simplifiées ou remplacées avec un analyseur de fonctions intégré.
  • L'analyseur Redundant applications, par exemple, pour supprimer un appel Ignore redondant s'il n'y a rien à ignorer.
  • Les schémas de l'analyseur Redundant pour améliorer votre style de code.
  • Un correctif rapide pour convertir un espace de noms en module.

Aide à la saisie :

  • Meilleur comportement de Enter dans les invocations de méthodes.
  • Prise en charge du nouveau « Surround with Quotes  ».

Il y a maintenant une action pour renommer les fichiers afin qu'ils correspondent à un nom de module / type.

Le débogueur assure désormais un meilleur suivi des variables locales dans les flux de travail asynchrones.

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

Nouvel écran d'accueil

Nous avons remanié l'écran d'accueil pour le rendre plus clair et plus moderne. Il possède toujours exactement les mêmes fonctionnalités, mais il est mieux organisé. Vous pouvez toujours gérer vos projets, suivre des tutoriels sur Rider, créer des solutions, ouvrir des solutions existantes ou obtenir une solution de VCS.

Rechercher dans Solution Explorer

Dans la vue Solution Explorer, une « vraie » recherche est enfin disponible ! Elle examine tous les nœuds de l'arborescence de solution (désormais même dans les nœuds réduits), y compris les fichiers, dossiers, projets, références, analyseurs, importations et paquets, afin de vous donner toutes les occurrences d'une requête de recherche. Vous pouvez les parcourir une par une en utilisant les raccourcis clavier ou les icônes de la barre d'outils. Pour ouvrir le champ de recherche, utilisez le raccourci Ctrl+F ou l'icône de la loupe dans la barre d'outils.

Glisser-déposer des onglets

Si vous souhaitez ouvrir plusieurs onglets lorsque vous travaillez sur un projet, vous pouvez désormais glisser-déposer des onglets de fichiers pour diviser l'éditeur horizontalement ou verticalement.

Open in Right Split

La nouvelle action Open in Right Split (View | Open in Right Split ou Shift+Entrée) vous permet d'ouvrir un fichier directement dans une fenêtre divisée verticalement. Appelez l'action à partir de la vue Explorer ou d'autres fenêres contextuelles de navigation lorsqu'un fichier est sélectionné, comme Recent Files, Search Everywhere et Navbar.

Onglets épinglés

Il y a une nouvelle icône d'épingle pour les onglets épinglés. Pour désépingler un fichier, cliquez sur cette icône. Vous pouvez également épingler et détacher vos onglets en les glissant-déposant sur d'autres fichiers épinglés ou non épinglés. Si vous avez tendance à ouvrir de nombreux onglets, vous pouvez conserver tous vos onglets épinglés sur une seule ligne. Pour ce faire, cliquez sur Preferences / Settings | Editor | General | Editor Tabs et cochez Show pinned tabs in a separate row.

Mise en évidence des éléments syntaxiques dans les infobulles

Nous avons mis en place la mise en évidence des éléments de syntaxe dans la fenêtre contextuelle d'infobulle afin de rendre le contenu plus facile à lire et à comprendre.

Onglet Aperçu

Vous pouvez maintenant ouvrir un fichier dans un onglet d'aperçu en un clic. Lorsque vous ouvrez un fichier dans un onglet d'aperçu, son nom s'affiche en italique. Si vous commencez à éditer ce fichier, il cessera d'être un aperçu et deviendra un fichier ordinaire. Pour activer cette fonctionnalité, cliquez sur l'icône engrenage dans la vue Project et sélectionnez Enable Preview Tab.

Action build dans la Touch Bar

Nous avons ajouté l'action Build à la Touch Bar pour les utilisateurs de macOS.

Contrôle de version

Vous pouvez désormais effectuer des modifications dans la zone de staging directement à partir de Rider. Cliquez sur l'icône + pour ajouter vos fichiers au nouveau nœud Staged dans la vue Commit. Vous pouvez également interagir avec la zone de staging directement depuis la gouttière ou dans la vue Diff. Pour activer cette fonctionnalité, cliquez sur Preferences / Settings | Version Control | Git et sélectionnez Enable staging area. Pour en savoir plus, consultez cet article de blog.

Nous avons ajouté un nouvel onglet Git à la boîte de dialogue Search everywhere. Vous pouvez désormais trouver des hachages et des messages de commit, des balises et des branches dans la boîte de dialogue Search everywhere.

Nous avons apporté quelques améliorations pour le travail avec les branches. Rider affiche désormais toutes les actions disponibles pour la branche actuellement sélectionnée. Les actions Merge into Current et Rebase Current onto Selected ont respectivement été renommées en Pull into Current Using Merge et Pull into Current Using Rebase.

Autres mises à jour du VCS :

  • Le menu VCS a été renommé pour correspondre au nom du système de contrôle de version que vous utilisez actuellement.
  • Les correctifs sont désormais créés au format Git.

Plugins

Dynamic Program Analysis (DPA)

Le plugin Dynamic Program Analysis est désormais disponible sur macOS et Linux pour les applications .NET Core, il n'est donc plus réservé à Windows. Il est disponible pour les applications ciblant les versions .NET Core 3.0 ou ultérieures.

Le plugin DPA est désormais capable d'analyser les allocations de mémoire lorsqu'un débogueur est attaché à un processus en cours d'exécution.

Azure DevOps

Le plugin Azure DevOps permet de créer un nouvel espace de travail sur le serveur ou d'importer un espace existant.

dotCover

Le plugin dotCover vous permet d'effectuer une analyse de la couverture des applications ciblant .NET 5 sur Windows, macOS et Linux.

La fenêtre Unit Tests Coverage vous permet de filtrer les résultats de couverture par framework cible.

La mise en évidence effectuée par dotCover dans l'éditeur de code peut être activée ou désactivée dans les paramètres du plugin ou dans la fenêtre contextuelle « Configure highlighting level ».

Vous pouvez désormais définir quels projets doivent être compilés lorsqu'une session de test en continu est déclenchée. Cela vous permet d'accélérer les sessions de tests en continu.

dotTrace

Le profileur de performances vous permet désormais de profiler les applications .NET 5 sous Windows, macOS et Linux.

Nous avons ajouté un Flame Graph au profileur de performances. Il s'agit d'une visualisation de l'arborescence qui vous permet de trouver plus rapidement les méthodes lentes.

Le plugin dotTrace pour Rider dispose désormais de la fonctionnalité de pliage de l'arborescence d'appels, qui n'était auparavant disponible que dans la version autonome de dotTrace. Il permet de simplifier l'analyse de l'arborescence d'appels en pliant les chaînes d'appels qui n'appartiennent pas aux modules et assemblies utilisateurs.

Azure Toolkit for Rider

En utilisant l'émulateur de stockage Azurite dans Rider, vous pouvez maintenant explorer le stockage en attente. Vous pouvez ajouter des messages, voir le contenu des messages, et plus encore.

Nous avons ajouté une prise en charge initiale pour faire fonctionner la nouvelle version alpha d'Azurite 3.9 avec un émulateur de stockage de tables également.

Dans les projets Azure Functions, les configurations run/debug sont affichées dans le menu contextuel du projet pour les rendre plus accessibles. Nous avons aussi réorganisé les menus contextuels dans la fenêtre de l'outil Azure Explorer afin que les actions communes puissent être exécutées plus rapidement.

AWS Toolkit for Rider

  • Prise en charge de base pour Amazon Elastic Container Registry.
  • Prise en charge du débogage local des fonctions Lambda de .NET Core 3.1 (nécessite SAM CLI version 1.4.0 ou supérieure).
  • La liste des buckets S3 se charge beaucoup plus rapidement qu'auparavant.
  • Rider 2020.1 est maintenant la version minimale pour l'utilisation du plugin ; le support de la version 2019.3 a été arrêté.
  • Plus de détails sur la Marketplace.

Markdown

L' outil Markdown bénéficie d'une interface utilisateur de prévisualisation optimisée et fournit une meilleure expérience utilisateur. Vous pouvez personnaliser le format Markdown dans Preferences | Settings | Editor | Code Style | Markdown. Le bouton Auto-Scroll Preview en haut à droite de l'éditeur vous permet de synchroniser le défilement du volet d'aperçu sur celui de l'éditeur. Nous avons également ajouté la prise en charge de Mermaid.js.

Éditeur de code

Conseils d'insertion

Nous sommes persuadé·es de l'intérêt des conseils d'insertion, mais nous savons aussi qu'il est important que l'environnement reste aussi propre et épuré que possible. Nous avons mis au point un nouveau mécanisme « Push-to-Hint » pour les conseils d'insertion afin de pouvoir en profiter sans avoir à faire de compromis.

En mode de visibilité Push-to-Hint, les conseils ne sont pas affichés par défaut. Elles s'affichent si vous maintenez la touche Ctrl enfoncée et sont masquées dès que vous relâchez la touche Ctrl.

Nous proposons des paramètres assez granulaires : vous pouvez indiquer à ReSharper les conseils qui doivent être activés en permanence, ceux à afficher en mode push et ceux dont vous pouvez vous passer. Utilisez le paramètre Visibility pour chaque type de suggestion.

Nous avons également travaillé sur les conseils relatifs aux casts de type implicite. Ces casts peuvent entraîner une perte de données ou une dégradation des performances, et Rider peut désormais indiquer où se situe un cast implicite.

En-tête de fichier

Un modèle d'en-tête de fichier peut maintenant être spécifié dans Preferences/Settings | Editor | File Header Template. Vous pouvez l'utiliser pour ajouter un avis de droit d'auteur, des informations sur la société, le nom de l'utilisateur actuel, etc.

Style et mise en forme du code

Nous avons ajouté une fonctionnalité très attendue qui permet de détecter et de configurer les paramètres de mise en forme à partir de l'éditeur de code. Sélectionnez un morceau de code, appuyez sur Alt+Entrée, puis sélectionnez Format Selection / Configure ou Format Selection / Detect Formatting settings. Rider affichera une fenêtre avec une liste de tous les paramètres qui affectent précisément ces lignes. Les valeurs qui sont différentes de leurs valeurs par défaut sont mises en évidence, et vous pouvez également visualiser les différences avec l'option « Only show changed values ».

Pour en savoir plus : Détection automatique des règles de mise en forme du code avec Rider

Nous continuons à améliorer la précision des paramètres du moteur de formatage. Voici ce que nous avons ajouté dans cette version :

  • Des paramètres pour arranger les schémas de propriété vous permettent de dire à Rider de placer un schéma simple sur une seule ligne, et de préciser votre préférence pour les retours à la lignes de longs schémas. Il y a également un réglage pour aligner les schémas de propriété en colonnes.
  • Des lignes vierges peuvent désormais être ajoutées autour des accès aux propriétés ou aux événements.
  • Pour Visual Basic .NET, il est possible d'ajouter un espace après l'opérateur unaire +/-.

Nous avons ajouté une option permettant de sélectionner un style de syntaxe préférable pour les valeurs par défaut dans l'onglet Preferences/Settings | Editor | Code Style | C# | Syntax Style : default vs. default(T).

Il y a quelques mises à jour dans la prise en charge de .editorconfig :

  • Nouveau paramètre « Spaces around '=' » lors de l'exportation vers .editorconfig. Sa valeur est automatiquement détectée pour les fichiers existants et peut être définie manuellement pour les nouveaux fichiers. Il est réglé sur « true » par défaut.
  • Prise en charge de la lecture des propriétés Roslyn : file_header_templates, dotnet_sort_system_directives_first et dotnet_separate_import_directive_groups.

Vous pouvez maintenant ajuster l'indentation de la ligne de code actuelle avec la touche Tab. Assignez la touche Tab à l'action Emacs Tab pour utiliser cette fonctionnalité.

Pris en charge d'Avalonia

Analyse du code

Comme c'est généralement le cas pour tous les frameworks de type WPF, l'analyse du code fournit de nombreuses inspections de code communes avec les correctifs rapides appropriés pour les fichiers C# code-behind et .axaml, y compris "Possible 'System.NullReferenceException'" et "Class/Property {...} is obsolete: Use {...}".

En plus des inspections WPF courantes, il existe de nombreuses inspections spécifiques à Avalonia, telles que les inspections "Path to resource is case sensitive" ou "ColumnDefinitions tag can be converted to attribute" avec des correctifs rapides. Pour cette dernière, une action contextuelle sur l'attribut ColumnDefinitions="*,Auto,*" permet de reconvertir en <Grid.ColumnDefinitions> balise.

Nous avons ajouté une meilleure prise en charge des syntaxes $self, $parent, ^ et # dans les liaisons Avalonia, ainsi qu'une validation correcte des index dans $parent[].

Il y a une prise en charge étendue pour CompiledBinding et l'extension x:CompileBindings. Rider sait que DataType est requis ici et vous invite à le spécifier pour les liaisons dans votre code.

Le correctif rapide « Create from usage » est disponible pour toutes sortes de propriétés Avalonia.

La prise en charge Avalonia XAML comprend la compréhension du système de style de type CSS.

Les conseils d'insertion vous aident à mieux comprendre le code que vous avez sous les yeux.

Saisie automatique du code

Saisie automatique du code et informations sur les paramètres disponibles pour tous les mots clés XAML, diverses extensions de balisage, x:Name, propriétés Style, propriétés Source pour StyleInclude, et bien d'autres choses encore.

Navigation

Vous pouvez facilement naviguer vers le type de données liées compilées, la propriété liée, le type de contrôle Avalonia et les déclarations x:Name. Rider peut également passer directement de XAML à du code externe décompilé, y compris les propriétés de définition de style, et à des espaces de noms xmlns référencés.

Find Usages

Find Usages vous aide à trouver tous les usages des liaisons de méthodes, les attributs x:Name, les classes et les paramètres Style et toutes sortes de propriétés.

Refactorisations

Les refactorisations Rename et Safe Delete tiennent désormais compte de toutes sortes d'utilisations dans le code Avalonia XAML et les mettent à jour en conséquence.

Hiérarchie et structure du code

Vous pouvez observer la hiérarchie et la structure du code Avalonia XAML.

Développement web

Pris en charge de Blazor

Nous continuons à améliorer la prise en charge de Blazor. Cette itération portait sur la prise en charge des paramètres de type génériques et leur inférence de type à partir des usages, ainsi que sur l'élimination des baisses de performance à l'ouverture des solutions. Pour la liste complète des problèmes corrigés, veuillez vous référer à notre outil de suivi public des bugs.

Prise en charge de Tailwind CSS

Rider peut désormais vous aider à améliorer votre productivité avec Tailwind CSS. Intallez le plugin Tailwind CSS depuis Preferences / Settings | Plugins et l'IDE complètera automatiquement vos classes Tailwind, vous montrera un aperçu du CSS qui en résulte au survol de la souris et prendra en charge les personnalisations effectuées avec des fichiers tailwind.config.js.

Créer un composant React à partir des utilisations

Vous avez un composant React non résolu dans votre code ? Placez le caret dessus, appuyez sur Alt+Entrée, et sélectionnez Create class / function component dans la liste. Rider créera la construction de code appropriée pour vous.

Autres améliorations notables :

  • Pour les fichiers JavaScript et TypeScript, la barre de navigation vous permet désormais de passer à des éléments de code spécifiques dans le fichier en cours (plus d'infos).
  • Meilleur formatage des littéraux des modèles avec CSS et HTML (plus d'infos).
  • Prise en charge complète de pnpm (détails).

Consultez les Nouveautés de WebStorm pour découvrir toutes les améliorations en matière de développement web également disponibles dans Rider 2020.3.

Prise en charge des bases de données

SQL pour MongoDB

Vous pouvez désormais utiliser SQL pour interroger les bases de données MongoDB ! Nous avons créé pour cela notre propre traducteur JS-SQL.

Seules les requêtes SELECT fonctionnent et les сlauses opérationnelles sont JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMITED et OFFSET. Pour savoir tout ce qui est pris en charge, consultez cette publication.

Prise en charge de Couchbase

Nous sommes toujours ravis d'accueillir une nouvelle base de données dans la famille, et notre tout nouveau membre est Couchbase ! Veuillez noter que Rider prend en charge le service Couchbase Query, et non le service Couchbase Analytics.

Authentification Azure AD

Vous pouvez maintenant utiliser Azure AD pour vous connecter à votre base de données.

Consultez les Nouveautés de DataGrip pour découvrir toutes les améliorations relatives aux bases de données également disponibles dans Rider 2020.3.

Autres mises à jour

Tests unitaires

Les tests unitaires peuvent être lancés pour un framework cible spécifique directement depuis l'éditeur de code via le menu Alt+Entrée.

Vous pouvez maintenant exporter les résultats de l'exécution des tests unitaires à partir de l'onglet Unit Test Session.

Xamarin

Pour ceux qui passent du temps à configurer des projets iOS via des fichiers "information property list", il existe un nouvel éditeur enrichi pour Info.plist dans les projets Xamarin.iOS sur toutes les plateformes. Vous n'avez plus besoin d'ouvrir Xcode pour modifier ces fichiers.

Divers

  • Les configurations d'exécution qui sont stockées sous forme de fichiers sont maintenant ajoutées aux éléments de la solution dans le dossier Run Configurations. Cela permet à Rider de fonctionner correctement avec des configurations d'exécution stockées dans des dossiers personnalisés.
  • Vous pouvez désormais stocker les modèles de configuration d'exécution sous forme de fichiers et les partager via le VCS.
  • Nous avons également ajouté la possibilité d'évaluer des expressions mathématiques simples dans le champ de recherche Search Everywhere.
  • Le thème de l'IDE peut être automatiquement synchronisé avec les paramètres du système d'exploitation sous Windows et MacOS. Activez l'option Sync with OS dans Settings | Appearance & Behavior | Appearance | Theme.
  • La performance de Solute-Wide Error Analysis a été améliorée d'environ 25% grâce à la désactivation du calcul d'inspection.