La version 2024.1 de Rider fournit une fonctionnalité de suivi des performances de vos applications et de collecte des métriques clés, ajoute la fonction lignes de code épinglées pour mieux comprendre où vous en êtes dans votre code et le parcourir plus rapidement, et met à jour la boîte de dialogue New Project pour accéler et simplifier la configuration de projet. Cette mise à jour vous apporte également une aide supplémentaire pendant le débogage via la visualisation des collections et l'affichage de l'intervalle de temps entre deux points d'arrêt. Les développeurs de jeux disposent quant à eux d'un nouvel ensemble de fonctionnalités pour la très appréciée ressource Unity Odin Inspector et de la prise en charge du framework d'interface utilisateur Slate d'Unreal Engine.
Rider 2024.1 inaugure la fenêtre d'outils Monitoring, qui vous permet de suivre les performances de vos applications .NET et de collecter des métriques clés en arrière-plan pendant l'exécution ou le débogage.
Les lignes épinglées dans l'éditeur ont pour but de simplifier l'utilisation de fichiers volumineux et l'exploration de nouvelles bases de codes. Cette fonctionnalité conserve les éléments architecturaux clés, tels que les débuts des classes ou méthodes, épinglés dans la partie supérieure de l'éditeur pendant le défilement de la fenêtre. Ainsi, les portées restent toujours visibles et vous pouvez rapidement naviguer dans le code en cliquant sur l'une de ces lignes épinglées.
Examinez des collections, telles que des tableaux, des listes, des dictionnaires et d'autres types énumérables, afin de mieux comprendre l'état des données de votre programme pendant le débogage et d'identifier les éventuels problèmes liés au traitement des données.
Nous avons remanié la boîte de dialogue New Project afin de simplifier la configuration des nouveaux projets. Elle offre une prise en charge complète des configurations de projet propres à .NET et des paramètres de modèles personnalisés. Vous pouvez aussi installer le SDK cible et la charge de travail MAUI appropriée directement depuis la boîte de dialogue.
Nous avons complètement remanié la boîte de dialogue New Project pour réduire la charge cognitive lors de la configuration des nouveaux projets. Voici les nouveautés qui en résultent :
Auparavant, il était possible de faire un zoom avant ou arrière dans l'ensemble de l'IDE pour redimensionner simultanément tous les éléments de l'interface utilisateur,. mais dans une limite comprise entre 100 et 200 %. Désormais, il est possible d'aller jusqu'à 70 %, ce qui vous donne plus de flexibilité.
La nouvelle version de la fenêtre d'outils Terminala fait l'objet d'améliorations visuelles et fonctionnelles, afin de rendre les tâches basées sur un terminal encore plus simples à effectuer. Cette mise à jour améliore l'aspect visuel de l'outil et élargit ses fonctionnalités.
Vous pouvez activer le nouveau terminal dans Settings/Preferences | Tools | Terminal | Enable New Terminal.
Pour plus d'informations sur le nouveau terminal, consultez cet article de blog de l'équipe IntelliJ IDEA.
Dorénavant, vous recevrez des suggestions pour convertir davantage de constructions dans votre code source en expressions de collection de C# 12, telles qu'un tableau vide ou la déclaration et l'initialisation d'un ImmutableArray
.
Nous avons ajouté l'inspection Possible 'System.InvalidOperationException: Collection was modified', qui vous prévient lorsqu'une collection est modifiée lors de l'itération dans les boucles foreach
, cette modification étant susceptible de provoquer une exception lors de l'exécution. Cette analyse tient compte des cas de sortie de la boucle après la modification d'une collection. Par conséquent, ces situations ne déclenchent pas l'avertissement. L'inspection s'accompagne d'un correctif rapide pour vous aider à résoudre le problème instantanément.
Generate | Formatting Members vous permet de générer automatiquement du code pour remplacer la méthode ToString()
et renvoyer une chaîne significative pour vos types. Avec la version 2024.1, cette fonctionnalité prend en charge davantage de types, notamment ISpanFormattable
, IUtf8SpanFormattable
et IFormattable
.
[MustDisposeResource]
: l'analyse du code C# permet désormais de s'assurer que les ressources renvoyées par les méthodes asynchrones, y compris celles qui sont encapsulées dans Task<IDisposable>
et ValueTask<IDisposable>
, soient correctement éliminées, afin d'éviter de supprimer accidentellement la tâche elle-même. .ConfigureAwait(...)
, .AsTask()
ou .Result
. Vous trouverez ici les principales améliorations apportées à la refactorisation Change Signature :
Deconstruct
. Vous pouvez ajouter, supprimer, réorganiser et renommer des paramètres, et ces modifications seront appliquées dans la déclaration de méthode et dans ses utilisations. List
, par exemple, vous pouvez donc utiliser la complétion de code pour sélectionner facilement le type souhaité, tel que int
. System.Collections.Generic.List<System.Int16>
dans la boîte de dialogue Change Signature, il sera automatiquement raccourci en List<short>
dans le code résultant. in
et ref readonly
et les types record
.Dans cette version, la refactorisation Make Static prend en charge les paramètres des constructeurs primaires. Ils apparaissent dans la liste Introduce parameters et sont signalés par une icône distincte pour vous aider à les reconnaître plus facilement. Cette refactorisation est également disponible pour les fonctions locales.
Nous travaillons sur le mode d'utilisation intensive des ressources en vue d'augmenter la vitesse de l'analyse à l'échelle de la solution grâce une utilisation plus efficace du parallélisme du processeur. Nous avons amélioré le profil d'affectation de la mémoire des activités d'analyse du code afin de réduire le temps de récupération de mémoire. N'hésitez pas à activer ce mode et à nous faire part de votre retour d'expérience.
protobuf-net
L'analyse du code prend désormais en charge l'attribut ProtoContract
et l'énumération ImplicitFields
inclus dans la bibliothèque protobuf-net
. Ces deux éléments permettent de marquer les membres utilisés implicitement pour la sérialisation. Par conséquent, ces membres ne sont plus signalés par les avertissements unused members.
La génération de substitutions est désormais disponible dans les expressions d'objets via de nouveaux correctifs rapides pour les membres manquants, la saisie semi-automatique du code et la refactorisation Generate.
Vous pouvez également voir des cas d'unions lors de la recherche d'utilisations d'unions. Cela permet de comprendre plus facilement comment les instances de type sont créées et comment les modèles correspondent.
Nous avons ajouté le modèle postfix new
qui crée des instances de types d'enregistrements et des expressions d'objets pour les classes et les interfaces.
La prise en charge des lignes épinglées a été implémentée pour F#n ce qui permet de voir le contexte plus facilement lorsqu'on travaille avec des types et des fonctions plus longs.
Des correctifs rapides et des actions de contexte ont été ajoutés pour la prise en charge de F#. Vous pouvez en apprendre plus sur ces mises à jour dans les notes de version complètes sur GitHub.
Dans le sillage de ReSharper, Rider est maintenant lui aussi doté d'un correcteur orthographique et grammatical optimisé. Le nouveau correcteur orthographique prend en charge plus de 20 langues et détecte les erreurs de langage naturel dans les langages de programmation pris en charge par Rider (C#, C++, VB.NET), les langages de balisage (HTML, XML, XAML) et les commentaires.
La visualisation des collections dans Rider 2024.1 fournit des représentations graphiques des collections (tableaux, listes, dictionnaires et autres types énumérables) dans lesquelles vous pouvez étendre et réduire les éléments, afficher des valeurs individuelles et naviguer facilement dans la structure des données. Elle permet de comprendre l'état des données de votre programme durant le débogage et de diagnostiquer les problèmes liés à la collection, à la manipulation ou au traitement des données.
Être en mesure d'évaluer le temps nécessaire au débogueur pour exécuter le code entre deux points d'arrêt peut être extrêmement utile pendant le débogage. Si le temps d'exécution de chaque étape est excessivement long, il est possible que cela soit dû à des problèmes de performances dans votre code. Lors du débogage d'une application avec Rider, vous verrez désormais une indication inline du temps écoulé entre le dernier point d'arrêt et le point d'arrêt actuel.
À compter de cette mise à niveau, Rider vous permet de configurer plusieurs points d'arrêt sur la même ligne de code si elle contient plusieurs instructions. Vous pouvez définir les points d'arrêt soit en utilisant les indications inline pertinentes, soit via un raccourci clavier (Ctrl + F8).
À partir de la version 2024.1, l'option Skip to cursor fonctionne de la même façon que dans IntelliJ IDEA. La nouvelle option Run to Cursor intégrée permet de naviguer rapidement vers une ligne de code spécifique pendant le débogage. Une fois votre programme suspendu, vous pouvez survoler la ligne de code sur laquelle vous souhaitez poursuivre l'exécution. Vous pouvez ensuite utiliser la fenêtre contextuelle Run to Cursor pour exécuter votre code jusqu'à ce qu'il atteigne la ligne où le curseur est situé.
Le rechargement à chaud est désormais disponible pour l'exécution et le débogage des applications Blazor WebAssembly (WASM). Le rechargement à chaud fonctionne pour les fichiers .cs
, .razor
et .css
(ce qui inclut les fichiers .razor.css
avec portée).
Cette fonctionnalité est activée par défaut. Vous pouvez la configurer dans Settings/Preferences | Build, Execution, Deployment | Hot Reload.
Les vidages de processus jouent un rôle essentiel dans le débogage car ils permettent d'analyser l'état d'un programme lorsqu'une erreur se produit, même si le problème n'est pas facilement reproductible. Auparavant, Rider était uniquement capable de traiter les core dumps en C++. Désormais, l'IDE permet également d'importer des dumps pour les processus .NET.
Pour importer un fichier de vidage de processus, allez dans Run | Debug Core Dump ou faites simplement glisser le fichier de vidage sur l'éditeur.
Le nouveau bouton Explain with AI s'affiche près d'une exception ou d'un message d'erreur envoyé pour une unité de test ou un build ayant échoué, ou au cours d'une session de débogage.
Lorsque vous renommez une variable locale, l'IA vous fournit des suggestions dans la fenêtre contextuelle de saisie semi-automatique du code.
Veuillez noter que dans la version 2024.1, l'AI Assistant est dissocié de l'IDE et maintenant disponible en tant que plugin séparé. Ce changement est motivé par notre volonté d'offrir aux utilisateurs davantage de flexibilité concernant l'utilisation des technologies basées sur l'IA et de leur permettre de faire leur choix en fonction de leurs préférences, de leurs besoins et des contraintes liées à leur environnement de travail. L'utilisation de l'AI Assistant requiert toujours un abonnement actif au service JetBrains AI.
Principales améliorations de la prise en charge de C++ :
La prise en charge de C++ par Rider est assurée par ReSharper C++. Consultez la page Nouveautés de ReSharper C++ 2024.1 pour en savoir plus.
Nous avons le plaisir d'ajouter la prise en charge des Blueprints à la pile d'appels du débogueur. Au lieu d'afficher une adresse mémoire anonyme dans la pile d'appels, Rider affiche désormais des informations sur l'appel Blueprint, intégrées à votre code C++ existant. Pensez à faire la mise à jour vers la dernière version du plugin RiderLink !
Cette version ajoute la prise en charge du framework d'interface utilisateur Slate d'Unreal Engine, permettant à Rider d'utiliser les commandes Go to Definition et Find Usages, ainsi que la refactorisation Rename pour renommer les symboles déclarés par les macros Slate.
Rider formate désormais correctement le code DSL Slate, que ce soit lorsqu'il est appelé directement en tant qu'action de reformatage, ou en cours de saisie.
L'intégration intelligente de Rider avec les fonctionnalités Blueprint se poursuit avec la prise en charge de l'ajout de redirections de code lorsque vous renommez une instance UENUM
, ainsi que la saisie semi-automatique des chemins de ressource pour les noms de ressource dans le code C++.
Nous continuons de travailler sur la prise en charge de Perforce, avec quelques améliorations pratiques de la qualité de vie pour simplifier la connexion en fin de session et placer les fichiers dans la bonne liste de changement au cours d'une refactorisation Rename.
Nous avons également corrigé le problème provenant d'UnrealBuildTool qui entraînait parfois la recréation du build pour un projet créé précédemment dans Visual Studio. Cela améliore considérablement l'expérience d'utilisation des deux IDE. Ce correctif est dans Unreal Engine 5.4 et toutes les versions de Rider.
Nous vous invitons à consulter toutes les modifications en C++ apportées au moteur ReSharper C++.
Nous avons le plaisir d'annoncer que nous travaillons avec nos amis de Sirenix sur la prise en charge d'une ressource très prisée de Unity, Odin Inspector. Rider reconnaît et met en évidence les champs et les propriétés sérialisés par Odin Inspector, assure la saisie semi-automatique et les inspections pour les noms de groupe dans les attributs de disposition et affiche des aperçus de la classe GUIColor
d'Odin. Il reconnaît également les attributs de plage d'Odin et utilise ces valeurs pour l'analyse de valeur des entiers de Rider, afin de vous prévenir si une valeur est anormale.
Rider 2024.1 s'appuie sur la prise en charge des mots-clés de shader introduite depuis la version 2023.3. Vous pouvez activer ou désactiver différents mots-clés lors de la modification de vos fichiers shader, ce qui en revanche active et désactive la mise en évidence et l'analyse du code dans les différentes branches du préprocesseur. Cette version introduit la prise en charge des mots-clés de shader implicites, des mots-clés locaux propres à une phase, ainsi que des directives de préprocesseur portant le suffixe _KEYWORD_DEFINED
.
Cette version actualise la façon dont Rider met en évidence les traitements imprévus des comparaisons d'égalité null
par Unity lors de la vérification de la durée de vie de l'objet de jeu sous-jacent. Au lieu de renvoyer un avertissement si une vérification C# null
moderne ignore la vérification de la durée de vie, Rider met à présent en évidence l'utilisation de la comparaison null
pour procéder à cette vérification.
Nous allons voir cela plus en détail dans un prochain article de blog.
Le débogage est amélioré via le renforcement de la prise en charge spécifique de DOTS par Rider, avec notamment l'ajout d'un nœud enfant Entity
lors de l'examen d'une instance de IJobEntity
dans le volet Watches. Les points de pause ont été également mis à jour pour fonctionner avec les systèmes DOTS. Le visualiseur de valeur de débogage de texture a fait l'objet de plusieurs correctifs, et le nouveau visualiseur de collections facilitera les collections d'objets de jeu.
Il y a également eu des améliorations de performance dans l'analyse des ressources, des correctifs pour identifier les champs sérialisés et beaucoup d'autres correctifs et mises à jour plus ciblés. Vous trouverez plus d'information dans le journal des modifications.
Nous poursuivons la prise en charge de Godot avec davantage de mises à jour du plugin facultatif que vous pouvez installer depuis l'onglet Plugins dans les paramètres. Les modifications récentes incluent :
.gd
, .tscn
, .tres
, .godot
et une meilleure mise en évidence de .gdshader
. launchSettings.json
(JetBrains/godot-support#125). @addTagHelper
et @removeTagHelper
Rider peut à présent résoudre les références pour les noms d'assembly spécifiés dans les directives @addTagHelper
et @removeTagHelper
dans vos vues Razor. Ainsi, vous bénéficiez de la saisie semi-automatique du code, de la capacité de recherche des utilisations et de la simplicité de la navigation dans le code.
De plus, Rider met en évidence les noms d'assembly non résolus sous forme d'avertissements, ce qui vous permet de les reconnaître facilement dans vos vues Razor.
Vous pouvez désormais générer des fichiers supplémentaires, tels que .razor.cs
, .razor.css
, .razor.js
lors de la génération d'un modèle de fichier Blazor Component.
Rider 2024.1 inaugure plusieurs nouveaux correctifs rapides pour React qui vous permettent de créer des propriétés et des états instantanément. Vous pouvez appliquer ces correctifs à l'aide du raccourci Alt+Entrée.
Pour en savoir plus sur les améliorations apportées au développement web, veuillez consulter cette page.
Cette version introduit des mises à jour de la prise en charge du système de contrôle de version dans Rider, dont :
Vous trouverez plus d'informations sur les modifications ici.
Voici quelques-unes des améliorations les plus notables concernant l'utilisation des bases de données dans Rider 2024.1 :
INSERTS
sur plusieurs lignes.GROUP BY
.Pour plus d'informations sur les améliorations pour le travail avec les bases de données, consultez cette page.
Le SDK .NET 8 a introduit .NET Aspire : une nouvelle approche des problèmes complexes de création d'applications distribuées dans la pile .NET. En réponse à cette innovation, nous offrons un nouvel outil intégré : le plugin .NET Aspire pour Rider.
Ce plugin est disponible pour Rider 2024.1 et peut être téléchargé directement depuis la Marketplace JetBrains ou via Settings/Preferences | Plugins.
Vous trouverez plus d'informations sur .NET Aspire et le nouveau plugin dans cet article de blog.
L'outil de profilage intégré de dotMemory prend désormais en charge le FOH (Frozen Object Heap), une fonctionnalité introduite pour la première fois avec le SDK .NET 6 dans le cadre de l'amélioration des performances de nettoyage de la mémoire.
Le FOH alloue une zone de mémoire dédiée aux objets immuables. Ces objets ne sont plus modifiés après leur allocation et ne sont pas affectés par le nettoyage de la mémoire. La prise en charge de cette technologie permet à dotMemory d'effectuer une analyse plus détaillée de la mémoire utilisée par les objets immuables dans le FOH, ce qui booste l'optimisation de l'utilisation de la mémoire.
Les profileurs dotTrace et dotMemory intégrés prennent désormais en charge MAUI et les applications .NET sur macOS.
Frameworks cibles pris en charge :
net8.0-windows
, net7.0-windows
.net8.0-maccatalyst
, net7.0-maccatalyst
.net8.0-macos
, net7.0-macos
.Cliquez ici pour plus d'informations sur les modes de profilage disponibles.
Le nouveau plugin Azure Toolkit pour Rider est un projet open-source qui aide les développeurs .NET à créer, développer, configurer, tester, gérer et déployer facilement des applications web haute disponibilité et évolutives sur Azure.
Ce plugin peut être téléchargé et installé dans JetBrains Rider et est disponible depuis la Marketplace JetBrains.
Nous avons amélioré la prise en charge des GitHub Actions dans cette version. Notre objectif de développement est d'enrichir vos workflows de CI/CD en offrant davantage d'efficacité et des fonctionnalités intelligentes spécialement conçues pour les GitHub Actions.
Voici la liste des principales améliorations :
action.yml
.Pour plus d'informations, consultez cet article sur le blog d'IntelliJ IDEA.
Les diagrammes des dépendances de type introduits dans la version 2023.3 ont fait l'objet d'une mise à niveau fonctionnelle offrant de nouvelles possibilités de configuration des diagrammes, à savoir :
Pour découvrir plus de solutions de génération de diagrammes des dépendances de type pour vos applications, consultez cet article de blog.
La fenêtre Assembly Explorer de Rider prend désormais en charge le format de package WebCIL pour WebAssemblies.
Cette prise en charge couvre :
.wasm
dans la fenêtre Assembly Explorer.