Resharper C++ prend en charge plusieurs nouvelles fonctionnalités de langage de C++20 et C++17,
ajoute de nouvelles inspections et améliore la prise en charge d'Unreal Engine

ReSharper C++ 2021.1 prend en charge plusieurs nouvelles fonctionnalités de langage de C++20 et C++17, ajoute de nouvelles inspections et améliore la prise en charge d'Unreal Engine. Vous pouvez désormais configurer ReSharper C++ pour qu'il corresponde encore plus fidèlement à votre style de code grâce à de nouveaux paramètres de style de syntaxe. Les correctifs rapides et les actions contextuelles associés vous aident à conserver la cohérence de votre style de code et à le mettre à jour facilement.

Prise en charge de C++

ReSharper C++ 2021.1 ajoute la prise en charge des types de classes dans les paramètres des modèles non-type. Cette fonctionnalité de C++20 vous permet d'utiliser vos propres classes dans les types de paramètres de modèles lorsque la classe répond à certaines exigences.

Un autre ajout utile est la prise en charge des règles C++20 CTAD : la déduction des arguments des modèles de classes fonctionne désormais pour les modèles agrégés, les alias de types et les constructeurs hérités.

Depuis C++17, la spécification noexcept est considérée comme faisant partie du type de fonction, et ReSharper C++ prend désormais pleinement en charge la nouvelle sémantique de spécification des exceptions.

Jusqu'à présent, la saisie automatique du code ne prenait pas en charge la syntaxe liée aux coroutines de C++20. Désormais, co_await, co_yield, et co_return sont disponibles à la fois dans la saisie automatique du code de base et comme modèles de complétion postfix.

Nom : coroutines.gif
Affichages : 21764
Taille : 134,3 Ko

Analyse du code

ReSharper C++ vous notifie désormais lorsqu'une variable est déclarée avant la portée dans laquelle elle est utilisée. Dans ce cas, vous pouvez utiliser le correctif rapide fourni pour déplacer la variable et limiter sa portée.

Une autre nouvelle inspection détecte les expressions de casts redondants, qui peuvent être supprimées du code sans en modifier la sémantique.

ReSharper C++ 2021.1 apporte de nouveaux correctifs rapides pour les erreurs de conversion : choisissez l'une des conversions adaptées au contexte (c_str(), to_string(), etc.) pour corriger l'erreur.

ReSharper C++ 2021.1 met également en évidence les arguments de modèles redondants qui peuvent être déduits par le langage selon les règles de déduction des arguments de modèles de classes en C++17.

Style de syntaxe

Avec la version 2021.1, nous avons introduit une collection de paramètres de style de syntaxe que vous pouvez utiliser pour que ReSharper suive le style de code de votre choix et l'applique à l'ensemble de votre base de code.

Vous pouvez personnaliser vos préférences de style de syntaxe sur la page Code Editing | C++ | Syntax Style. La valeur de l'option sélectionnée sera utilisée à la fois pour la génération du code et pour l'application du style de code.

ReSharper C++ met en évidence les violations de style et vous propose des correctifs rapides pour vous aider à les éliminer. Tous les correctifs rapides pour le style de syntaxe peuvent être appliqués dans la portée, y compris dans les portées locales comme les corps de fonction ou les définitions de classe.

Nom : syntax_style_quick_fix_scope.gif
Affichages : 996
Taille : 101,7 Ko

Activer toutes les inspections de style peut être envahissant, c'est pourquoi nous avons fait en sorte que les actions contextuelles soient toujours disponibles pour ajuster vous-même votre code si vous avez désactivé les inspections correspondantes.

Pour appliquer le style de syntaxe souhaité, vous pouvez utiliser le nettoyage de code ou l'action dédiée Apply Syntax Style, qui corrigera les problèmes de style de syntaxe dans la sélection, l'ensemble du fichier actuel ou un ensemble de fichiers en fonction du contexte actuel.

Style de déclaration

Plusieurs nouveaux paramètres de style de syntaxe vous permettent de configurer et d'appliquer le style des déclarations dans votre code.

Vous pouvez choisir si vous préférez les typedefs ou les déclarations d'alias. Dans les déclarations de fonctions, vous pouvez imposer des types de retour de fin ou configurer ReSharper C++ pour exiger des types de retour réguliers. Vous pouvez également spécifier si vous souhaitez utiliser les définitions d'espaces de noms imbriqués de C++17 chaque fois que possible.

Vous pouvez spécifier quand ReSharper C++ doit exiger l'utilisation d'auto au lieu d'un type explicite dans les déclarations de variables. Par défaut, auto est maintenant suggéré uniquement lorsque le type déduit est évident à partir du contexte.

Les paramètres du style de syntaxe pour la position des cv-qualifiers vous permettent de choisir le style east const ou west const et de mettre rapidement votre code à jour pour utiliser l'un ou l'autre.

Vous pouvez également choisir lequel des spécificateurs virtual et override (ou les deux) doit être utilisé sur les fonctions et les destructeurs overriding.

Style de crochets

En C++, les crochets peuvent être omis autour des expressions imbriquées simples, mais les directives de style de code peuvent encore exiger des crochets dans certains cas. Pour vous permettre d'appliquer le style de crochets souhaité, ReSharper C++ ajoute des règles de style de syntaxe pour l'utilisation de crochets.

Vous pouvez choisir de toujours appliquer des crochets ou n'exiger des crochets que pour les déclarations de plusieurs lignes ou autour des corps de déclaration de plusieurs lignes. ReSharper C++ peut également trouver et supprimer les crochets redondants qui ne sont pas conformes au style de crochet choisi.

Nettoyage du code

Toutes les nouvelles vérifications du style de syntaxe sont assorties d'options de nettoyage du code correspondantes et peuvent être désactivées dans les profils personnalisés. Il y a également deux nouvelles options pour supprimer les casts redondants et les listes d'arguments de modèles.

La nouvelle action contextuelle Cleanup selection vous permet d'exécuter rapidement un nettoyage du code sur la plage de code sélectionnée. Il est également possible de choisir l'un des profils de nettoyage de code personnalisés à utiliser pendant l'exécution.

Enfin, JetBrains a amélioré les performances du nettoyage du code. Dans de nombreux cas, le nettoyage du code passe désormais moins de temps à analyser le code et effectue moins d'opérations, ce qui lui permet concrètement de terminer plus rapidement son travail sur les bases de code.

Unreal Engine

JetBrains a introduit la prise en charge initiale d'Unreal Engine 5, sur la base des retours de l'équipe d'Epic Games.

Le Cast d'Unreal Engine pour le casting dynamique de type sécurisé est maintenant disponible en tant que modèle postfix dans la saisie semi-automatique.

Nom : unreal_engine_cast.gif
Affichages : 993
Taille : 214,5 Ko

ReSharper C++ ajoute la prise en charge d'une autre macro de réflexion spécifique à Unreal Engine, RIGVM_METHOD et la gère désormais correctement.

En savoir plus ou télécharger Resharper C++ 2021.1