Nouveautés de ReSharper C++ 2024.2

ReSharper C++ 2024.2 implémente de nouvelles fonctionnalités C++23, enrichit les info-bulles avec des informations sur la disposition des types et apporte plusieurs améliorations à la refactorisation Rename. Pour les développeurs Unreal Engine, ReSharper C++ 2024.2 assure la prise en charge des traits de structure et ajoute une nouvelle inspection qui détecte les appels manquants aux méthodes de base.

Télécharger

Essai gratuit de 30 jours disponible

Prise en charge de C++23

ReSharper C++ 2024.2 ajoute la prise en charge de l'opérateur d'indice multidimensionnel. L'utilisation de operator[] avec plusieurs arguments offre une meilleure prise en charge des conteneurs et vues multidimensionnels.

À présent, ReSharper C++ comprend également les directives de préprocesseur #elifdef et #elifndef de C++23/C23 qui complètent les directives #ifdef et #ifndef existantes.

[[assume(<expr>)]] est un nouvel attribut de C++23 qui apporte un moyen portable de fournir des informations supplémentaires à l'optimiseur via une expression d'argument. ReSharper C++ analyse désormais l'argument et prend en charge toutes les fonctionnalités usuelles d'information sur le code qu'il contient.

Unreal Engine

ReSharper C++ reconnaît désormais les traits de structure d'Unreal Engine. Dans les structures annotées par des traits, ReSharper C++ s'assure que les méthodes requises sont présentes et les génère si ce n'est pas le cas.

Une nouvelle inspection détecte les appels manquants aux méthodes de base, notamment dans les méthodes BeginDestroy et GetLifetimeReplicatedProps. Le correctif d'accompagnement insère l'appel Super requis.

Une autre nouvelle inspection signale les utilisations de IOnlineSubsystem::Get() et les remplace par Online::GetSubsystem(this->GetWorld()).

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

Disposition des types

Les info-bulles permettent désormais de voir rapidement des informations sur la disposition des types. Il suffit de survoler une classe ou un champ de classe pour connaître sa taille et son alignement.

Lorsque vous survolez un champ de classe, vous pouvez également voir sa position relative par rapport au début de l'objet, ainsi que le remplissage ajouté après le champ.

Améliorations du processus de changement de nom

Lorsque vous renommez un fichier, ReSharper C++ comporte désormais une nouvelle option permettant de renommer les fichiers liés en utilisant le même nom. Par exemple, si vous renommez un fichier d'en-tête, le fichier .cpp qui inclut l'en-tête sera également renommé.

Une autre option de changement de nom permet de renommer automatiquement le type dans le fichier en fonction du nouveau nom de fichier.

Enfin, lorsque vous renommez un espace de nom dans un fichier avec un nom correspondant, vous avez la possibilité de renommer le fichier contenant.

Analyse du code

Nous avons mis à niveau le binaire clang-tidy intégré vers Clang 18, ce qui apporte de nouvelles vérifications et des améliorations provenant de la dernière version de LLVM.

Comme pour la prise en charge des commentaires NOLINT dans la mise à jour 2024.1, ReSharper C++ reconnaît désormais les pragmas include-what-you-use, afin de supprimer l'inspection Possible unused #include directive.

Nous avons ajouté un correctif pour utiliser reinterpret_cast sur les erreurs de conversion où le type source ou cible est un pointeur vers char ou std::byte.

Autres améliorations

L'option Why is ReSharper suggesting this? du menu d'inspection mène désormais aux recommandations C++ Core Guidelines relatives à l'inspection de code.

Le filtre Base method call est désormais disponible dans la fenêtre Find Results pour filtrer les appels de méthodes de base depuis la liste d'utilisations.

ReSharper C++ propose maintenant la saisie asynchrone, qui s'inscrit dans notre démarche d'amélioration continue des performances de ReSharper en permettant son exécution indépendamment de Visual Studio. Les tests que nous avons effectués en interne ont montré que l'activation de la saisie asynchrone améliore de façon notable la fluidité de l'expérience de saisie.

ReSharper C++ améliore également la compatibilité avec les projets CMake dans Visual Studio, en corrigeant plusieurs problèmes importants et en améliorant les performances lors de la modification du code.

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