Prise en charge de C++ 20
Le comité ISO C++ a terminé ses travaux techniques sur le C++ 20. Par conséquent, ReSharper C ++ 2020.1 introduit la prise en charge de plusieurs nouvelles fonctionnalités de la dernière norme du langage. C++ 20 améliore les déclarations "using" pour prendre en charge l'introduction d'énumérateurs spécifiques dans la portée locale. La nouvelle syntaxe "using enum" vous permet d'ajouter tous les énumérateurs de l'énumération cible et d'omettre les répétitions de noms. ReSharper C++ 2020.1 ajoute la prise en charge des déclarations "using enum" et un nouveau refactoring.
Pour les concepts de C++ 20, JetBrains dit avoir ajouté la prise en charge de la nouvelle syntaxe pour les espaces réservés de type contraint et les modèles de fonction abrégés. Il est donc maintenant possible de contraindre un type "auto" avec un concept et déclarer une fonction de modèle avec un "auto" ou un "concept auto" dans la liste des paramètres. De plus, l'entreprise dit avoir amélioré les messages d'erreur concernant les contraintes non satisfaites pour aider les développeurs à comprendre facilement ce qui n'a pas fonctionné lors de la substitution de modèle.
Unreal Engine 4
ReSharper C++ 2020.1 améliore la conformité à la norme de codage Unreal Engine. Dans cette version, l'entreprise a mis à jour les règles de dénomination pour gérer les variables de console et les catégories de journaux, et l'inspection "Use auto" est désormais masquée par défaut dans les projets UE4. Lorsque vous renommez une classe ou un fichier, le Rename refactoring met désormais à jour les directives include *.generated.h et les fichiers associés correspondants avec les préfixes A, F, E, T, S et U. Les fichiers Unreal Engine USF sont désormais pris en charge avec leurs chemins d'accès virtuels.
Vous pouvez désormais naviguer vers des espaces de noms qui contiennent une énumération dans le style Unreal Engine. ReSharper C++ 2020.1 introduit la prise en charge de SpatialOS GDK, un fork de Unreal Engine 4 qui vous aide à exécuter et gérer des jeux en ligne dans le cloud. JetBrains dit avoir vérifié que ReSharper C++ 2020.1 est compatible avec la prochaine version d'Unreal Engine, la 4.25. Notez que si vous souhaitez travailler sur un projet UE 4.25 avec une version précédente de ReSharper C++, vous devez vous assurer de désactiver le paramètre « Lire les propriétés du projet de manière asynchrone » dans ReSharper | Options | Édition de code | C ++ | Performance.
Support de HLSL
ReSharper C++ 2020.1 introduit la prise en charge initiale d'un autre aspect du développement de jeux : le langage d'ombrage de haut niveau comme démontrer dans la vidéo ci-dessous. ReSharper C++ met en évidence le code HLSL selon votre jeu de couleurs par défaut et affiche des conseils d'incrustation et des info-bulles pour les éléments de code avec des informations de type et de la documentation.
Vous pouvez également rechercher et naviguer rapidement vers des structures, des fonctions ou des paramètres dans l'ensemble de votre solution, des fichiers référencés et des bibliothèques standard. Et pour parfaire l'expérience HLSL, ReSharper C ++ fournit des suggestions intelligentes dans les listes d'achèvement, met en évidence la signature compatible avec les paramètres saisis, insère automatiquement les délimiteurs correspondants, etc.
Autres fonctionnalités
De nouvelles inspections détectent plus de cas et proposent les correctifs rapides correspondants pour vous aider à mettre à jour votre code. Deux fonctionnalités bien connues de ReSharper pour .NET sont finalement arrivées à ReSharper C++ : la réorganisation de code et la déclaration complète. Parallèlement à de nombreux correctifs, le moteur de mise en forme de ReSharper C++ 2020.1 prend pleinement en charge la syntaxe des concepts C++ 20. JetBrains a également ajouté plusieurs nouvelles options de formatage, y compris une option pour la double indentation des membres de la classe et une option pour contrôler les espaces avant les parenthèses dans les paramètres lambda.
Dans ReSharper C++ 2020.1, la navigation a été améliorée. Vous pouvez accéder à la déclaration de n'importe quel symbole à partir d'un mot correspondant dans un commentaire. En ce qui concerne les tests unitaires, le générateur de méthodes fictives prend désormais en charge la macro MOCK_METHOD introduite dans GTest 1.10. La famille de macros MOCK_(const_)METHODn() utilisée dans les versions précédentes de GTest est désormais obsolète.
« Le lanceur de test dans ReSharper C++ utilise des canaux nommés pour communiquer avec les processus de test enfants pour lire la sortie sans tampon. Cependant, dans certains environnements, les canaux nommés peuvent se comporter mal à cause des logiciels de sécurité. Nous avons introduit le nouveau paramètre "Utiliser des canaux nommés pour communiquer avec les processus enfants", vous pouvez donc désactiver cette option pour utiliser des fichiers temporaires à la place », précise JetBrains.
Télécharger ReSharper C++ 2020.1
Source : JetBrains
Et vous ?
Que pensez-vous des nouveautés apportées dans ReSharper C++ 2020.1 ?
Quelle autre fonctionnalité souhaiteriez-vous avoir dans la prochaine version de ReSharper C++ ?
Voir aussi
C++ 20 : la spécification de la nouvelle version du langage C++ est finalisée, un tour d'horizon des nouveautés apportées
JetBrains annonce la disponibilité de la version 2019.2 de ReSharper Ultimate, sa suite d'outils pour les développeurs .NET et C++
JetBrains annonce la disponibilité de la version 2019.1 de ReSharper Ultimate, sa suite d'outils pour les développeurs .NET et C++