Nouveautés de ReSharper 2025.1

ReSharper 2025.1 offre une prise en charge initiale des fonctionnalités en préversion de .NET 10 et C# 14. Cette version apporte également de nouvelles inspections ciblant les pièges courants de C#, ainsi que plusieurs améliorations de qualité de vie. Les performances ont été considérablement améliorées avec un système remanié d'internement de chaînes et une amélioration de la prise en charge des Tag Helpers Razor et des composants Blazor. De plus, cette version inaugure l'intégration de dotMemory dans Visual Studio et introduit le nouveau plugin Qodana Team Code Quality pour une meilleure intégration des pipelines de CI/CD.

Prise en charge de C#

Prise en charge de .NET 10 Preview et C# 14

ReSharper 2025.1 offre une prise en charge initiale des fonctionnalités en préversion de .NET 10 et C# 14.

nameof pour les types génériques non liés

Auparavant, l'utilisation de nameof nécessitait de spécifier tous les arguments de type, ce qui entraînait une verbosité inutile. C# 14 permet d'utiliser nameof(List<>) sans énumérer explicitement les arguments de type. ReSharper détecte désormais les arguments de type générique redondants dans les expressions nameof et offre un correctif rapide pour les simplifier.

Conversions Span<T> de premier ordre

C# 14 introduit de nouvelles conversions implicites entre ReadOnlySpan<T>, Span<T> et T[], rendant le code basé sur l'utilisation de span plus intuitif. ReSharper prend désormais entièrement en charge ces règles de conversion, vous aidant à écrire un code C# moderne et efficace.

Modificateurs pour les paramètres de lambda simples

Avec C# 14, vous pouvez désormais utiliser des modificateurs de paramètres comme ref, out, in et scoped dans les expressions lambda sans avoir besoin de types de paramètres explicites. ReSharper propose un correctif rapide pour supprimer les spécifications de type redondantes.

Découvrez toutes les améliorations apportées à la prise en charge du langage C# dans ReSharper et Rider sur notre blog.

En plus de la prise en charge des fonctionnalités C# 14, cette version inclut aussi de nouvelles inspections ciblant des lacunes et inefficacités connues des versions de C#.

Nouvelle action contextuelle de conversion des interpolations en concaténations

Une nouvelle action contextuelle permet à présent de convertir une interpolation de chaîne en concaténation. ReSharper prend en charge depuis longtemps la conversion des concaténations de chaîne "Id = " + someId en interpolation $"Id = {someId}" ou string.Format("Id = {0}", someId), mais cette mise à jour complète le cycle en rendant possible la transformation inverse, ce qui vous donne plus de flexibilité pour structurer les expressions de type chaîne.

Code dupliqué redondant

ReSharper détecte et met en évidence encore plus de schémas de duplication de code apparaissant dans des constructions conditionnelles, telles que if et switch, et offre des suggestions de refactorisation pour produire un code plus concis et facile à maintenir.

Utilisation probablement erronée de CancellationToken

ReSharper détecte désormais les cas où un CancellationToken au niveau de la méthode est utilisé par erreur à la place d'un jeton local. Il offre un correctif rapide permettant de remplacer le jeton incorrect ou de fusionner plusieurs jetons en utilisant CancellationTokenSource.CreateLinkedTokenSource().

Utilisation de nameof pour référencer le nom du membre d'énumération

L'appel de .ToString() sur les membres d'énumération risque d'entraîner une surcharge d'exécution inutile. ReSharper propose désormais de le remplacer par nameof(SomeEnum.Member), ce qui améliore les performances et la clarté.

Suggestions pour les noms des composants de tuple

ReSharper 2025.1 suggère des noms de composant tuple explicites à la place des noms ItemN génériques, ce qui rend votre code plus facile à lire et permet de générer automatiquement sa documentation.

Inspection Inexact stream reads

ReSharper vous avertit lorsque les méthodes Stream.Read() et ReadAsync() sont utilisées sans vérification de leurs valeurs de retour, ce qui risque de déboucher sur des lectures de données incomplètes. Il suggère de les remplacer par .ReadExactly() pour garantir l'exactitude.

Avertissement de modification dans l'inspection Debug.Assert

Les appels Debug.Assert sont supprimés dans les builds RELEASE. Par conséquent, ReSharper signale les assertions qui modifient l'état et risquent de déboucher sur un comportement inattendu dans le code de production.

Travailler avec des bases de données

Prise en charge de SQL et NoSQL par ReSharper 2025.1.3 dotUltimate

ReSharper 2025.1.3 introduit la prise en charge de langages de requête pour améliorer votre expérience de programmation SQL et NoSQL dans Visual Studio. Bénéficiez d'une analyse intelligente du code, de la saisie semi-automatique et de correctifs rapides pour vos requêtes dans tous les principaux dialectes. Cliquez sur le lien ci-dessous pour plus de détails sur la nouvelle fonctionnalité prise en charge et la licence correspondante.

En savoir plus

Prise en charge de C++

ReSharper 2025.1 inclut plusieurs améliorations à la prise en charge de C++ :

  • Introduction de la refactorisation Inline Macro.
  • Prise en charge de plusieurs nouvelles extensions de langage GNU.
  • Optimisations de l'utilisation de la mémoire dans les projets Unreal Engine contenant un grand nombre de ressources Blueprint.
  • Clang-Tidy 20 inclus et prise en charge de l'utilisation de Clang-Tidy sur les appareils ARM.
  • Meilleure prise en charge de GoogleTest.

Apprenez-en plus sur les mises à jour de C++ sur la page Nouveautés de ReSharper C++ 2025.1.

Refactorisation du code

Refactorisation Toggle <ImplicitUsings>

Les using implicites incluent automatiquement les espaces de noms courants, ce qui réduit le recours au code standard. ReSharper fournit désormais une solution simple permettant d'activer ou désactiver les using implicites à tous les niveaux de votre projet, afin de supprimer les using explicites redondantes, lorsque cette solution est activée, ou d'ajouter celles qui sont nécessaires, lorsqu'elle est désactivée.

Refactorisation Transform Parameters remaniée

ReSharper a modernisé la refactorisation Transform Parameters, afin d'assurer la prise en charge des tuples de valeurs, des enregistrements et des scénarios asynchrones pour améliorer la flexibilité du code et sa maintenabilité.

Formatage du code

Action contextuelle Chop formatting

Une nouvelle action de formatage applique un saut de ligne à différentes constructions C#, afin de rendre le code plus facile à lire et plus cohérent.

Autres améliorations

  • Le formatage des commentaires assure désormais un retour à la ligne correct et l'ajout d'espaces après //. Vous trouverez des copies d'écran utiles dans les tickets suivants : [RSRP-225809], [RSRP-78312].
  • Nous avons également ajouté une option permettant de ne pas placer de saut de ligne avant un argument d'expression lambda unique dans les appels de méthode. [RSRP-467905]

Expérience utilisateur

Activation de la fonction Push-to-Hint et améliorations de l'indicateur

Nous avons retravaillé le comportement de Push-to-Hint dans ReSharper pour empêcher les activations indésirables dues à des conflits avec les autres raccourcis basés sur Ctrl. De plus, nous avons introduit un indicateur visuel pour indiquer quand ce mode est actif.

Mise en évidence du contexte pour la liste des types étendus

ReSharper met désormais visuellement en évidence les membres qui étendent les classes de base ou implémentent des interfaces spécifiques lorsque vous placez le curseur sur un nom de type dans la clause portant sur les types de base.

Performances

Consommation de la mémoire

Pour cette version, nous avons complètement remanié notre système d'internement de chaînes. Les IDE traitent un nombre énorme de chaînes (code source, éléments de syntaxe, noms de symboles et chemins d'accès aux fichiers) rendant la gestion efficace des chaînes essentielle. Notre nouveau système d'internement de chaînes stocke, en moyenne, quatre fois plus de chaînes que son itération précédente et consomme environ deux fois moins de mémoire, ce qui libère des ressources dans les projets .NET à grande échelle.

Améliorations de Blazor et de Razor

Les Tag Helpers Razor et la prise en charge des composants Blazor ont été entièrement remaniés pour la version 2025.1. Cette refonte tant attendue réduit de 5 % à 10 % le temps d'analyse pour les solutions ASP.NET de grande envergure utilisant beaucoup de composants. Vous constaterez également moins d'événements de réanalyse lors de l'édition des fichiers .cshtml/.razor, ainsi qu'une réduction significative des faux messages d'erreur.

Dernières mises à jour sur ReSharper hors processus

Nous avons testé la dernière implémentation hors processus (OOP) de ReSharper en interne pour les quatre dernières semaines, et les résultats sont très prometteurs. Nous travaillons toujours sur la prise en charge de l'ensemble des fonctionnalités et la correction des problèmes connus, et nous avons beaucoup progressé sur les fonctionnalités de base qui font de ReSharper une pièce essentielle de votre workflow de développement.

Lisez notre dernier article de blog pour plus de détails sur ReSharper hors processus.

Profilage de mémoire dotUltimate

Analyse des instantanés avec dotMemory dans Visual Studio

dotMemory est désormais entièrement intégré à Microsoft Visual Studio. Auparavant, vous ne pouviez déclencher le profilage qu'à partir de Visual Studio, mais vous deviez passer à l'application autonome dotMemory pour analyser les résultats. Désormais, vous pouvez à la fois profiler votre application et analyser les instantanés de mémoire sans jamais quitter l'IDE.

Qualité du code

Extension Qodana Team Code Quality

Qodana est un outil de qualité de code qui exploite les inspections de JetBrains pour aider les équipes à réaliser des audits et mettre en place des murs qualité dans leur pipeline de CI/CD préféré. Désormais, vous pouvez télécharger l'extension Qodana Team Code Quality via votre programme d'installation de ReSharper pour intégrer Qodana Cloud ou les projets Qodana auto-hébergés dans Visual Studio.

Identifiez les problèmes de code, les bugs et les vulnérabilités, exécutez les analyses directement dans votre pipeline, puis affichez les tickets dans votre IDE pour un meilleur suivi contextuel et un apprentissage optimisé. Vous avez également la possibilité de le télécharger en tant qu'outil autonome en utilisant le programme d'installation de ReSharper.

Développement de jeux

Plugin Unity pour ReSharper

ReSharper 2025.1 intègre un plugin Unity qui prend en charge tous les principaux workflows de développement de jeux. Le plugin fournit la saisie semi-automatique du code pour les fonctions d'événements Unity et les API, des résumés sous forme d'infobulles avec des liens vers la documentation Unity, et des inspections spécialisées pour détecter les pièges courants. Il inclut la prise en charge des fichiers ShaderLab avec la mise en évidence des éléments de syntaxe, la saisie semi-automatique du code et la détection des erreurs. Le plugin gère également automatiquement les fichiers .meta et détecte l'utilisation implicite des champs et des méthodes dans les scènes, prefabs et ressources Unity.

ReSharper C++ continue d'assurer la prise en charge dédiée pour le développement avec Unreal Engine.

Décompilateur

ReSharper 2025.1 apporte plusieurs améliorations au décompilateur, ajoute la prise en charge des dernières fonctionnalités C# et améliore la lisibilité du code. Voici les nouveautés de cette version :

  • Prise en charge des membres required.
  • Prise en charge du nouveau type System.Threading.Lock introduit dans C# 13.
  • Prise en charge des champs ref et des modificateurs de paramètres scoped.
  • Prise en charge de l'anticontrainte générique allows ref struct.
  • Instruction using basée sur un schéma pour les types ref struct.
  • Prise en charge de l'interpolation de chaîne.
  • Certaines constantes entières dans le code décompilé incluent désormais des représentations hexadécimales commentées pour une meilleure lisibilité.
  • Prise en charge des espaces de noms au niveau des fichiers.

Autres améliorations notables 

Nouveau modèle postfix : .inject

Les constructeurs principaux de C# 12 ont simplifié l'injection de dépendances. Le nouveau modèle postfix .inject simplifie l'injection de dépendances de constructeur en introduisant automatiquement un paramètre dans le constructeur principal et en suggérant un nom significatif.

Prise en charge de la journalisation structurée

ReSharper prend maintenant en charge la journalisation structurée avancée, ce qui permet aux développeurs d'écrire et d'analyser les fichiers journaux plus efficacement.

Injection de langage dans les valeurs de retour

ReSharper permet désormais de créer des annotations d'injection de langage dans les valeurs de retour des méthodes, ce qui étend le niveau de prise en charge des paramètres, des champs et des propriétés.

Commentaires To-do multilignes

Précédemment, les commentaires To-do multilignes nécessitaient une indentation pour assurer la continuité. ReSharper 2025.1 supprime cette restriction, ce qui permet d'écrire plus facilement des éléments To-do sur plusieurs lignes tout en conservant l'indentation là où elle est nécessaire.