Rider 2023.2 : la dernière version de l'EDI .NET de JetBrains apporte un meilleur support de C#
une assistance par IA, des nouveautés pour le développement de jeux et bien plus

Rider 2023.2 améliore la prise en charge de C# et apporte de nouvelles inspections pour travailler avec les fonctions locales et les chaînes brutes, ainsi que pour résoudre les problèmes courants liés à Entity Framework. JetBrains a aussi apporté plusieurs améliorations à l'interface utilisateur et finalisé le nouvel aspect de l'IDE afin de le rendre plus esthétique, moderne et hautement personnalisable. Le développement de jeux avec Rider a reçu un nouveau coup de boost significatif avec, entre autres, des mises à jour de la fonctionnalité DOTS et l'optimisation de l'indexation des Blueprints pour Unreal Engine. Rider 2023.2 est également la première version de l'IDE à offrir des fonctionnalités assistées par IA via le plugin JetBrains AI Assistant.

Principales mises à jour

En-têtes de projet personnalisables (nouvelle interface utilisateur)

Rider 2023.2 facilite la navigation entre plusieurs projets ouverts grâce aux en-têtes de différentes couleurs ! Les couleurs des en-têtes sont prédéfinies par défaut mais vous pouvez les modifier. Pour définir une nouvelle couleur pour un projet, faites un clic droit sur un en-tête pour accéder au menu contextuel, puis sélectionnez l'option Change Toolbar Color et choisissez une couleur. Pour désactiver cette fonctionnalité, désélectionnez simplement l'option Use Project Colors in Toolbar dans le menu contextuel.


AI Assistant (accès limité)

Cette version marque l'ajout d'une fonctionnalité majeure à Rider : AI Assistant. Actuellement, les fonctionnalités générées par IA fournissent un chat intégré et une assistance pour plusieurs workflows utilisateurs essentiels de l'IDE. L'AI Assistant peut analyser le code sélectionné, expliquer la signification d'un commit et créer des fichiers Unity conformes à vos spécifications.

Fenêtre d'outils Build remaniée

Pour Rider 2023.2, JetBrains a remanié la fenêtre d'outils Build afin d'améliorer aussi bien les performances que l'expérience/interface utilisateur. Les résultats de sortie de build sont maintenant présentés sous la forme d'un arbre d'événements à gauche et d'un journal à droite. La sortie sera chargée en mode « lazy », c'est dire que seuls les détails du build que vous choisissez d'examiner dans l'arborescence d'événements seront chargés et affichés, ce qui réduit l'utilisation du processeur et facilite la navigation.


Intégration de GitLab

Rider 2023.2 introduit l'intégration initiale avec GitLab, ce qui vous permet de travailler directement avec la fonctionnalité Merge Requests depuis l'IDE et d'optimiser votre workflow de développement.


Analyse du code

Prise en charge de C#

Amélioration de la prise en charge des chaînes brutes

Rider fournit de nouvelles inspections C# et des actions contextuelles pour le travail avec les chaînes brutes, améliore l'assistance à la saisie et apporte de nouvelles options de formatage :

  • L'inspection Use raw string sert à convertir les chaînes textuelles sur plusieurs lignes en représentations brutes.
  • L'inspection Simplify raw string permet de supprimer les guillemets et les symboles de signe dollar qui deviennent redondants.
  • Plusieurs actions contextuelles permettent d'ajouter ou de supprimer des guillemets, des accolades d'interpolation et des symboles de signe dollar et de basculer facilement entre les représentations sur une seule ligne et sur plusieurs lignes.
  • Avec les nouvelles options de formatage de texte vous pouvez aligner ou indenter le contenu des chaînes brutes.
  • Amélioration de l'aide à la saisie lors de l'utilisation des touches Entrée, Supprimer ou Retour arrière.

Inspections pour les problèmes courants liés à Entity Framework

JetBrains a ajouté plusieurs nouvelles inspections, des correctifs rapides et des options de navigation contextuelle pour les problèmes courants survenant lorsque vous travaillez avec des bases de données avec un framework ORM (Object-Relational Mapping) comme Entity Framework.

  • En cas de problème « N+1 », vous disposez des inspections Possible multiple queries to the database for related entities (N+1 problem) et Possible multiple queries to the database (N+1 problem), d'un correctif rapide correspondant et de la navigation contextuelle avec des allers-retours afin d'examiner les sections de votre code dans lesquelles vous risquez de rencontrer un problème « N+1 ».
  • En plus de la détection des problèmes « N+1 », l'éditeur de logiciels pour développeurs a introduit une autre inspection utile lorsque vous travaillez avec Entity Framework : Query can return incomplete data for related entities. Un correctif rapide et la navigation contextuelle avec des allers-retours pour vous aider à analyser ce problème sont également disponibles.

Inspections pour travailler avec des fonctions locales

Rider 2023.2 introduit deux nouvelles inspections et les correctifs rapides correspondants afin d'améliorer la lisibilité du code avec les fonctions locales :

  • Une recommandation pour placer un paramètre return ou continue explicite avant les fonctions locales à la fin d'une méthode.
  • Une suggestion pour déplacer les fonctions locales à la fin d'une méthode ou d'un bloc et les séparer du code exécutable avec une instruction explicite return, continue, ou d'une autre instruction de déplacement de flux de contrôle.

Inspections pour les directives #nullable et les annotations NRT

Plusieurs nouvelles inspections sont disponibles pour les directives #nullable et les annotations NRT :

  • L'inspection Redundant nullable directive ;
  • L'inspection Unused nullable directive ;
  • Une inspection pour vous alerter lorsque les annotations de type de référence nullable (NRT) contredisent les attributs JetBrains.Annotations sur un membre de base.

Navigation depuis les déclarations var améliorée

Toutes les actions de navigation (Go to…, Find Usages, etc.) suggèrent désormais les types sous-jacents lors de la navigation depuis var pour les types communs utilisés pour englober d'autres types. Par exemple, Rider suggère la navigation vers Person lors de l'utilisation de l'action Go to declaration depuis le mot-clé var d'une variable de type ImmutableArray<Person>?.

Constructeurs primaires (préversion de C# 12)

La version 2023.2 de Rider apporte la prise en charge des constructeurs primaires pour les classes autres que record et les structs de la version preview de C# 12. Plusieurs inspections détectent les types pour lesquels l'initialisation peut être exprimée par de nouveaux constructeurs primaires et suggèrent l'application d'un correctif rapide pour réduire de façon significative les répétitions de code.

Parfois, l'initialisation du type doit être moins triviale et ne peut plus être exprimée par l'utilisation d'un constructeur primaire. C'est pourquoi JetBrains a introduit deux actions contextuelles qui permettent d'annuler le remplacement des paramètres de constructeurs primaires par constructeurs et champs ordinaires.

Prise en charge des valeurs de paramètres par défaut dans les lambdas (préversion de C# 12)

Dans le cadre de son travail d'intégration des mises à jour de C# 12, JetBrains a introduit la prise en charge des valeurs de paramètres par défaut dans les expressions lambdas. En plus de l'ensemble de messages d'avertissement standard associés à la reconnaissance de cette syntaxe, JetBrains a adapté une inspection existante, The parameter has the same default value, pour prendre en compte les valeurs des paramètres par défaut dans les lambdas.

Meilleure prise en charge des ressources remplaçables

Rider 2023.2 introduit deux nouvelles inspections de code conçues pour mieux contrôler l'élimination d'un objet :

  • L'inspection Return of a variable captured by ‘using' statement vous avertit lorsque l'objet renvoyé est supprimé immédiatement.
  • L'inspection Return of a task produced by ‘using'-captured object identifie les scénarios dans lesquels une Task est produite par un objet capturé par une instruction using et renvoyée immédiatement.

L'éditeur de logiciels a aussi amélioré la fonctionnalité Generate dispose pattern pour prendre en charge l'interface IAsyncDisposable et générer une méthode asynchrone pour libérer les ressources.

Meilleure prise en charge des discards C#

Plusieurs ajouts à la prise en charge des discards C# ont été faits pour l'analyse du code :

  • Il est désormais possible de vérifier rapidement les noms et les types des valeurs ignorées avec la fonctionnalité Push-to-Hint.
  • L'avertissement The _ name is typically reserved for local parameters without usages signale les variables et les paramètres nommés _, qui sont réellement utilisés. Ils semblent être des valeurs « ignorées », mais en fait c'est le contraire.
  • L'inspection Use discard assignment permet de remplacer une variable et un paramètre non utilisés par un discard.

Nouveaux conseils d'insertion pour une meilleure lisibilité du code

Conseils d'insertion avec noms de composant de tuple

Lorsque vous transférez une valeur à un argument de tuple ou un type de retour, C# permet d'ignorer les noms de composants. Cependant, en l'absence de noms, il devient plus difficile d'interpréter la signification de chaque composant sans examiner son type cible. Par exemple, de nombreux développeurs doivent rechercher le point d'affectation d'un tuple (null, false) pour comprendre ce que signifient ses composants.

C'est là que les conseils d'insertion peuvent vous aider. Rider 2023.2 affiche des conseils d'insertion avec les noms de composants de tuple lorsque ces noms ne sont pas déjà apparents au niveau de l'expression du composant, ce qui rend votre code beaucoup plus facile à lire et comprendre rapidement.

Pour les composants null et par défaut, Rider 2023.2 affiche des conseils sur leurs types cibles, même si le composant cible n'a pas de nom explicite. Il fait toutefois une exception pour les types chaîne et objet, car ces derniers sont généralement peu informatifs.

Les noms améliorent également la lisibilité des modèles de déconstruction où le nom explicite est connu soit par la méthode Deconstruct, soit par les composants du tuple source. Ces conseils ont été développés pour vous fournir davantage de contexte lorsqu'un modèle ne contient pas suffisamment de données pour comprendre ce qui est mis en correspondance, comme dans value is ({ }, true, null).

Meilleure prise en charge des directives #pragma warning

Les directives Pragma permettent de désactiver ou de restaurer facilement les avertissements du compilateur en fonction de leur ID. Cependant, si ces ID sont un excellent moyen de communiquer avec le compilateur, ils peuvent être difficiles à comprendre pour les développeurs humains. Sans connaissances approfondies, il n'est pas évident de savoir à quoi fait référence un ID tel que CS0168 ou CS0618, ni ce qui nécessite votre attention.

Interface/Expérience utilisateur

Avec cette version, la nouvelle interface de l'IDE, dévoilée pour la première fois dans Rider 2022.3, devient finalement l'interface par défaut pour tous les nouveaux utilisateurs. Si vous n'avez l'avez pas encore fait, vous êtes invités à l'essayer en l'activant dans Settings / Preferences | Appearance & Behavior | New UI | Enable new UI.

Menu latéral remanié dans la barre d'outils principale sous Windows et Linux

JetBrains a perfectionné le comportement du menu latéral situé dans la barre d'outils principale de la nouvelle interface utilisateur pour Windows et Linux. Lorsque vous cliquez sur l'icône du menu, les éléments s'affichent désormais horizontalement sur la barre d'outils.

Épingler les configurations d'exécution dans le widget Run

Afin de simplifier la gestion de multiples configurations d'exécution, JetBrains a implémenté une option qui permet d'épingler les configurations préférées dans le widget Run. Pour épingler une configuration d'exécution dans la section Pinned, ouvrez le menu kebab (trois points verticaux) situé à côté de son nom et sélectionnez Pin. Si vous avez plusieurs configurations épinglées, vous pouvez facilement les réorganiser dans la liste par glisser-déposer.


Personnalisation de la barre d’outils principale améliorée

L'éditeur de logiciels a ajouté des options de personnalisation pour la barre d'outils de la nouvelle interface utilisateur. Vous pouvez désormais utiliser un menu déroulant pour choisir rapidement les actions que vous voulez ajouter à la barre d'outils. Faites un clic droit sur n'importe quel widget et sélectionnez Add to Main Toolbar pour voir les options disponibles.


Thème Light avec en-tête clair

Pour cette version 2023.2, JetBrains a affiné l'expérience utilisateur avec le thème Light en introduisant l'option Light with Light Header, qui propose des couleurs claires assorties pour les en-têtes de fenêtres, les infobulles et les bulles de notification.

Navigation en un clic entre les dossiers de projets

La fenêtre d'outils Solution Explorer comporte la nouvelle option Open Directories with Single Click qui rend le développement et la réduction des dossiers de projet plus rapides et réactifs. Cette option est disponible dans le menu kebab (trois points verticaux).

Tri des fichiers par heure de modification dans Solution Explorer

En réponse à une forte demande de la part des utilisateurs, Rider 2023.2 permet maintenant d'organiser vos fichiers dans Solution Explorer en fonction de leur heure de modification. Cette nouvelle fonctionnalité réorganise automatiquement les fichiers lorsque vous enregistrez les modifications de votre projet. Pour l'activer, ouvrez le menu kebab (trois points) dans Solution Explorer, puis sélectionnez Tree Appearance | Sort by Modification Time.

AI Assistant (accès limité)

Les versions 2023.2 des IDE basés sur IntelliJ et des outils .NET inaugurent une fonctionnalité majeure : AI Assistant. JetBrains n'en est qu'au début de son développement, mais vous pouvez l'essayer afin de bénéficier de l'assistance de l'IA dans les principaux workflows utilisateurs et de fonctionnalités d'IA avancées pour la compréhension du code.

Actuellement, AI Assistant n'est pas inclus dans les versions stables des IDE JetBrains, mais il peut être installé en tant que plugin séparé pour les versions 2023.2.x. L'accès à la fonctionnalité AI Assistant est limité pour le moment et JetBrains a mis en place une liste d'attente.

Chat avec l'AI Assistant

Utilisez la fenêtre d'outils AI Assistant pour interagir avec le LLM, poser des questions ou itérer sur une tâche. L'IDE fournit un contexte spécifique en fonction du projet, qui prend notamment en compte les langages et les technologies utilisés. Une fois que vous êtes satisfait du résultat, utilisez la fonction Insert Snippet at Caret pour placer le code généré par IA dans l'éditeur ou faies simplement un copier-coller.


Menu AI Actions…

Vous pouvez sélectionner un fragment de code spécifique dans l'éditeur et appeler une action du menu contextuel AI Actions….

L'AI Assistant peut vous aider à :

  • Expliquer le code sélectionné.
  • Rechercher les problèmes potentiels et les options de refactorisation.
  • Démarrer une nouvelle discussion au sujet du code sélectionné en utilisant le chat par AI.

Générer et expliquer un message de commit

La boîte de dialogue de message de commit comporte désormais un bouton Generate Commit Message with AI Assistant. Cliquez sur ce bouton pour envoyer les diffs de vos modifications au LLM, qui générera un message de commit décrivant vos modifications. Vous pouvez également demander à l'AI Assistant d'expliquer les commits de vos collègues.

Génération de fichier Unity assistée par IA

L'AI Assistant peut également vous aider à générer un fichier pour une solution Unity écrite selon vos spécifications. Faites un clic droit sur un projet dans Solution Explorer, sélectionnez Create with AI Assistant dans le menu contextuel, puis écrivez votre prompt. Une fois que l'IA a généré le contenu du fichier, cliquez sur Create New File pour qu'il soit automatiquement ajouté à votre projet.

Performances

Avec Rider 2022.3, JetBrains a revu son approche de la mise en cache des données requises par l'IDE pour faire fonctionner ses systèmes. Cette révision, dont l'efficacité a été confirmée par une myriade de tests des performances, a permis de réduire la consommation d'espace disque de façon significative pour chaque solution que vous ouvrez. Dans la pratique, cela réduit le temps consacré aux entrées/sorties de disque et accélère le chargement des solutions.

Navigation et recherche

Find Usages Advanced

Find Usages a fait l'objet d'une mise à niveau fonctionnelle dans Rider 2023.2. Dorénavant, si vous appelez Find Usages Advanced sur un symbole (tel qu'une méthode, une classe ou une variable), l'IDE affiche une fenêtre dans laquelle vous pouvez spécifier des critères de recherche supplémentaires.

Afin d'améliorer votre expérience de navigation dans la base de code, JetBrains a ajouté plusieurs options sur la page Search and Navigation dédiée, dans la section Settings / Preferences | Editor.

Autres nouveautés et améliorations

SDK .NET

  • Analyseurs Roslyn et Générateurs de sources : Rider 2023.2 apporte un ensemble d'améliorations pour l'utilisation des analyseurs Roslyn et des générateurs de source.

  • Docker : La dernière version permettait d'exécuter Docker en mode rapide. À partir de Rider 2023.2, il est possible d'utiliser Docker en mode rapide sur WSL également. Cette version permet aussi un réglage précis de la configuration d'exécution de Docker Compose avec l'introduction d'étiquettes. En ajoutant ces éléments de code au fichier docker-compose.yml, vous pouvez spécifier si et comment exécuter et déboguer vos applications.

  • Rechargement à chaud XAML pour MAUI : Le rechargement à chaud est enfin disponible pour les solutions ciblant .NET MAUI. Le rechargement à chaud XAML dans Rider permet aux développeurs mobiles de modifier le code et l'interface utilisateur pendant que leurs applications MAUI sont en cours d'exécution, sans avoir à tout reconstruire et redéployer. Les modifications mises à jour s'appliquent immédiatement et offrent une expérience de développement plus rapide et itérative.

Développement de jeux

  • Unity : Cette version regorge aussi de fonctionnalités pour le développement Unity, avec de nombreuses améliorations de l'expérience de modification de fichiers ShaderLab, des mises à jour supplémentaires de la fonctionnalité DOTS et une meilleure prise en charge des fichiers USS.

  • Unreal Engine : Rider 2023.2 améliore considérablement la prise en charge d'Unreal Engine, avec de nombreuses mises à jour concernant C++, l'introduction du rechargement à chaud Hot Reload et le Live Coding, des améliorations des performances pour l'indexation des Blueprints, ainsi que des correctifs et des mises à jour de la prise en charge pour Perforce.

Développement web

  • Amélioration de la présentation des erreurs de type en JavaScript et TypeScript : Désormais, les erreurs et les avertissements seront présentés de manière plus lisible, ce qui facilitera la détection des problèmes dans votre code. Cela concerne toutes les erreurs TypeScript et certaines des erreurs JavaScript les plus courantes. Et cela s'applique même aux erreurs dans une autre langue.

  • Prise en charge de l'imbrication CSS : Rider prend désormais en charge la fonctionnalité CSS Nesting Module. JetBrains a implémenté la prise en charge syntaxique et une inspection pour vous assurer que le sélecteur imbriqué ne commence pas par un identifiant ou une notation fonctionnelle.

  • Prise en charge de Tailwind IntelliSense : Le plugin Tailwind IntelliSense pour Rider prend maintenant en charge les fichiers Razor.

  • Prise en charge du serveur de langage Vue : La prise en charge initiale de Volar est maintenant disponible dans Rider pour assurer une détection plus précise des erreurs. Par défaut, Volar est utilisé pour TypeScript v5.0 et ses versions ultérieures, tandis que la propre implémentation de JetBrains reste utilisée pour les versions plus anciennes.

Contrôle de version

  • Vérifications des commits en arrière-plan : JetBrains a retravaillé le comportement des vérifications des commits pour Git et Mercurial afin d'accélérer l'ensemble du processus de commit. Les vérifications se déroulent désormais en arrière-plan, après votre commit mais avant le push.

  • Option pour effectuer un commit pour des lignes de code spécifiques : Rider 2023.2 introduit une fonctionnalité très attendue qui permet d'effectuer des commits pour des parties spécifiques de blocs de code.

Performances et profilage de la mémoire

  • Analyse des instantanés : Avant la version 2023.2, vous ne pouviez utiliser dotMemory dans Rider que pour l'analyse de l'affectation de la mémoire. Dans la version 2023.2, vous pouvez collecter des instantanés de mémoire et les analyser dans Rider, tout comme dans la version autonome de dotMemory.

  • Groupement par thread pour l'échantillonnage, les traces et les instantanés ligne par ligne : Désormais, la vue Call Tree permet de grouper les piles d'appels par fils individuels, afin de mieux comprendre les problèmes de performances propres aux threads.

  • Dynamic Program Analysis (DPA) : Avant, DPA pouvait inclure par erreur le temps de pause lié au débogage dans le temps d'exécution, ce qui créait des faux positifs dans la base de données. Ce problème a été corrigé dans la version 2023.2. De plus, DPA mettait en évidence de gros blocs de code si la pile d'appels correspondante contenait des allocations de mémoire par des fonctions lambda. La mise en évidence est désormais plus granulaire.

Workflow de qualité du code

  • Intégration de la plateforme de contrôle de la qualité du code Qodana : Les outils d'analyse statique sont notoirement compliqués à configurer. Rider 2023.2 supprime cette difficulté en intégrant Qodana, le moteur d'analyse statique intelligent de JetBrains conçu pour s'adapter à tout pipeline de CI/CD.

Bases de données

L'éditeur de logiciels a remanié la boîte de dialogue de connexion à la base de données dans Rider 2023.2 en supprimant certaines options non essentielles qui pouvaient dérouter les utilisateurs et en simplifiant le workflow de connexion. L'une des améliorations les plus significatives est que Rider recherche désormais les chaînes de connexion dans votre solution ouverte et les utilise comme suggestions dans la boîte de dialogue. Les autres modifications notables dans Rider 2023.2 incluent la prise en charge de Redis Cluster, une nouvelle interface utilisateur pour la boîte de dialogue de migration de schéma, la définition de fuseaux horaires dans le Data editor, entre autres.

Prise en charge de F#

  • Références F# vers C# en mémoire : Avec les références F# vers C# en mémoire vous n'avez pas besoin de créer des projets C# faisant référence au code F# pour voir les modifications.

  • Prise en charge des injections de langage d'IntelliJ Platform : La prise en charge des injections de langage d'IntelliJ Platform permet d'utiliser différents langages frontend dans les littéraux F#, d'accéder aux bases de données, d'ouvrir des liens web ou des tickets, et bien plus.

  • Go to File Member : La nouvelle fenêtre contextuelle Go to File Member est désormais disponible pour F#, ce qui facilite l'affichage de la structure de fichiers et la navigation vers les membres à partir des types de base.

  • Mises à jour des modèles de cas d'union : JetBrains a apporté des améliorations qui vont vous faciliter la manipulation des modèles de cas d'union.

  • Génération de remplacements : JetBrains a corrigé de nombreux problèmes qui affectaient la précision de la génération de remplacements.

Plugins

  • Plugin Settings Sync : Pendant longtemps, les plugins IDE Settings Sync et Settings Repository ont coexisté et leurs fonctionnalités se recoupaient. JetBrains a finalement fusionné leurs fonctionnalités dans une seule solution : le nouveau plugin Settings Sync.

  • Prise en charge du protocole LSP pour le développement de plugins : Rider 2023.2 prend en charge l'API LSP pour le développement de plugins. Actuellement, la prise en charge de LSP comprend la mise en évidence des erreurs et des avertissements, des correctifs rapides, la saisie semi-automatique du code et la navigation vers les déclarations.

  • Feature Trainer pour Rider : Rider 2023.2 introduit Feature Trainer, un nouvel outil interactif conçu pour permettre aux utilisateurs, nouveaux comme expérimentés, de se familiariser avec les fonctionnalités et les workflows étendus qu'offre l'IDE.

Améliorations de l'accessibilité

L'inclusivité et l'accessibilité aux produits sont au cœur de la philosophie de JetBrains. Cette nouvelle version apporte plusieurs améliorations à l'accessibilité de Rider, afin que tous les utilisateurs, y compris les personnes aveugles ou malvoyantes, puissent bénéficier de tous les avantages du produit.

Divers

  • Prise en charge d'ARM32 pour le débogueur distant : En plus de la prise en charge d'ARM64, Rider 2023.2 introduit la prise en charge des outils de débogage distants chargés sur une machine distante fonctionnant sur ARM32, comme Raspberry Pi.

  • Migration du terminal vers ConPTY sous Windows : JetBrains Rider comporte un émulateur de terminal intégré qui fonctionne avec un shell de ligne de commande depuis l'IDE. Les versions précédentes de Rider dépendaient d'une bibliothèque WinPTY tierce, qui faisait office de couche d'émulation du terminal sous Windows. Pour Rider 2023.2, JetBrains utilise ConPTY, qui est fourni par le système d'exploitation, pour les versions de Windows qui le prennent en charge.

Nouveautés et téléchargement de Rider 2023.2