Nouveautés de ReSharper C++ 2024.3

ReSharper C++ 2024.3 améliore les performances dans les grandes solutions, implémente de nouvelles fonctionnalités de C++23 et C23 et inaugure la refactorisation Move to Folder. Dans les projets Unreal Engine, ReSharper C++ fournit désormais la saisie semi-automatique du code pour les balises de gameplay et la journalisation des arguments de macro, ainsi qu'une meilleure prise en charge des délégués.

Télécharger

Essai gratuit de 30 jours disponible

Améliorations des performances

Dans ReSharper C++ 2024.3, nous nous sommes concentrés sur l'optimisation de l'utilisation de la mémoire dans les grandes solutions, ce qui a permis de réduire considérablement l'empreinte mémoire. Nos tests ont montré une diminution de l'utilisation de la mémoire après l'indexation initiale d'environ 20 % pour Unreal Engine et 30 % pour Chromium.

Ces économies de mémoire, combinées à des optimisations visant à réduire le trafic de la mémoire, ont également augmenté la vitesse d'indexation. L'indexation initiale de la solution LLVM est maintenant jusqu'à 10 % plus rapide.

Fonctionnalités du langage

ReSharper C++ 2024.3 complète la prise en charge des principales fonctionnalités de C++23 en implémentant les suffixes de littéraux pour size_t et les attributs sur les expressions lambda. De plus, le trait de type std::has_unique_object_representations de C++17 est maintenant évalué.

Pour les utilisateurs du langage C, ReSharper C++ ajoute la prise en charge des mots clés typeof et typeof_unqual, ainsi que de la macro __has_c_attribute de C23.

Pour améliorer la compatibilité avec les compilateurs autres que MSVC, ReSharper C++ implémente la prise en charge de nombreuses extensions de lanagage GNU, notamment des plages de switch case, des paramètres de macro variadiques nommés, de l'attribut de type transparent_union et de __attribute((aligned(...))). ReSharper C++ reconnaît également de nombreux modules intégrés du compilateur, notamment des traits de types supplémentaires et des comparaisons à virgule flottante.

Unreal Engine

La saisie semi-automatique du code suggère désormais les noms de catégories disponibles et les niveaux de verbosité dans les arguments des macros UE_LOG et UE_LOGFMT. Les live templates intégrés portant les mêmes noms vous aident à ajouter rapidement de nouvelles instructions de journalisation.

ReSharper C++ détecte maintenant les balises de gameplay définies dans votre projet et les suggère lors de la saisie de l'argument de la fonction FGameplayTag::RequestGameplayTag.

La prise en charge améliorée de la macro UDELEGATE inclut la saisie semi-automatique des spécificateurs de réflexion dans les attributs de macro et le suivi du nombre d'utilisations à partir des Blueprints pour les membres de classe des types délégués.

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 2024.3 de Rider.

Refactorisation Move to Folder

Vous pouvez désormais facilement déplacer des fichiers C++ avec la refactorisation Move to Folder. Après avoir déplacé les fichiers sélectionnés vers le nouvel emplacement, la refactorisation met à jour les directives #include pour répercuter les modifications apportées à la structure du projet.

Assistance au codage

Pour les utilisateurs travaillant avec la bibliothèque de plages C++ 20, nous avons introduit de nouvelles actions contextuelles qui vous permettent de convertir les utilisations de l'adaptateur de plage entre les formulaires pipe et call. Nous avons également amélioré les messages de diagnostic pour les erreurs de surcharge lors de l'utilisation d'adaptateurs de plage sous forme pipe.

ReSharper C++ 2024.3 prend en charge les commentaires TODO multilignes, permettant au texte indenté sur les lignes suivantes d'être traité comme faisant partie du même élément TODO. De plus, si vous rencontrez un élément to-do qui renvoie à un ticket externe, vous pouvez utiliser l'action Peek To-do link (Ctrl+Maj+Clic) pour afficher le ticket inline.

L'aide à la saisie insère désormais automatiquement un espace avant une parenthèse ouvrante lorsque l'option de formatage Space before parentheses in control statements est activée.

Les nouveaux paramètres de l'outil de formatage vous permettent de configurer le style d'accolades pour les propriétés C++/CLI et le saut de ligne avant un bloc try de fonction.

Génération de code

Si votre projet utilise la syntaxe XML pour les commentaires de documentation au lieu de Doxygen, vous pouvez désormais facilement personnaliser le style du modèle de documentation par défaut dans les paramètres Code Generation. ReSharper C++ reconnaît aussi la documentation XML au sein des commentaires /** ... */ et l'affiche correctement dans les infobulles.

Un autre nouveau paramètre vous permet de contrôler si les actions de génération de code doivent conserver les arguments de fonction par défaut lors de la création de fonctions de remplacement.

Intégration des outils Clang

ReSharper C++ 2024.3 inclut les binaires clang-tidy et clang-format de Clang 19, qui apportent de nouvelles vérifications et les améliorations de la dernière version de LLVM.

Les commentaires // NOLINT(...) dans votre code désactivent non seulement certaines vérifications clang-tidy, mais également les vérifications ReSharper correspondantes.

L'outil de formatage intégré reconnaît maintenant les commentaires // clang-format off et // clang-format on et désactive le formatage dans les zones délimitées.

Consultez la page des Nouveautés de ReSharper pour en savoir plus sur tous les autres changements introduits dans cette version.

Télécharger

Essai gratuit de 30 jours disponible