ReSharper C++ 2023.3 apporte un nouvel outil intégré de vérification grammaticale et orthographique, la saisie semi-automatique du code et Find Usages pour le code inactif, des mises à jour pour C et C++, la prise en charge de HLSL, et plus encore. Il bénéficie également d'une mise à jour majeure de JetBrains AI Assistant.
Essai gratuit de 30 jours disponible
L'AI Assistant est maintenant accessible à tous et apporte de nombreuses nouveautés et fonctionnalités améliorées pour rendre votre travail encore plus productif. Notre dernière série d'améliorations inclut une meilleure prise en compte des projets pour les actions d'IA et une bibliothèque de prompts.
Utilisez l'AI Assistant dans ReSharper C++ en tant que fonctionnalité supplémentaire en vous abonnant à JetBrains AI Service.
HLSL 2021 a introduit des modèles de fonctions et de types de données similaires à C++. La dernière mise à jour de ReSharper C++ apporte une prise en charge complète des modèles HLSL.
ReSharper C++ 2023.3 inaugure la prise en charge du type RayQuery
intégré à HLSL et améliore la saisie semi-automatique du code pour suggérer les indicateurs correspondants.
Une nouvelle inspection vous aide à éviter de tomber dans l'un des pièges courants de la macro d'assistance AddDynamic
. Vous recevrez désormais un avertissement si une fonction déléguée dynamique n'est pas marquée avec la macro UFONCTION
.
S'il vous arrive encore d'écrire du code standard, n'oubliez pas que le raccourci Alt+Inser
peut générer automatiquement les membres de type courant. Dans ReSharper C++ 2023.3, nous avons ajusté la génération des fonctions de hachage afin de suivre les conventions d'Unreal Engine.
Si vous recherchez un IDE autonome et multiplateforme pour le développement Unreal Engine, nous vous suggérons d'essayer Rider. La prise en charge d'Unreal Engine dans Rider et dans ReSharper C++ est alignée, vous retrouverez donc les mêmes améliorations dans la version 2023.3 de Rider.
Si jamais vous avez besoin de vérifier si un attribut spécifique est disponible dans la version actuelle du standard ou du compilateur, les tests de fonctionnalités de C++20 peuvent vous sauver la mise. En utilisant __has_cpp_attribute(operand)
dans les conditions du préprocesseur, vous pouvez tester si le compilateur reconnaît l'attribut référencé par son opérande. ReSharper C++ gère désormais correctement __has_cpp_attribute
pour mieux prendre en charge les annotations d'attributs dans les bibliothèques C++ standards.
Nous avons introduit la prise en charge du pack pragma utilisé avec le mot-clé __pragma
. On trouve parfois la syntaxe __pragma (pack)
dans les définitions de macro, car il n'est pas possible d'y utiliser les directives #pragma
. Dans ce genre de cas, ReSharper C++ calcule désormais correctement la taille des structures empaquetées ; vous pouvez donc vous fier aux résultats de l'analyse du code.
ReSharper C++ ajoute la prise en charge de plusieurs fonctionnalités C :
restrict
de C99 qui peut être utilisé dans les déclarations de pointeur. constexpr
et nullptr
de C23. Nous avons également introduit la prise en charge de plusieurs nouveaux éléments intrinsèques de clang (tels que __is_const()
, __is_member_pointer()
), pour améliorer le fonctionnement de ReSharper C++ avec du code multiplateforme.
Pour le développement multiplateforme C et C++, vous pouvez essayer la version préliminaire de l'IDE CLion Nova autonome. Il s'appuie de ReSharper C++ et son utilisation est totalement gratuite à ce stade ; il suffit de vous inscrire, de commencer à coder et de nous envoyer votre avis !
JetBrains Grazie est devenu le nouvel outil intégré de vérification de grammaire et d'orthographe dans ReSharper. Grazie prend en charge plus de 20 langues et détecte les erreurs linguistiques au sein des langages de programmation pris en charge par ReSharper (C#, C++, VB.NET), des langages de balisage (HTML, XML, XAML) et des commentaires. Pour ajouter d'autres langues à Grazie, allez dans Options | Grammar and Spelling | General dans ReSharper.
Veuillez noter que la vérification grammaticale n'est pas disponible actuellement dans les commentaires doxygen.
Avec du code spécifique à la plateforme ou à la configuration, vous vous retrouvez souvent à modifier des blocs de code actuellement inactifs dans des branches de préprocesseur conditionnel. Auparavant, la saisie semi-automatique dans du code inactif ne proposait que des macros. Dans ReSharper C++ 2023.3, nous avons amélioré la saisie semi-automatique du code dans ces scénarios pour inclure les symboles de la portée globale.
Find Usages affiche désormais les occurrences possibles dans le code inactif et les corps de macro. Auparavant, si vous souhaitiez trouver ces utilisations, vous deviez utiliser Find Usages Advanced et rechercher les occurrences textuelles. Les résultats de Find Usages incluent à présent par défaut les utilisations potentielles dans les corps de macro et le code inactif. Ces occurrences sont regroupées dans des sections distinctes pour les distinguer de celles du code actif.
Vous pouvez utiliser les attributs C++ spécifiques à ReSharper afin d'améliorer l'exactitude et les informations pour l'analyse de votre solution par ReSharper. Dans ReSharper C++ 2023.3, nous avons ajouté le préfixe [[jetbrains::...]]
en plus de [[rscpp::...]]
pour les attributs existants [[jetbrains::format]]
, [[jetbrains::guard]]
et [[jetbrains::has_side_effects]]
.
Le nouvel attribut [[jetbrains::pass_by_value]]
vous permet de supprimer l'inspection Pass value by const reference pour les paramètres de fonction. En savoir plus.
Nous avons introduit un ensemble d'inspections concernant l'utilisation incorrecte du mot-clé export
dans les modules C++20. ReSharper C++ suggère désormais de supprimer l'exportation si une autre déclaration d'exportation contient déjà une déclaration donnée, ou lorsque la déclaration ne fait pas partie d'une unité d'interface de module et ne peut pas être exportée. Vous recevrez également une suggestion de déplacer export
si vous essayez de créer un modèle de déclaration d'exportation au lieu d'exporter le modèle de déclaration.
Nous avons mis à jour le binaire clang-tidy intégré vers Clang 17, pour bénéficier des nouveautés de la dernière version de LLVM.
Certaines vérifications clang-tidy génèrent davantage de détails en plus du texte d'avertissement. ReSharper C++ affiche maintenant ces notes supplémentaires dans l'infobulle.
Une nouvelle inspection met en garde contre l'utilisation de littéraux à plusieurs caractères. Ils sont pris en charge sous condition avec des valeurs définies par l'implémentation et doivent être utilisés avec précaution dans un code portable.
ReSharper C++ suggère désormais un correctif rapide pour supprimer les opérateurs conditionnels redondants et simplifier les expressions conditionnelles ternaires.
Le menu Generate du raccourci Alt+Inser vous aide à créer rapidement du code standard. Dans ReSharper C++ 2023.3, nous avons ajouté une nouvelle action à la liste. Elle vous permet de générer un destructeur.
Lorsqu'elle est appelée dans une classe polymorphe, l'action utilise les paramètres de style de syntaxe pour insérer les spécificateurs virtual
et override
requis. Vous pouvez configurer le style de corps du destructeur généré dans la page des options Code Editing | C++ | Code Generation.
Les directives #pragma region
et #pragma endregion
vous permettent de spécifier un bloc de code pliable. Comme pour d'autres directives associées, vous pouvez maintenant naviguer entre elles en utilisant l'action Go to Declaration sur une directive #pragma
ou grâce à une nouvelle indication contextuelle affichant le nom de la région.
De plus, la fenêtre File Structure vous permet désormais de réduire facilement les régions et de naviguer vers les blocs de code correspondants.
En code C, void
doit être utilisé dans la liste des paramètres d'une fonction pour indiquer que la fonction ne prend aucun argument. ReSharper C++ préserve désormais ce void
spécial lorsque vous appelez les refactorisations Extract method ou Change signature, générez une définition pour la fonction ou créez une nouvelle fonction à partir de son utilisation.
Les indications contextuelles de référence ont désormais un texte [>>]
distinct afin que vous puissiez repérer les références de renvoi d'un coup d'œil.
La nouvelle action Generate inline definitions vous permet de générer rapidement des corps pour plusieurs fonctions simultanément. Comme l'action Generate definitions actuelle, la nouvelle action est disponible lorsqu'un nom de classe ou plusieurs déclarations de fonction sont sélectionnés dans l'éditeur.
Lorsque vous appelez les refactorisations Introduce variable ou Introduce field sur une expression imbriquée, ReSharper C++ vous permet désormais de choisir explicitement l'expression cible au lieu d'utiliser automatiquement la plus externe.
Pour améliorer l'expérience de navigation dans le code, les symboles provenant de substitutions de macros sont désormais masqués dans Go to et dans la fenêtre File Structure. C'est intéressant avec les macros qui introduisent beaucoup de symboles auxiliaires lors de leur expansion, comme les déclarations de cas de test dans les frameworks de tests unitaires populaires.
ReSharper C++ 2023.3 introduit plusieurs nouvelles options de formatage :
->
dans les types de retour de fin.->
dans les types de retour de fin.{
. Nous avons également mis à niveau le binaire clang-format intégré vers Clang 17 et implémenté la prise en charge du paramètre de clang-format InsertNewlineAtEOF
, lors de l'importation des paramètres de l'outil de mise en forme à partir d'une configuration .clang-format, mais aussi lors de l'utilisation de clang-format à la place de l'outil de mise en forme intégré.
Consultez la page des Nouveautés de ReSharper pour en savoir plus sur tous les autres changements introduits dans cette version.
Essai gratuit de 30 jours disponible