ReSharper C++ vs. Visual Assist
Ce document décrit en quoi ReSharper C++ diffère de Visual Assist par Whole Tomato.
Les deux produits sont activement développés et leurs fonctionnalités changent régulièrement. Nous considérons donc que cette comparaison est valable pour les versions spécifiques indiquées dans l'en-tête du tableau comparatif.
If you discover any inaccurate items in this table, please post a comment below to let us know, and we'll update the table as soon as possible.
Visual Assist
dans | dans |
Versions de Visual Studio prises en charge | Visual Studio 2019 | Visual Studio 2019 |
Visual Studio 2017 | Visual Studio 2017 | |
Visual Studio 2015 | Visual Studio 2015 | |
Visual Studio 2013 | Visual Studio 2013 | |
Visual Studio 2012 | Visual Studio 2012 | |
Visual Studio 2010 | Visual Studio 2010 | |
Visual Studio 2008 | Non prises en charge | |
Visual Studio 2005 | Non prises en charge | |
Visual Studio .NET 2003 | Non prises en charge | |
Visual Studio .NET 2002 | Non prises en charge | |
Visual C++ 6.0 | Non prises en charge | |
Spécifications C/C++ prises en charge | C/C++ | C/C++ |
C++/CLI | C++/CLI | |
Détection de problèmes de code | Mise en évidence des erreurs de frappe des symboles | Mise en évidence des symboles non résolus |
Navigation entre les problèmes de code (fenêtre d'outils, éditeur) | Navigation entre les problèmes de code (fenêtre d'outils, éditeur, commandes dédiées) | |
21 inspections Clang-Tidy | 264 contrôles Clang-Tidy intégrés | |
Pas de fonctionnalité correspondante | 652 diagnostics Clang-Tidy intégrés | |
Pas de fonctionnalité correspondante | 87 contrôles Clang Static Analyzer intégrés | |
Vérification orthographique | Vérification orthographique | |
Mise en évidence des délimiteurs non correspondants | Pas de fonctionnalité correspondante | |
Pas de fonctionnalité correspondante | Incohérences de nommage | |
La constante zéro peut être remplacée par nullptr | La constante zéro peut être remplacée par nullptr | |
Override de fonction dans spécificateur 'override' | Override de fonction dans spécificateur 'override' | |
Le constructeur de shared_pointer/unique_pointer peut être remplacé par make_shared/make_unique | Constructeur du pointeur intelligent utilisé à la place de sa fonction make | |
Pas de fonctionnalité correspondante | Plus de 180 inspections de code intégrées supplémentaires | |
Pas de fonctionnalité correspondante | Inspections de code pour la plupart des erreurs de compilateur et certains avertissements | |
Pas de fonctionnalité correspondante | Recherche asynchrone des problèmes de code dans n'importe quelle portée | |
Pas de fonctionnalité correspondante | Exécution de l'inspection de code à partir de la ligne de commande | |
Correctifs rapides pour problèmes de code | Créer à partir d'une utilisation | Créer à partir d'une utilisation |
Ajouter #include | Importer variable globale, type, définition de type, fonction, macro | |
Créer une déclaration | Créer une déclaration | |
Réparer la casse | Pas de fonctionnalité correspondante | |
Plus de 10 correctifs rapides pour les inspections configurables | Plus de 120 correctifs rapides pour les inspections configurables | |
Assistance au codage | Mise en évidence des délimiteurs correspondants | Mise en évidence
des éléments correspondants
(y compris les macros et les arguments de format dans printf et
boost::format ) |
Mise en évidence de la ligne actuelle | Mise en évidence de la ligne actuelle | |
Acronymes / Sténographie | CamelHumps | |
Listes de suggestions / Suggestions intelligentes | Saisie automatique du code avec suggestions intelligentes | |
Conversion des points en
-> | Conversion des points en -> et des -> en points | |
Sélection intelligente | Développer/réduire la sélection + Sélectionner la déclaration contenante | |
Presse-papiers multiples | Historique du presse-papiers avec aperçu des éléments | |
Infos de paramètre | Infos de paramètre | |
Pas de fonctionnalité correspondante | Conseils pour l'éditeur | |
Coloration de la syntaxe améliorée (6 types d'identification différents) / Symboles stables en italiques / Symboles locaux en gras | Mise en évidence des éléments syntaxiques (20 types d'identification différents) | |
Mise en évidence des références au symbole sous le curseur | Mise en évidence des utilisations dans le fichier | |
Sélection de l'entourage | Entourer avec / Commenter avec commentaire de ligne ou de bloc | |
Insérer automatiquement les jetons de fermeture | Insérer automatiquement le délimiteur et format correspondants | |
Informations rapides avec documentation | Infobulles de documentation pour la syntaxe surlignée | |
Étendre automatiquement les commentaires sur plusieurs lignes avec Entrée | Extension automatique sur plusieurs lignes des commentaires /**/ et /// en appuyant sur Entrée | |
Insérer un tiret bas après m et Maj | Pas de fonctionnalité correspondante | |
Zones de liste améliorés | Pas de fonctionnalité correspondante | |
Mise en évidence des mots correspondants (code et commentaires) | Pas de fonctionnalité correspondante | |
Indicateur de colonne (marge de droite) | Pas de fonctionnalité correspondante | |
Trier les lignes | Pas de fonctionnalité correspondante | |
Insertion de chemin | Pas de fonctionnalité correspondante | |
Aperçu des fichiers à partir des commentaires | Pas de fonctionnalité correspondante | |
Réinitialiser le zoom de l'éditeur | Pas de fonctionnalité correspondante | |
Pas de fonctionnalité correspondante | Dupliquer la ligne ou sélection actuelle | |
Pas de fonctionnalité correspondante | Complétion postfix | |
Pas de fonctionnalité correspondante | Modèles postfix | |
Pas de fonctionnalité correspondante | Documentation rapide | |
Pas de fonctionnalité correspondante | Mise en évidence automatique des sorties de fonction | |
Assistance au style de code | Mise en forme après collage (les règles de mise en forme sont héritées de Visual Studio) | Appliquer les règles de mise en forme dans n'importe quelle portée (avec le jeu complet de règles de mise en forme propre à ReSharper C++) |
Pas de fonctionnalité correspondante | Apprendre les règles de mise en forme à partir du code existant | |
Pas de fonctionnalité correspondante | Prise en charge d'Editor Config | |
Pas de fonctionnalité correspondante | Prise en charge de Clang-Format | |
Pas de fonctionnalité correspondante | Appliquer des styles de code et supprimer les redondances de code dans n'importe quelle portée avec le nettoyage de code | |
Pas de fonctionnalité correspondante | Style d'en-tête de fichier configurable | |
Pas de fonctionnalité correspondante | Style de dénomination configurable avec des schémas prédéfinis (STL, Google, LLVM, CamelCase, Microsoft) | |
Pas de fonctionnalité correspondante | Style
configurable pour les const et les modificateurs
volatiles dans le code généré | |
Pas de fonctionnalité correspondante | Style
configurable pour la directive include dans le code généré | |
Pas de fonctionnalité correspondante |
Style configurable pour les initialiseurs de pointeur par défaut
(0 |nullptr |NULL ) dans le code généré | |
Refactorisations et transformations de code | Accès aux commandes de refactorisation | Refactoriser ceci |
Rename | Rename | |
Signature de changement | Signature de changement | |
Introduire la variable | Introduire la variable | |
Encapsuler le champ | Encapsuler le champ (avec l'action Generate getters and setters) | |
Extraire la méthode | Extraire la méthode | |
Ajouter/supprimer les crochets | Ajouter/supprimer les crochets | |
Renommer les fichiers | Renommer le fichier | |
Déplacer l'implémentation dans le fichier source | Déplacer l'implémentation hors de la portée de la classe | |
Déplacer l'implémentation dans le fichier d'en-tête / la déclaration de la classe | Pas de fonctionnalité correspondante | |
Déplacer la sélection dans un nouveau fichier | Pas de fonctionnalité correspondante | |
Extraits pour les refactorisations (modifiable) | Pas de fonctionnalité correspondante | |
Convertir l'instance en pointeur et vice versa | Pas de fonctionnalité correspondante | |
Simplifier la déclaration de l'instance | Pas de fonctionnalité correspondante | |
Pas de fonctionnalité correspondante | Introduire un champ | |
Pas de fonctionnalité correspondante | Incorporer une variable | |
Pas de fonctionnalité correspondante | Introduire un alias d'espace de nom | |
Pas de fonctionnalité correspondante | Introduire/incorporer un typedef | |
Pas de fonctionnalité correspondante | Ajouter un spécificateur = default , = delete , pure ou virtual à une fonction | |
Pas de fonctionnalité correspondante | Convertir ?:
en if
et vice versa | |
Pas de fonctionnalité correspondante | Convertir une directive #include
entre crochets en citation et inversement | |
Pas de fonctionnalité correspondante | Convertir une déclaration typedef en déclaration d'alias et vice versa | |
Pas de fonctionnalité correspondante | Convertir en définition d'espace de nom incorporée | |
Pas de fonctionnalité correspondante | Convertir le type de retour régulier en type de retour de fin et vice versa | |
Pas de fonctionnalité correspondante | Créer un type dérivé : class, interface, struct, interface class, interface struct, ref class, ref struct | |
Pas de fonctionnalité correspondante | Inverser l'opérateur relationnel | |
Pas de fonctionnalité correspondante | Inverser les arguments d'opérateur | |
Pas de fonctionnalité correspondante | Initialiser le champ à partir du paramètre de constructeur | |
Pas de fonctionnalité correspondante | Inverser l'instruction
if | |
Pas de fonctionnalité correspondante | Fusionner les instructions if
imbriquées | |
Pas de fonctionnalité correspondante | Annuler l'expression logique | |
Pas de fonctionnalité correspondante | Supprimer les crochets | |
Pas de fonctionnalité correspondante | Remplacer 'auto' par une déclaration de type explicite | |
Pas de fonctionnalité correspondante | Remplacer 'decltype' par le type sous-jacent | |
Pas de fonctionnalité correspondante | Remplacer 'decltype(auto)' par une déclaration de type explicite | |
Pas de fonctionnalité correspondante | Diviser ou joindre une déclaration avec plusieurs déclarations | |
Pas de fonctionnalité correspondante | Remplacer l'appel de macro | |
Pas de fonctionnalité correspondante | Remplacer l'alias de type de modèle | |
Pas de fonctionnalité correspondante | Spécifier explicitement les arguments du modèle | |
Pas de fonctionnalité correspondante | Substituer typedef (et, optionnellement, tous les typedefs imbriqués) | |
Génération de code | Implémenter une interface / des méthodes virtuelles | Générer des membres manquants / prépondérants |
Créer une implémentation | Générer une implémentation + Générer une implémentation inline | |
Créer des implémentations de méthode | Générer des définitions | |
Ajouter des instructions Case manquantes | Générer des instructions Case manquantes pour enum | |
Documenter une méthode | Documenter un symbole | |
Ajouter une déclaration anticipée | Ajouter une déclaration anticipée | |
Ajouter un membre | Pas de fonctionnalité correspondante | |
Ajouter un membre similaire | Pas de fonctionnalité correspondante | |
Pas de fonctionnalité correspondante | Générer des constructeurs | |
Pas de fonctionnalité correspondante | Générer des opérateurs copier et déplacer | |
Pas de fonctionnalité correspondante | Générer des getters et setters | |
Pas de fonctionnalité correspondante | Générer des opérateurs d'égalité | |
Pas de fonctionnalité correspondante | Générer des opérateurs relationnels | |
Pas de fonctionnalité correspondante | Générer des opérations de flux (y compris des fonctions Boost.Serialization ) | |
Pas de fonctionnalité correspondante | Générer une fonction de hachage | |
Pas de fonctionnalité correspondante | Générer une fonction de permutation | |
Pas de fonctionnalité correspondante | Générer des méthodes Google Mock | |
Pas de fonctionnalité correspondante | Générer une fonction qui convertit enum en chaîne (modifiable) | |
Pas de fonctionnalité correspondante | Créer un type dérivé | |
Extraits/modèles de code | Extraits VA | 30 modèles dynamiques intégrés + modèles dynamiques personnalisés |
Entourer avec des extraits | 19 modèles d'encapsulation intégrés + modèles d'encapsulation personnalisés | |
Créer un fichier (doit être appelé deux fois pour l'en-tête et cpp) | Modèles de fichier intégrés pour class et struct (crée le header et le ccp en même temps) + modèles de fichier personnalisés | |
Chaînes réservées /emplacements réservés d'environnement dans les extraits | Macros dans les modèles de code | |
Editeur d'extraits | Éditeur de modèle | |
Créer un extrait à partir d'une sélection | Créer un modèles dynamique à partir d'une sélection | |
Pas de fonctionnalité correspondante | Modèles multi-fichiers | |
Navigation et recherche | Aller à la déclaration (with Goto) | Aller à la déclaration (prenant en compte l'utilisation) |
Aller à l'implémentation (avec Goto) | Aller à l'implémentation | |
Structure VA | Structure du fichier | |
Fichiers récents (vue VA) | Aller aux fichiers récents | |
Ouvrir le fichier dans la solution | Accéder à un fichier | |
Trouver le symbole dans la solution | Accéder à un symbole | |
Aller à associé | Go to Related Files | |
Aller au membre | Accéder au membre du fichier | |
Changer la portée | Aller au membre suivant/précédent | |
Rechercher les références | Rechercher les utilisations | |
Trouver à partir du contexte | Aller à la mise en évidence suivante/précédente / Fenêtre Rechercher les résultats | |
Ouvrir le fichier correspondant | Basculer entre l'en-tête et la source | |
Naviguer en arrière et en avant | Se déplacer dans l'historique de navigation | |
Hashtags VA | Marque-pages | |
Liens de source | Éléments à faire avec modèles d'URL externes | |
Lister les méthodes dans le fichier | Pas de fonctionnalité correspondante | |
Barre de navigation VA | Pas de fonctionnalité correspondante | |
Navigateur de classe en survol | Pas de fonctionnalité correspondante | |
Mettre en évidence les fichiers de projet dans la fenêtre Output | Pas de fonctionnalité correspondante | |
Mettre en évidence les résultats de la recherche | Pas de fonctionnalité correspondante | |
Pas de fonctionnalité correspondante | Rechercher partout | |
Pas de fonctionnalité correspondante | Aller au texte | |
Pas de fonctionnalité correspondante | Aller aux modifications récentes | |
Pas de fonctionnalité correspondante | Aller à la modification précédente | |
Pas de fonctionnalité correspondante | Naviguer à | |
Pas de fonctionnalité correspondante | Accéder aux symboles de base | |
Pas de fonctionnalité correspondante | Accéder aux symboles dérivés | |
Pas de fonctionnalité correspondante | Aller au type de symbole | |
Pas de fonctionnalité correspondante | Aller au fichier proche | |
Pas de fonctionnalité correspondante | Hiérarchie de type | |
Pas de fonctionnalité correspondante | Hiérarchie des includes | |
Pas de fonctionnalité correspondante | Accéder au modèle primaire/aux spécialisations | |
Pas de fonctionnalité correspondante | Localiser le fichier actuel dans l'explorateur de solutions | |
Pas de fonctionnalité correspondante | Rechercher les actions et les paramètres | |
Pas de fonctionnalité correspondante | Navigation et fenêtre d'outils des points de rupture | |
Pas de fonctionnalité correspondante | Analyseur d'includes | |
Débogage | Filtres d'étapes | Filtres d'étapes |
Désactiver temporairement tous les points de rupture activés | Pas de fonctionnalité correspondante | |
Lier temporairement tous les points de rupture au thread actuel | Pas de fonctionnalité correspondante | |
Pas de fonctionnalité correspondante | Surveillances inline | |
Pas de fonctionnalité correspondante | DataTips avec recherche | |
Unreal Engine | Prise en charge des projets UE4 | Prise en charge des projets UE4 |
Suggestions intelligentes pour les spécificateurs de réflexion UE4 | Saisie semi-automatique pour les spécificateurs de réflexions UE4 | |
Pas de fonctionnalité correspondante | Documentation rapide pour les spécificateurs de réflexion UE4 | |
Prise en charge des appels de procédure distants UE4 | Prise en charge des appels de procédure distants UE4 | |
Pas de fonctionnalité correspondante | Renommage et modification des refactorisations de signatures pour les fonctions RPC d'UE4 | |
Exclure la source du moteur de la navigation | Pas de fonctionnalité correspondante | |
Pas de fonctionnalité correspondante | Indexation retardée du code du moteur | |
Pas de fonctionnalité correspondante | Prise en charge des conventions de nommage UE4 | |
Pas de fonctionnalité correspondante | Inspections de code propres à UE4 | |
Test unitaire | Pas de fonctionnalité correspondante | Assistance aux tests unitaires pour les frameworks Google Test, Catch 2.5, Boost.Test et doctest |
Gestion des paramètres | Importation/exportation des paramètres | Synchronisation automatique multicouche des paramètres et des modèles personnalisés |