Nouveautés de ReSharper 2024.2

ReSharper 2024.2 apporte la prise en charge de la version Preview du SDK .NET 9, qui comprend des fonctionnalités de C# 13 comme l'implémentation d'interface ref struct, la nouvelle séquence d'échappement \e et la refactorisation de modificateur params. La prise en charge de C++ inclut maintenant des fonctionnalités de C++23, les informations sur la disposition des types dans des info-bulles et l'amélioration de la prise en charge des projets Unreal Engine. Cette version fournit également la saisie asynchrone pour de meilleures performances, des optimisations de l'AI Assistant grâce à des modèles de langage améliorés, des suggestions de code dans l'éditeur, une nouvelle fonctionnalité Explain with AI, et la première phase de localisation pour le chinois, le coréen et le japonais.

Télécharger

Essai gratuit de 30 jours disponible

Prise en charge de la version Preview du SDK .NET 9

ReSharper 2024.2 prend en charge la version Preview du SDK .NET 9, qui comprend des fonctionnalités de C# 13 comme les caractères d'échappement, les refactorisations du modificateur params et les interfaces ref struct.

Prise en charge de C#

Cette nouvelle version de ReSharper étend la prise en charge des fonctionnalités de C# 12, avec notamment les constructeurs principaux, les expressions de collection étendues et les actions contextuelles améliorées pour la création de tableaux et les conversions de types de collections. De plus, ReSharper 2024.2 apporte la prise en charge initiale de C# 13, en proposant l'implémentation de l'interface ref struct, la nouvelle séquence d'échappement \e et une refactorisation du modificateur params.

Cette mise à jour inclut également :

  • L'amélioration de l'analyse d'égalité pour les types struct.
  • L'inspection Extract common code pour réduire les duplications dans les constructions de branches.
  • Les aperçus de culture lors de la saisie semi-automatique du code du spécificateur de format ToString().
  • L'analyse des expressions de conversion pour remplacer les conversions fragiles de style C par des annotations de type explicites.

Consultez cet article de blog pour en savoir plus sur les nouveautés de Rider et de ReSharper 2024.2 concernant la prise en charge de C#.

Prise en charge de C++

Principales améliorations dans la prise en charge de C++ :

  • Prise en charge de fonctionnalités de C++23 supplémentaires, parmi lesquelles l'opérateur d'indice multidimensionnel, les directives de préprocesseur #elifdef et #elifndef, et l'attribut [[assume]].
  • Les info-bulles et la fenêtre contextuelle de documentation rapide fournissent maintenant des informations détaillées sur la disposition des types pour les classes et les champs de classes, notamment sur la taille, l'alignement, le décalage de mémoire et le remplissage.
  • Dans les projets Unreal Engine, ReSharper reconnaît également les traits de structs, ce qui garantit que vos structures disposent des méthodes requises et qu'elles peuvent être générées rapidement si ce n'est pas le cas. Une nouvelle inspection détecte les appels manquants pour les méthodes de classes de base.
  • Lorsque vous renommez un fichier, la refactorisation Rename propose de nouvelles options pour renommer les fichiers et types associés.
  • Les améliorations de l'analyse du code incluent la mise à jour de Clang-Tidy 18 et la prise en charge des pragmas IWYU.

En savoir plus sur les mises à jour concernant C++ : Nouveautés de ReSharper C++ 2024.2.

Localisation

ReSharper 2024.2 inaugure la première phase de localisation en chinois, coréen et japonais. Vous bénéficierez d'une interface utilisateur partiellement localisée, d'inspections de code, de fenêtres d'outils et de notifications. Pour localiser ReSharper, allez dans ReSharper Options | Environment | General | Localization | Interface language et choisissez l'option voulue dans la liste déroulante.

Vous pouvez aussi installer le plugin de localisation via Extension Manager. Vous pouvez consulter les instructions complètes ici.

Performances

Saisie asynchrone activée

La saisie asynchrone s'inscrit dans notre démarche d'amélioration continue des performances de ReSharper, en permettant notamment son exécution en dehors du processus de Visual Studio. ReSharper 2024.2 est la première version du produit à inclure ce changement important. Les tests que nous avons effectués en interne ont montré que l'activation de la saisie asynchrone améliore de façon notable la fluidité de l'expérience de saisie. Nous aimerions connaître votre avis sur cette fonctionnalité, alors n'hésitez pas à nous en faire part via notre outil de suivi.

AI Assistant

Mise à jour des modèles et de la collecte des informations contextuelles

Nous avons mis à niveau les anciens modèles GPT 3.5 et GPT 4 vers GPT-4o et Google Bison pour certaines tâches. De plus, nous avons mis à jour notre processus de collecte d'informations sur le contexte pour la saisie semi-automatique par IA et le chat par IA afin de pouvoir obtenir des résultats plus pertinents avec ce nouveau modèle.

Ask AI

Il n'est plus nécessaire d'ouvrir le chat lorsque vous souhaitez poser une question à l'IA. Il suffit d'appeler Ask AI pour poser votre question.

Suggestions et génération de code dans l'éditeur

JetBrains AI indique désormais les endroits où vous pouvez générer de la documentation XML ou implémenter des méthodes vides en un simple clic (ou en appuyant sur Alt+Entrée). Cela évite d'avoir à rechercher manuellement ces options dans la liste d'actions.

De plus, au lieu de vous rediriger vers le chat, l'IA répond directement dans l'éditeur. Vous pouvez facilement consulter et générer à nouveau ces réponses si besoin ou spécifier des informations supplémentaires à la place pour obtenir de meilleurs résultats.

Amélioration de l'interface/expérience utilisateur pour la saisie semi-automatique de code

Nous avons amélioré la présentation de nos suggestions par IA, ce qui permet de distinguer plus facilement les suggestions de complétion multilignes d'IA de ReSharper d'autres éléments. Vous pouvez aussi générer de nouveau les résultats en appuyant sur Maj+Tabulation.

Suggestions de noms par IA dans les refactorisations Rename et Extract Method

Nommer des variables et des méthodes peut être compliqué, en particulier dans des solutions volumineuses comportant de nombreux symboles ayant des noms similaires. Heureusement, l'IA suggère désormais les noms les mieux adaptés lorsque vous renommez une méthode.

Explain with AI pour le débogage et l'analyse dynamique de programme (DPA)

Il est désormais possible de demander à l'IA d'expliquer les exceptions rencontrées pendant la session de débogage sans quitter votre contexte actuel. Appuyez simplement sur le bouton situé à côté de l'exception pour obtenir l'explication dans le chat.

L'AI Assistant est également en mesure d'expliquer les problèmes relatifs à l'allocation de mémoire et les problèmes concernant les bases de données identifiés par l'analyse dynamique de programme (DPA). Lorsque la DPA identifie un problème, vous pouvez cliquer sur le bouton Explain with AI : l'IA, qui tient compte du code, analyse le contexte du problème, fournit une explication et suggère des correctifs. Actuellement, cela s'applique seulement aux problèmes de mémoire et de base de données.

dotMemory

dotUltimate

Amélioration de la recherche d'instances

Nous avons ajouté des options de filtrage à la vue Instances :

  • Recherche par valeur de chaîne : saisissez n'importe quelle valeur de chaîne dans le champ de filtre et dotMemory mettra en évidence les chaînes correspondantes. Cela facilite la recherche d'instances de chaînes spécifiques en fonction de leur contenu.
  • Prise en charge des expressions régulières pour les valeurs de chaînes : utilisez des expressions régulières pour des recherches plus approfondies. Par exemple, ^nAsso.{5,}ID$ permet de rechercher nAssociatedObjectID.nAssociatedObjectID.
  • Recherche par adresse d'objet : vous pouvez également rechercher des instances d'objets en fonction de leur adresse en mémoire. Cela permet de suivre directement des objets spécifiques.

Vous trouverez plus d'informations sur les améliorations apportées au profileur de dotMemory ici.

dotTrace

dotUltimate

La dernière mise à jour de l'outil de profilage des performances apporte :

  • De meilleures performances grâce à un traitement plus rapide des instantanés Timeline.
  • Un nouveau moteur de rendu dans dotTrace Viewer sur toutes les plateformes.
  • Une nouvelle fenêtre Options dans la version autonome pour macOS et Linux.
  • La correction des événements de noyau manquants dans les instantanés Timeline sous Windows.
  • Plusieurs améliorations mineures et correctifs de bugs.

Vous trouverez plus d'informations sur les améliorations apportées au profileur de dotTrace ici.

Décompilateur

Améliorations générales

  • Paramètres des lambdas : nous avons introduit la prise en charge de la décompilation des lambdas avec des paramètres optionnels et des tableaux de paramètres, afin d'améliorer la lisibilité et la précision du code décompilé.
  • Attributs des lambdas : la nouvelle version de l'outil permet de mieux traiter les attributs des expressions lambdas afin que toutes les métadonnées pertinentes soient prises en compte dans la sortie décompilée.
  • Assemblies protégées : vous avez désormais la possibilité de spécifier si vous souhaitez décompiler les assemblies protégées, ce qui permet un examen du code plus complet.

Détection de configuration de build

La fenêtre d'outils Assembly Explorer peut maintenant détecter et présenter la configuration du build des assemblies et ainsi fournir des informations plus claires sur le contexte de compilation de l'assembly.

Traitement des sources externes

  • PDB avec SrcSrv et SourceLink : le décompilateur prend maintenant en charge la navigation vers le code source depuis les fichiers PDB contenant à la fois SrcSrv et SourceLink.
  • Directives du préprocesseur : le décompilateur reconnaît désormais correctement les directives du préprocesseur (telles que NET6_0_OR_GREATER) du framework cible ou du PDB Portable de l'assembly associé, ce qui garantit une représentation rapide du code.
  • Action Open in Browser : vous pouvez désormais naviguer jusqu'au code source dans le référentiel pour les types ou jusqu'à un référentiel pour les paquets NuGet ou les assemblies.