ReSharper 2024.3 disponible :
Prise en charge complète des fonctionnalités de C# 13, amélioration du nettoyage et du formatage de code, et bien plus

ReSharper 2024.3 introduit une prise en charge complète des fonctionnalités de C# 13, notamment les collections params, les propriétés partial, un nouveau type lock et le mot clé field. La mise à jour améliore le nettoyage du code avec des performances améliorées et des options de mise en forme flexibles. Elle ajoute également des conventions de nommage plus précises. Les commentaires TODO multilignes et la mise en couleur des infobulles améliorent la lisibilité et l'organisation du code. La prise en charge de C++ a été renforcée avec de nouvelles fonctionnalités pour le développement Unreal Engine, ainsi que des améliorations des performances et de l'interopérabilité avec Clang.


Prise en charge de C#

Mises à jour pour C# 13

Avec sa dernière version, ReSharper introduit la prise en charge des dernières fonctionnalités apportées par C# 13, à savoir :

  • 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 partielles a été ajoutée, permettant de répartir les implémentations des accesseurs de propriétés sur plusieurs fichiers. Cela augmente la flexibilité et améliore l’organisation de 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 offre un meilleur contrôle de la résolution de surcharge des méthodes et permet aux développeurs de prioriser quelle surcharge est appelée dans des scénarios complexes.

  • Mot-clé field : la prise en charge du mot-clé field (fonctionnalité en préversion) 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.

Styles et nettoyage de code

Nettoyage du code

Dans ReSharper 2024.3, le nettoyage du code a été repensé pour des performances plus robustes. Il exploite désormais le même moteur que les correctifs rapides de portée, pour assurer une résolution approfondie des problèmes et améliorer 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 de nettoyage de code par fichier ou ignorer le nettoyage sur des fichiers spécifiques.

Formatage du code

De nouvelles options de mise en forme vous offrent encore plus de flexibilité :

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

Styles de nommage

JetBrains a ajouté quelques nouvelles options pour ajuster les règles de nommage.

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 ont reçu une nouvelle option Task-returning method (not ‘async’) pour prendre en charge les méthodes dont le nom comporte un suffixe async qui ne sont pas marquées d'un modificateur async, mais renvoient un type Task. C’est intéressant lorsque vous déclarez une méthode dans une interface où vous n'êtes pas autorisé à utiliser un modificateur async, mais qui renverra un type Task dans l'implémentation.

Commentaires sur le code

Prise en charge des commentaires TODO multilignes

ReSharper 2024.3 prend désormais en charge les commentaires TODO multiligne, permettant 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, pour gagner en lisibilité et en organisation.

JetBrains a également mis à jour l'action Peek To-do link (Ctrl+Maj+clic) qui vous permet de rechercher un ticket externe associé à un élément TODO inline. Elle utilise désormais un moteur de navigateur web moderne pour vous offrir une meilleure expérience de rendu.

Expérience utilisateur

Mise en couleur des infobulles

Pour cette version, JetBrains a passé en revue la quasi-totalité des messages d'erreur, d'avertissement et d'information pour C# et mis le texte en couleur dès que possible. Environ 600 messages ont été mis à jour avec des infobulles qui offrent une expérience de lecture plus intuitive : les éléments de code inclus sont mis en évidence dans la palette de couleurs familière de l'éditeur.

Prise en charge de C++

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

  • Performances améliorées dans les grandes solutions.
  • Refactorisation Move to Folder pour les fichiers C++.
  • Prise en charge des nouvelles fonctionnalités des langages C++ 23, C23 et GNU.
  • Nouvelles fonctionnalités d'assistance au codage pour les développeurs Unreal Engine.
  • Amélioration de l'interopérabilité avec les outils Clang.

Décompilateur

Code IL pour le manifeste d'assembly

La fenêtre de l'outil IL Viewer affiche désormais le code IL pour le manifeste d'assembly, y compris :

  • Les informations sur l'assembly et le module, comme le nom, les attributs personnalisés, etc.
  • Les assemblies et modules référencés.
  • Les types transférés.
  • Une liste des fichiers et des ressources.

Ce code IL est affiché 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 des assemblies externes.

Prise en charge des constructeurs primaires

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

Nouveautés et téléchargement de ReSharper 2024.3