JetBrains ouvre maintenant le programme d'accès anticipé (EAP) à ReSharper C++ 2022.3 avec des améliorations pour la prise en charge de C++ et de nouvelles options de formatage. Nous présentons dans la suite ces améliorations avec plus de détails.
Notons tout d'abord que JetBrains a introduit la prise en charge de la directive #pragma pack, qui modifie la règle d'alignement actuelle pour les membres des structures. ReSharper C++ calcule désormais correctement les tailles des structures compressées afin que vous puissiez vous fier à l'analyse et à la mise en évidence des assertions statiques.
ReSharper C++ 2022.2 a apporté de nombreuses améliorations pour travailler avec des appels de fonction de type emplace et make. Cependant, ces fonctionnalités étaient limitées aux classes et fonctions de la bibliothèque standard. À partir de cette première version EAP, ReSharper C++ peut désormais vous montrer des informations sur les paramètres et des conseils d'insertion pour toute fonction ou méthode qui implique un appel de constructeur.
Pour bénéficier de cette mise à jour, assurez-vous que le modèle de fonction est limité à l'aide de SFINAE ou d'une clause requires avec des types traits et des concepts qui empêchent T d'être constructible à partir d'un pack d'arguments donné. Cela peut être std::enable_if avec le type trait std::is_constructible, ou requires std::constructible_from<T, Args...>, ou toute construction similaire.
Comme vous l'avez peut-être remarqué dans la capture d'écran ci-dessus, ReSharper C++ inclut désormais l'origine de la fonction dans les informations de paramètre et d'autres info-bulles de fonction. Les info-bulles mises à jour vous indiquent désormais quand une fonction est implicitement générée (par exemple, constructeurs ou opérateurs d'affectation), intégrée (par exemple, opérateur + pour les types fondamentaux) ou intrinsèque au compilateur (par exemple, fonctions avec le préfixe __builtin_).
JetBrains a également introduit une nouvelle action contextuelle utile qui remplace && par || et vice versa à l'intérieur d'une expression booléenne, suivant les lois de De Morgan.
Pour un code plus beau, JetBrains a ajouté un certain nombre de nouvelles options de formatage pour configurer :
- Les espaces avant et après les points de suspension (…) dans les packs de paramètres.
- Le nombre de lignes vides qu'il est acceptable de présenter dans les déclarations et dans le reste du code.
- Si les lignes vides sont conservées ou supprimées après une accolade ouvrante ({) et avant une accolade fermante dans les déclarations et dans le reste du code.
- Les lignes vides avant et après les spécificateurs d'accès.
Tous les nouveaux paramètres de formatage se trouvent, comme d'habitude, sur la page Code Editing | C++ | Formatting Style des options de ReSharper C++.
Enfin, JetBrains a une petite mais importante mise à jour pour les projets Unreal Engine : ReSharper C++ n'offre plus d'entités indésirables des en-têtes système dans les suggestions d'importation automatique. Par défaut, les en-têtes système ne sont pas suggérés, mais si vous le souhaitez, vous pouvez les activer dans Options | Code Editing | C++ | Unreal Engine.
Télécharger la dernière version EAP de ReSharper C++