Nouveautés de Rider 2024.3

Rider 2024.3 fournit la prise en charge de .NET 9, qui inclut les améliorations de C# 13 comme les collections params, les propriétés partial et l'aperçu du mot-clé field. Le concepteur Windows Forms est désormais disponible pour les projets .NET 6+, ainsi qu'une fonctionnalité de débogage avancée pour geler et dégeler les threads individuels. Les développeurs de jeux auront le plaisir de pouvoir disposer du débogage des consoles pour Unreal Engine, du débogage IL2CPP pour Unity et d'une meilleure prise en charge de Godot. Cette version étend également les fonctionnalités de l'AI Assistant, avec notamment les prompts d'IA dans l'éditeur et les modèles de chat personnalisables. Enfin, elle comporte des améliorations pour le nettoyage du code, les conventions de nommage et le développement à distance.

Principales mises à jour

Fenêtre d'outils Monitoring

Prise en charge de .NET 9

La dernière version de Rider apporte :

  • La prise en charge des modèles de projets du nouveau SDK.
  • La possibilité de créer, d'exécuter et de déboguer des projets ciblant le nouveau SDK.
  • La prise en charge des dernières fonctionnalités de C# 13, telles que les collections params, les propriétés partial, l'aperçu du mot clé <0>field, entre autres.

Apprenez-en plus sur la prise en charge améliorée de C# 13 dans Rider 2024.3 sur notre blog.

Windows Forms Designer for .NET projects .NET 6.0+

Le concepteur Windows Forms prend maintenant en charge les projets ciblant .NET 6.0 et ses versions ultérieures, ce qui vous permet de créer, de visualiser et de modifier l'interface utilisateur de vos applications Windows Forms. Cette expérience apporte quasiment les mêmes fonctionnalités que le concepteur Windows Forms classique pour .NET Framework.

Rappelez-vous que la plupart des contrôles DevExpress sont compatibles, alors que la prise en charge des contrôles Telerik et Infragistics reste limitée et que les applications Windows Forms VB.NET ne sont pas prises en charge.

Possibilité de geler et de dégeler des threads individuels pendant le débogage

Rider 2024.3 introduit la possibilité de geler et de dégeler des threads individuels pendant le débogage pour un contrôle plus précis sur les applications multithreads. La fonctionnalité vous permet de faire un clic droit sur un thread et de sélectionner Freeze pour suspendre son exécution sans que cela n'affecte le reste de l'application. Lorsque vous êtes prêt, vous pouvez à nouveau faire un clic droit et sélectionner Unfreeze pour reprendre l'exécution du thread. Cette fonctionnalité n'est disponible que pour les projets ciblant .NET et .NET Framework.

Exécuter et déboguer du code natif sur les consoles Développement de jeux Unreal Engine

Rider 2024.3 marque l'atteint une étape importante avec l'introduction de la prise en charge de l'exécution et du débogage de C++ sur les principales consoles ! Cela inclut les jeux écrits avec des moteurs personnalisés et Unreal Engine. La disponibilité se fait strictement sur demande et vous devez faire partie du programme de développement officiel de la console. Cliquez ici pour en savoir plus.

Autres mises à jour pour le développement de jeux

Expérience utilisateur

Colorisation des infobulles

Pour cette version, nous avons passé en revue la quasi-intégralité des messages d'erreurs, d'avertissements et d'informations pour C# et ajouté la colorisation du texte chaque fois que possible.

Environ 600 messages ont été mis à niveau pour inclure des info-bulles structurées pour faciliter la lecture et des extraits de code mis en évidence dans les mêmes couleurs que celles fournies dans l'éditeur.

Widget Run : lancer plusieurs configurations simultanément

Le widget Run actualisé permet de lancer plusieurs configurations simultanément en maintenant Ctrl et en cliquant sur l'icône de débogage. Il affiche également les commandes de toutes les configurations en cours, ce qui simplifie la gestion.

Augmentation de la limite du nombre d'onglets ouverts par défaut

La limite du nombre d'onglets ouverts par défaut dans l'éditeur est passée à 30, ce qui vous permet de conserver davantage d'onglets ouverts avant que l'IDE ne ferme les plus anciens. Vous pouvez ajuster cela dans Settings | Editor | General | Editor Tabs.

Interface utilisateur mise à jour pour le nouveau terminal

Nous avons mis à jour l'interface utilisateur du nouveau terminal avec un design plus compact, en réduisant les marges pour optimiser l'utilisation de votre écran. Les marges réduites permettent d'économiser de l'espace et vous offrent une meilleure visibilité lorsque vous travaillez avec des commandes, sans que cela n'affecte la lisibilité.

Prise en charge de C#

Mises à jour pour C# 13

Dans sa nouvelle version, Rider introduit la prise en charge des dernières fonctionnalités de C# 13, parmi lesquelles :

  • Nouvelles collections params : le mot-clé params a été étendu pour fonctionner avec différents types de collections, ce qui permet d'améliorer l'efficacité des signatures de méthodes sans allocations supplémentaires.
  • Propriétés partial : la prise en charge des propriétés partial a été ajoutée pour vous permettre de répartir les implémentations d'accesseurs de propriétés sur plusieurs fichiers, pour plus de flexibilité et d'organisation dans votre base de code.
  • Nouveau type lock : le nouveau type System.Threading.Lock a été introduit pour une synchronisation des threads plus efficace. Il améliore les performances par rapport à l'instruction lock traditionnelle.
  • Priorité de résolution de surcharge : un nouvel attribut vous permet d'avoir plus contrôle sur la résolution de la surcharge des méthodes et de définir quelle surcharge est appelée en priorité dans des cas complexes.
  • Mot-clé field : la prise en charge du mot-clé field (fonctionnalité preview) a été ajoutée. Cela donne un accès direct au champ de stockage des propriétés automatiques et simplifie la logique des propriétés.

Learn all about the support of C#13 features in Rider and ReSharper on our blog.

Styles de code et nettoyage

Nettoyage du code

Dans Rider 2024.3, le nettoyage du code a été retravaillé afin de fournir de meilleures performances. Il s'appuie maintenant sur le même moteur que les correctifs rapides de portée, ce qui assure une résolution complète des problèmes et améliore la précision de l'analyseur. Un prétraitement parallèle a également été ajouté pour optimiser le traitement des fichiers.

Vous pouvez désormais sélectionner le profil Code Cleanup par fichier ou ignorer le nettoyage sur des fichiers spécifiques.

Formatage du code

De nouvelles options de formatage vous offrent encore plus de flexibilité :

  • Nouvelle option pour contrôler le retour à la ligne autour d'un opérateur égal =.
  • Nouvelle option Indent ‘break’ from ‘case‘.
  • Nouvelle option Treat ‘case’ statements with ‘break’ as simple.

Styles de nommage

Nous avons ajouté plusieurs nouvelles options pour ajuster les règles de nommage plus précisément.

  • Les fonctions locales sont désormais proposées avec deux options : Local functions with ‘async’ et Task-returning local functions (not ‘async’).
  • Les méthodes disposent d'une nouvelle option Task-returning method (not ‘async’) pour prendre en charge les méthodes qui ont un suffixe asyncet ne sont pas marquées avec le modificateur async, mais renvoient un type comme Task. Cela s'avère utile lorsque vous déclarez une méthode dans une interface pour laquelle vous n'êtes pas autorisé à utiliser un modificateur async, mais qui renverra un type Task dans l'implémentation.

Commentaires de code

Prise en charge des commentaires TODO multilignes

Cette version prend maintenant en charge les commentaires TODO multilignes, ce qui permet de traiter le texte en retrait sur les lignes suivantes comme faisant partie du même élément TODO. Cette amélioration facilite le regroupement des notes et des tâches associées dans votre base de code. Vous pouvez désormais ajouter du contexte à vos TODO sur plusieurs lignes, afin de gagner en lisibilité et en organisation.

Prise en charge de F#

Nous avons mis à jour le service du compilateur F# pour vous permettre de bénéficier de toutes les fonctionnalités récentes du langage et des améliorations pour les outils de l'éditeur.

Suggestions de types

La prise en charge de F# affiche désormais des indications de type inféré pour les schémas et les membres. Il est facile de voir les types locaux de valeurs grâce à la nouvelle implémentation de Push-to-Hint.

Édition du code

La saisie semi-automatique du code peut désormais importer des fonctions, des valeurs, des cas d'union et des schémas actifs. Un nouveau correctif rapide permet en outre de mettre à jour le code collé.

Vous pouvez convertir une expression de fonction en paramètre et le faire correspondre à l'aide d'une nouvelle action contextuelle.

Interopérabilité avec C#

Nous avons considérablement amélioré les performances lors de l'analyse des projets C# référencés et corrigé diverses erreurs de faux positifs.

D'autres modifications, correctifs et nouvelles fonctionnalités sont répertoriés sur la page GitHub.

Contrôle de version

Branch name on the Welcome screen

L'écran Welcome affiche désormais le nom de la branche pour vous aider à rester organisé lorsque vous gérez plusieurs versions de projet et vous permettre de basculer facilement entre les répertoires de travail.

Option de désactivation des vérifications préalables au commit en arrière-plan

Vous pouvez désormais gérer les vérifications en arrière-plan pendant le processus de commit grâce à la nouvelle option Run advanced checks after a commit is done sous Settings | Version Control | Commit. Ce paramètre vous permet de décider si les tests et les inspections doivent être exécutés après l’envoi d’un commit. Si vous souhaitez que ces vérifications soient effectuées avant le commit, il vous suffit de le désactiver.

Mises à jour de Find in Files

La fonctionnalité Find in Files a été améliorée avec une nouvelle portée de recherche, Project Files Excluding Git-Ignored. Cette option exclut de vos résultats de recherche tous les fichiers ignorés dans les fichiers .gitignore, pour vous aider à vous focaliser uniquement sur le code pertinent lors de vos recherches dans votre projet.

Développement à distance

Le développement à distance de Rider est officiellement sorti de la version bêta !

Après une dernière série de perfectionnements pendant la phase bêta, durant laquelle nous avons prêté une attention particulière à la stabilité de la saisie, la fonctionnalité de développement à distance de Rider est désormais entièrement équipée pour gérer tous les workflows de développement essentiels sur lesquels vous comptez.

De l'édition de code au contrôle de version, en passant par le débogage, tout fonctionne désormais de façon quasiment aussi fluide qu'avec une instance locale, ce qui améliore considérablement l'expérience avec les environnements distants.

Consultez notre blog pour en savoir plus sur les workflows pris en charge.

Développement de jeux

Unreal Engine

Cette version apporte le débogage automatique des processus enfants sous Windows. Tous les processus créés lors d'une session de débogage rejoindront la session et les points d'arrêt du processus enfant seront atteints.

Il est également possible de configurer des règles pour décider quels processus enfants déboguer et lesquels ignorer.

In addition to the exciting news about Rider’s support for debugging on consoles, this release also introduces support for the Verse programming language, new code insight features, and integration with Live++ for the hot-reload of C++ applications.

Pour en savoir plus sur les nouvelles fonctionnalités d'analyse du code, jetez un œil aux Nouveautés de ReSharper C++.

Unity

Rider 2024.3 améliore votre expérience de débogage avec les builds IL2CPP, en offrant les mêmes fonctionnalités qu'avec Mono. Vous verrez donc les nœuds Active Scene et this.gameObject dans le débogueur, ainsi que Children et Components pour les instances GameObject. Cette version corrige également plusieurs problèmes concernant la fenêtre Immediate, la vue Collection et les builds IL2CPP.

Dorénavant, les fichiers sources s'ouvriront dans Rider lorsque vous double-cliquerez sur un élément dans une pile d'appels du profileur Unity, et Rider filtre mieux le contenu inutile lors de la recherche de fichiers dans votre projet.

Godot

Cette version corrige un bug important avec la prise en charge du rechargement à chaud avec C# et Godot. Rider appliquera maintenant toutes les modifications apportées à votre code C# à votre application alors même que le jeu est toujours en cours d'exécution.

Rider est également prêt pour les mises à jour du débogage GDScript prévues dans Godot 4.4, qui fournissent une vue beaucoup plus riche des propriétés des objets par rapport à celle qui est disponible dans les versions antérieures de Godot.

Développement Web

Résultats de recherche plus propres pour les répertoires

Rider exclut désormais les résultats node_modules par défaut lors de l'utilisation deFind in Files dans les répertoires de projets, ce qui réduit l'encombrement dû aux fichiers non pertinents. Vous pouvez restaurer le comportement précédent en activant l'option Search in library files when “Directory” is selected in Find in Files dans Settings | Advanced Settings.

Amélioration de la navigation et du renommage des composants de framework

Nous avons amélioré les indications dans l'éditeur pour les composants Vue, Svelte et Astro. L'action Show component usages recherche désormais les utilisations dans les importations et les modèles de balisage. Nous avons également ajouté un filtre Show Component Usages pour exclure les utilisations des composants lors de la recherche de références de fichiers standard. La refactorisation Rename a également été dotée d’une option permettant d'inclure les utilisations lors du renommage d'un fichier de composant.

Aperçu des couleurs pour les classes Tailwind CSS

L'aperçu des couleurs pour les classes Tailwind CSS s'affiche maintenant inline dans l'éditeur, ce qui permet de distinguer plus facilement les couleurs. Nous avons ajouté la prise en charge de la méthode textDocument/documentColor du Language Server Protocol (LSP), de sorte que tous les plugins basés sur LSP offrent désormais automatiquement cette fonctionnalité.

Pour des informations plus détaillées, consultez la page Nouveautés de WebStorm.

Travailler avec des bases de données

Texte vers SQL : affichage d'un diff dans l'éditeur pour les résultats générés par l'IA

Nous avons amélioré l'expérience de travail avec l'AI Assistant dans l'éditeur. Désormais, lorsque vous demandez à l'AI Assistant de faire quelque chose avec un morceau de code, l'éditeur affiche un diff contenant le code d'origine et le code généré. Les suggestions de l'AI Assistant sont mises en évidence avec une couleur différente et signalées par le bouton Revert dans la gouttière. Vous pouvez également modifier vous-même la requête résultante dans la même zone. Vos modifications sont mises en évidence de la même façon. Par exemple, vous pouvez demander à l’AI Assistant de récupérer plus de données avec une requête, puis d'ajouter une clause ORDER BY au résultat généré.

Traitement des erreurs SQL par l'AI Assistant

Nous avons implémenté des actions permettant de gérer les erreurs d'exécution des requêtes SQL avec l'AI Assistant. Elles sont accessibles dans la zone des messages d'erreurs. Explain with AI ouvre le chat avec l'IA sur un prompt envoyé automatiquement et la réponse de l'AI Assistant proposant une explication de l'erreur. L'action Fix with AI génère un correctif pour l'erreur d'exécution de la requête dans l'éditeur.

Pour des informations plus détaillées, consultez la page Nouveautés de DataGrip.

AI Assistant

Gestion du contexte améliorée

Avec cette mise à jour, nous avons amélioré la gestion du contexte que l’AI Assistant prend en compte pour faire ses suggestions en la rendant plus transparente et intuitive. Une interface utilisateur remaniée vous permet d'afficher et de gérer chaque élément inclus en tant que contexte, pour une visibilité et un contrôle complets. Le fichier ouvert et tout le code sélectionné qu'il contient sont désormais automatiquement ajoutés au contexte, et vous pouvez facilement inclure ou supprimer des fichiers selon vos besoins, en personnalisant le contexte pour l'adapter à votre workflow. Vous pouvez en outre joindre des instructions à l'échelle du projet afin que vos instructions concernant les réponses de l'AI Assistant soient respectées dans toute votre base de code.

Possibilité de choisir un fournisseur de modèle de chat

Vous pouvez à présent sélectionner votre modèle de chat d’IA préféré, qu'il s'agisse de Google Gemini, d'OpenAI ou de modèles locaux sur votre ordinateur. Cette sélection étendue vous permet de personnaliser les réponses du chat par IA en fonction de votre workflow et de bénéficier d'une expérience plus flexible et adaptée.

Décompilateur

Code IL pour le manifeste d'assembly

La fenêtre d'outil IL Viewer fournit désormais du code IL pour le manifeste d'assembly, notamment :

  • Informations sur l'assembly et le module telles que le nom, les attributs personnalisés, etc.
  • Assemblies et modules référencés.
  • Types transférés.
  • Une liste de fichiers et de ressources.

Ce code IL s'affiche lorsque le curseur dans l'éditeur de texte se trouve sur un attribut d'assembly ou de module ou quelque part dans un fichier <AssemblyName>.cs pour les assemblies externes.

Prise en charge des constructeurs principaux

Lorsque vous travaillez avec des classes qui déclarent un constructeur principal, le décompilateur affiche maintenant le constructeur et ses paramètres correctement, ce qui vous donne une vue complète sur la façon dont les objets sont instanciés directement à partir du code décompilé.