La première version EAP de ReSharper 2023.2 est disponible :
Un aperçu des améliorations de l'extension Visual Studio pour les développeurs .NET

C'est au début du mois d'avril que JetBrains a publié la version 2023.1 de ReSharper, son extension Visual Studio pour les développeurs .NET. ReSharper 2023.1 a amélioré la prise en charge de C#, notamment avec un ensemble d'inspections pour optimiser et accélérer votre travail avec différents types de collections, et des solutions plus modulables d'introduction de contrôles de valeur null dans votre code. Cette version a introduit des mises à jour pour les modules C++20, le premier lot de prise en charge des fonctionnalités C++23, ainsi que les aperçus de macro-substitution et le suivi d'appels pour C++. Enfin, l'expérience utilisateur des tests unitaires et du nettoyage du code a également été améliorée.

JetBrains lance maintenant le programme d'accès anticipé (EAP) à ReSharper 2023.2. Vous pouvez télécharger la version EAP à partir du site Web officiel de l'outil .NET. Vous pouvez aussi l'obtenir à partir de l'application gratuite Toolbox ou utiliser des snaps si vous utilisez Ubuntu. Mais en attendant, jetons un coup d'œil aux mises à jour incluses dans cette première version EAP de ReSharper 2023.2.

Inspections C# pour les directives #nullable et les annotations NRT

JetBrains lance le nouveau cycle de développement de la prise en charge du langage C# avec l'introduction de deux nouvelles inspections qui peuvent contrer l'utilisation abusive des directives #nullable.

La nouvelle inspection Redundant nullable directive est conçue pour signaler les cas où la directive #nullable ne modifie pas le contexte nullable et peut être supprimée en toute sécurité. L'inspection Unused nullable directive traite les cas où aucun code n'est affecté par la directive #nullable. Comme toujours, les deux inspections sont accompagnées de correctifs rapides correspondants pour un nettoyage facile du code.

Une autre inspection C# que JetBrains introduit dans l'EAP 1 est conçue pour vous alerter des cas où les annotations de type de référence nullable (NRT) contredisent les attributs JetBrains.Annotations sur un membre de base.


Les annotations NRT seules peuvent vérifier les incompatibilités de signature sur l'héritage uniquement lorsque les types de base et dérivés utilisent des types de référence nullables. Cela peut être problématique lorsqu'un projet n'est que partiellement migré vers NRT ou lorsqu'il utilise une bibliothèque tierce qui n'a que JetBrains.Annotations ou des JetBrains.Annotations externes (par exemple, si ses auteurs ne veulent pas le migrer vers NRT). La nouvelle inspection couvrira de tels cas, en détectant les incompatibilités de signature à la frontière de deux systèmes d'annotation de nullabilité différents et en rendant plus difficile l'introduction d'exceptions NullReferenceException dans votre code.

De nouvelles options pour formater les appels d'API

ReSharper 2023.2 EAP 1 introduit quelques nouvelles options pour le formatage du code C#, conçues pour améliorer la lisibilité des appels de méthode chaînés.

La première option de formatage du code contrôle si un saut de ligne précède le premier appel de méthode. La deuxième option est pour les situations où les appels de méthode et de propriété sont mélangés, et elle détermine si un saut de ligne doit être inséré après l'appel de la propriété.


Vous pouvez rechercher et activer les options de mise en forme en accédant à Resharper Settings | Code Editing | C# | Formatting Style | Line breaks and wrapping.

De nouveaux conseils d'insertion

La première version EAP de ReSharper 2023.2 est livrée avec de nouveaux conseils d'insertion pour faciliter la lisibilité de votre code chaque fois que des tuples, des éléments ignorés (discards) et des composants de déconstruction dans les modèles de déconstruction sont impliqués.

Lors du passage d'une valeur à un argument de tuple ou à un type de retour, C# vous permet d'ignorer les noms de composants. Cependant, sans les noms, il devient plus difficile de dire la signification de chaque composant sans regarder son type cible. Par exemple, de nombreux développeurs logiciels devront vérifier à quoi un tuple (null, false) est affecté pour comprendre ce que signifient ses composants.

C'est là que les conseils d'insertion peuvent vous aider. ReSharper 2023.2 affichera des conseils d'insertion avec les noms de composants de tuple lorsque ces noms ne sont pas déjà apparents dans l'expression du composant, ce qui rend votre code beaucoup plus facile à lire et à comprendre en un coup d'œil.


Pour les composants null et par défaut, ReSharper 2023.2 affichera des conseils sur leurs types cible même si le composant cible n'a pas de nom explicite. Il fera une exception pour les types chaîne et objet, car ceux-ci ne sont généralement pas très informatifs.

Une autre situation courante dans laquelle les noms peuvent améliorer la lisibilité est celle des modèles de déconstruction dans lesquels un nom explicite est connu soit à partir de la méthode Deconstruct, soit à partir des composants de tuple source. Ces conseils ont été développés pour vous fournir un contexte supplémentaire lorsqu'un modèle lui-même ne contient pas suffisamment de données pour comprendre ce qui est matché, comme value is ({ }, true, null).


Enfin, ReSharper 2023.2 vous permettra de vérifier rapidement les noms et les types des valeurs ignorées avec Push-to-hint.

Mises à jour C++

Safe Delete arrive dans C++

La refactorisation Safe Delete vous permet de supprimer des symboles du code source en toute sécurité. Elle est maintenant disponible dans C++ pour supprimer une classe, une fonction, une variable, un espace de noms ou même un concept. Ce qui rend cette refactorisation sûre, c'est qu'avant de supprimer un symbole, ReSharper C++ recherche les utilisations et vous donne un aperçu des résultats, afin que vous puissiez être sûr que toutes les suppressions sont intentionnelles.


Si vous essayez de supprimer une entité complexe, comme une classe ou un espace de noms, ReSharper C++ vérifiera de manière récursive les utilisations de tous ses membres.

Plus de fonctionnalités C++20 et C++23

Dans cette version EAP, ReSharper C++ introduit la prise en charge de if consteval et apporte 3 nouvelles inspections pour vous aider à expérimenter les récentes fonctionnalités de langage pour l'évaluation de constante :

  • consteval if is always constant
  • std::is_constant_evaluated will always evaluate to constant
  • if can be replaced by if consteval


Avec une complétion améliorée pour le code dépendant avec les concepts de C++20, vous obtiendrez désormais des éléments de complétion lorsque le type est limité par des concepts ou des traits. Il existe également de nouvelles actions contextuelles pratiques pour déplacer une contrainte vers une requires-clause et pour convertir une clause en contrainte de paramètre.


Voilà présentées les principales nouveautés et améliorations de ReSharper 2023.2 EAP 1. Vous trouverez la liste exhaustive dans les notes de publications.

Télécharger la dernière version EAP de ReSharper