ReSharper C++ 2021.2 vs Visual Studio 2019

Ce document liste les fonctionnalités fournies par ReSharper C++ 2021.2 qui ne sont pas encore présentes ou pas complètement implémentées dans la version de base de Visual Studio 2019.

Microsoft Visual Studio 2019 16.10
ReSharper C++ 2021.2

Spécifications C/C++ prises en charge

C/C++ C/C++
C++/CLI C++/CLI
C++/CX Non pris en charge
HLSL HLSL

Analyse de code et correction

Analyse de code à la volée pendant la phase de conception (erreurs du compilateur et avertissements) Analyse de code à la volée pendant la phase de conception (erreurs et avertissements du compilateur et plus de 230 inspections du code propriétaire)
Correctifs rapides pour résoudre les problèmes de code Plus de 290 correctifs rapides pour résoudre les problèmes de code
Diagnostics et vérifications Clang-Tidy intégrés Diagnostics et vérifications Clang-Tidy intégrés
Diagnostics et vérifications UnrealHeaderTool intégrés
Vérification orthographique
Analyseur d'includes
Rapports sur tous les problèmes liés aux erreurs et la qualité du code, quelle qu'en soit l'étendue et jusqu'à l'ensemble de la solution
Inspections de code ajustables : 5 niveaux de sévérité peuvent être configurés à partir du menu Alt+Entrée
Partage des paramètres d'analyse du code au niveau de la solution ou d'une équipe

Refactorisations et transformations de code

Renommer Renommer
Changer la signature Changer la signature
Extraire la fonction Extraire la méthode
Implémentation de fonctions virtuelles pures Générer des membres de substitution
Créer une déclaration ou une définition Générer une définition/implémentation par déclaration
Déplacer la définition de la fonction Déplacer l'implémentation en dehors de la portée de la classe
Convertir en litéraux de chaîne bruts Convertir en litéraux de chaîne bruts et vice versa
Convertir en énumération délimitée
Introduire un champ
Introduire un alias d'espace de nom
Introduire typedef
Utiliser using enum
Introduire la variable
Inline function
Incorporer une variable
Inline typedef
Plus de 65 actions contextuelles (transformations automatisées du code local)

Assistance au codage

Saisie automatique du code Saisie semi-automatique du code avec suggestions intelligentes et correspondance CamelCase
Mise en évidence des éléments de syntaxe Mise en évidence des éléments de syntaxe (couleurs configurables pour plus de 25 types d'identificateurs)
Info-bulles pour les éléments de code Infobulles pour les éléments de code avec syntaxe mise en évidence et commentaires de documentation formatés
Développer/réduire la sélection Étendre/réduire la sélection
Sélection de commentaire (commentaire choisi automatiquement) Sélection de commentaire par ligne ou bloc
Conseils rapides et informations sur les paramètres Documentation rapide et informations sur les paramètres
Conseils d'insertion pour les noms de paramètres, les noms de types, les espaces de noms, les conversions de types et les directives du préprocesseur : mode Push-to-Hint
Réorganiser les éléments du code
Ajout automatique de la directive #include manquante
Saisie automatique des imports et complétion postfix
Saisie automatique des instructions
Sélectionner la déclaration de conteneur

Navigation et recherche

Accéder à Rechercher partout
Atteindre la déclaration La commande « Atteindre la déclaration » fonctionne aussi sur les identificateurs non résolus et les commentaires et aide à naviguer entre les utilisations et les directives correspondantes du préprocesseur
Voir la définition Voir les déclarations, les utilisations, les symboles de base, les implémentations
Signets de code Signets de code
Lancement rapide Rechercher les actions et les paramètres
Rechercher les références Rechercher les utilisations
Générer un diagramme des fichiers inclus Vue de la hiérarchie Includes
Hiérarchie d'appels Non prises en charge
Accéder à un symbole Accéder à un symbole
Accéder au type Accéder au type
Accéder à un fichier Accéder à un fichier
Accéder au membre du fichier Accéder au membre du fichier
Go to text avec recherche approximative
Accéder aux symboles de base
Accéder aux symboles dérivés
Accéder aux fichiers associés
Aller au fichier proche
Accéder aux emplacements et modifications récentes
Accéder au modèle primaire/aux spécialisations
Intervertir Header/Source
Mettre en évidence les utilisations dans le fichier
Naviguer de haut en vas dans la hiérarchie d'héritage dans l'éditeur
Navigation entre les points d'arrêt par contexte
Vue de la hiérarchie des types
Structure du fichier
Naviguer dans les éléments To-do
Localiser le fichier actuel dans l'explorateur de solutions

Génération de code

Fragments de code (modèles) Extraits de code (modèles), y compris les modèles live, surround et postfix
Générez des fichiers à partir du modèle Générez des fichiers à partir du modèle
Génération de code avec saisie semi-automatique Génération de code avec saisie semi-automatique
Éditeur visuel pour les extraits de code (modèles)
Ajouter une déclaration anticipée ou insérer une directive #include avec complétion de l'importation
Générer du code à partir de l'utilisation
Générer des constructeurs
Générer des définitions
Générer des instructions case manquantes
Générer des commentaires sur la documentation
Générer les membres manquants/de remplacement
Générer des opérateurs copier et déplacer
Générer des getters et setters
Générer des opérateurs d'égalité
Générer des opérateurs relationnels
Générer des opérations de flux (y compris des fonctions Boost.Serialization)
Générer une fonction de hachage
Générer une fonction de permutation
Générer des méthodes Google Mock
Générer une fonction qui convertit enum en chaîne (modifiable)
Générer des membres manquants

Style de code et nettoyage

Reformater le code Appliquer les règles de mise en forme partout (avec l'ensemble de règles de mise en forme propre à ReSharper C++)
Prise en charge d'Editor Config Prise en charge d'Editor Config
Prise en charge de Clang-Format
Apprendre les règles de mise en forme à partir du code existant
Éditeur visuel permettant de configurer les règles de mise en forme pour le code sélectionné
Fenêtre d'information sur la mise en forme du fichier permettant d'examiner les valeurs des paramètres et les fichiers qui affectent le fichier actuel
Style de dénomination personnalisable avec des schémas prédéfinis (STL, Google, LLVM, CamelCase, Microsoft)
Règles personnalisables pour le tri des directives #include
Style syntaxique personnalisable pour les initialisations, les déclarations, les fonctions de remplacement, l'utilisation de auto, l'emplacement des cv-qualifiers et les accolades

Test unitaire

Explorateur de tests unitaires Explorateur de tests unitaires
Framework de test unitaire Microsoft pour la prise en charge de C++ Non prises en charge
Prise en charge de Google Test Prise en charge de Google Test
Prise en charge de Boot.Test Prise en charge de Boot.Test
Prise en charge de CTest Non prises en charge
Prise en charge de Catch
prise en charge Doctest
Exécuter des tests depuis l'éditeur
Sessions multiples de tests unitaires

Débogage

DataTips dans l'éditeur DataTips pouvant faire l'objet d'une recherche avec présentation configurable des objets dans l'éditeur
Fenêtre d'outils pour les points d'arrêt Fenêtre d'outils des points d'arrêt avec aperçu, recherche contextuelle, regroupement et exportation
Surveillances inline
Filtres d'étapes

Prise en charge d'Unreal Engine

Prise en charge des conventions de nommage d'Unreal Engine
Inspections UnrealHeaderTool intégrées
Travailler avec des fichiers Shader HLSL
Prise en charge des appels de procédure distants d'Unreal Engine
Saisie automatique du code pour les spécificateurs de réflexion Unreal Engine
Prise en charge du modèle de projet Unreal Engine permettant la saisie semi-automatique du code sur la base des références du plugin et du module
Mises à jour en temps réel en fonction des modifications apportées aux fichiers .Build.cs, .Target.cs, .uproject ou .uplugin

Gestion des paramètres

Synchronisation des paramètres via Microsoft ID Synchroniser les paramètres et les modèles personnalisés avec l'équipe via VCS ou tout autre service d'hébergement de fichiers
Système de niveaux de paramètres permettant de stocker des paramètres différents pour des solutions différentes sans conflits
Télécharger
Essai de 30 jours gratuit