Jetbrains annonce la disponibilité de Rider 2020.3, son EDI .NET multiplateforme basé sur la plateforme IntelliJ et ReSharper qui permet de développer des applications .NET, ASP.NET, .NET Core, Xamarin ou Unity sous Windows, macOS et Linux. Rider 2020.3 apporte la prise en charge tant attendue des nouvelles fonctionnalités .NET 5, C# 9 et F# 5. Cette version 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#
Rider 2020.3 est la première version de l'EDI 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.
Rider 2020.3 prend 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.
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.
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 y emmènera, en sautant tout appel de méthode externe ou point d'arrêt. 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".
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.
Diagramme des dépendances du projet
Le 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.
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'EDI. 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.
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.
Prise en charge de F#
Fonctionnalités de F# 5
JetBrains a 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.
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. JetBrains a 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.
Améliorations de l'interface et de l'expérience utilisateur
Nouvel écran d'accueil
JetBrains a 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.
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. 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êtres contextuelles de navigation lorsqu'un fichier est sélectionné, comme Recent Files, Search Everywhere et Navbar.
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.
JetBrains a 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. L'entreprise a 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.
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.
JetBrains a 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.
Saisie automatique du code
La saisie automatique du code et informations sur les paramètres sont 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.
Développement web
Pris en charge de Blazor
JetBrains annonce qu'elle continue à 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.
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.
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.
Prise en charge de Couchbase
Rider accueille une nouvelle base de données dans la famille, il s'agit de 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.
Télécharger Rider 2020.3
Source : JetBrains
Voir aussi
DataGrip 2020.3 est disponible avec un traducteur JS-SQL pour interroger les bases de données MongoDB et la prise en charge de Couchbase
Rider : la version 2020.2 de l'EDI .NET multiplateforme de JetBrains est disponible avec un Localization Manager et des mises à jour majeures pour Unity
Rider 2020.1 est disponible en téléchargement, l'EDI .NET multiplateforme s'accompagne de nombreuses améliorations parmi lesquelles le rechargement à chaud Xamarin
Rider 2020.3 est disponible et apporte des nouvelles fonctionnalités .NET 5, C# 9 et F# 5
Et la prise en charge linguistique du framework Avalonia UI
Rider 2020.3 est disponible et apporte des nouvelles fonctionnalités .NET 5, C# 9 et F# 5
Et la prise en charge linguistique du framework Avalonia UI
Le , par Bill Fassinou
Une erreur dans cette actualité ? Signalez-nous-la !