ReSharper C++ und Visual Assist im Vergleich
Dieses Dokument enthält eine Beschreibung der Unterschiede zwischen ReSharper C++ und Visual Assist von Whole Tomato.
Da beide Produkte aktiv weiterentwickelt werden und ihre Funktionalität regelmäßig überarbeitet wird, weisen wir darauf hin, dass dieser Vergleich nur für bestimmte Versionen relevant ist, die in der Kopfzeile der Vergleichstabelle angegeben sind.
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
in | in |
Unterstützte Versionen von Visual Studio | 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 | Nicht unterstützt | |
Visual Studio 2005 | Nicht unterstützt | |
Visual Studio .NET 2003 | Nicht unterstützt | |
Visual Studio .NET 2002 | Nicht unterstützt | |
Visual C++ 6.0 | Nicht unterstützt | |
Unterstützte Spezifikationen von C/C++ | C/C++ | C/C++ |
C++/CLI | C++/CLI | |
Erkennen von Problemen im Code | Hervorheben falsch eingegebener Symbole | Hervorheben nicht aufgelöster Symbole |
Navigation zwischen Codeproblemen (Toolfenster, Editor) | Navigation zwischen Codeproblemen (Toolfenster, Editor, spezielle Befehle) | |
21 Clang-Tidy-Inspektionen | 264 integrierte Überprüfungen für Clang-Tidy | |
Keine passende Funktionalität | 652 integrierte Diagnosen für Clang-Tidy | |
Keine passende Funktionalität | 87 integrierte Überprüfungen für Clang Static Analyzer | |
Rechtschreibprüfung | Rechtschreibprüfung | |
Hervorheben von nicht übereinstimmenden Trennzeichen | Keine passende Funktionalität | |
Keine passende Funktionalität | Inkonsistente Benennungen | |
Null-Konstante kann durch nullptr ersetzt werden | Null-Konstante kann durch nullptr ersetzt werden | |
Funktion ohne „override“-Spezifizierer überschrieben | Funktion ohne „override“-Spezifizierer überschrieben | |
Konstruktor von shared_pointer/unique_pointer kann durch make_shared/make_unique ersetzt werden | Konstruktor eines intelligenten Zeigers anstelle von dessen Funktion verwendet | |
Keine passende Funktionalität | Mehr als 180 proprietäre Codeinspektionen | |
Keine passende Funktionalität | Codeinspektionen für die meisten Compilerfehler und einige Warnungen | |
Keine passende Funktionalität | Asynchrone Suche nach Codeproblemen in einem beliebigen Bereich | |
Keine passende Funktionalität | Codeinspektionen von der Befehlszeile aus ausführen | |
Quick-Fixes für Codeprobleme | Erstellen anhand Verwendung | Erstellen anhand Verwendung |
#include hinzufügen | Globale Variable, Typ, Typdefinition, Funktion, Makro importieren | |
Deklaration erstellen | Deklaration erstellen | |
Fall reparieren | Keine passende Funktionalität | |
Mehr als 10 Quick-Fixes für konfigurierbare Inspektionen | Mehr als 120 Quick-Fixes für konfigurierbare Inspektionen | |
Programmierunterstützung | Hervorhebung passender Trennzeichen | Hervorhebung
gepaarter Elemente
(einschließlich von Makros und Formatargumenten in printf und
boost::format ) |
Aktuelle Zeile hervorheben | Aktuelle Zeile hervorheben | |
Acronyme / Kurznotation | CamelHumps | |
Vorschlagslisten / Intelligente Vorschläge | Codevervollständigung mit intelligenten Vorschlägen | |
Punkt zu
-> konvertieren | Punkt zu -> und -> zu Punkt konvertieren | |
Intelligente Auswahl | Auswahl erweitern/verkleinern + Enthaltene Deklaration auswählen | |
Mehrere Zwischenablagen | Verlauf der Zwischenablage mit Vorschau der Elemente | |
Parameterinformationen | Parameterinformationen | |
Keine passende Funktionalität | Editor-Hinweise | |
Verbesserte farbliche Syntaxhervorhebung (6 verschiedene Bezeichnerarten) – Stable-Symbole in Kursivschrift – Lokale Symbole in Fettschrift | Syntaxhervorhebung (20 verschiedene Bezeichnerarten) | |
Verweise auf Symbol unter dem Cursor hervorheben | Verwendungen in der Datei hervorheben | |
Auswahl umschließen | Umschließen / Kommentieren mit Zeilen- oder Blockkommentar | |
Schließende Tokens automatisch einfügen | Passende Trennzeichen und Format automatisch einfügen | |
Quickinfo mit Dokumentation | Tooltips mit Syntaxhervorhebung und Dokumentation | |
Mehrzeilige Kommentare automatisch mit Enter erweitern | Mehrzeilige /**/ - und /// -Kommentare automatisch mit Enter erweitern | |
Unterstrich nach m und Shift einfügen | Keine passende Funktionalität | |
Verbesserte Listenfelder | Keine passende Funktionalität | |
Hervorhebung übereinstimmender Wörter (Code und Kommentare) | Keine passende Funktionalität | |
Spaltenanzeige (rechter Rand) | Keine passende Funktionalität | |
Zeilen sortieren | Keine passende Funktionalität | |
Pfad einfügen | Keine passende Funktionalität | |
Vorschau der Dateien von den Kommentaren aus | Keine passende Funktionalität | |
Vergrößerung des Editors zurücksetzen | Keine passende Funktionalität | |
Keine passende Funktionalität | Aktuelle Zeile oder Auswahl duplizieren | |
Keine passende Funktionalität | Postfix-Vervollständigung | |
Keine passende Funktionalität | Postfixvorlagen | |
Keine passende Funktionalität | Schnellansicht der Dokumentation | |
Keine passende Funktionalität | Automatische Hervorhebung von Funktionsausstiegen | |
Codestilunterstützung | Format after paste (Formatierungsregeln stammen von Visual Studio) | Formatierungsregeln auf einen beliebigen Bereich anwenden (mit der eigenen umfangreichen Sammlung an Formatierungsregeln von ReSharper C++) |
Keine passende Funktionalität | Formatierungsregeln anhand des bestehenden Codes erlernen | |
Keine passende Funktionalität | Unterstützung für EditorConfig | |
Keine passende Funktionalität | Unterstützung für Clang-Format | |
Keine passende Funktionalität | Mit der Codebereinigung Codestile anwenden und Coderedundanzen in einem beliebigen Bereich entfernen | |
Keine passende Funktionalität | Konfigurierbarer Datei-Headerstil | |
Keine passende Funktionalität | Konfigurierbarer Benennungsstil mit vordefinierten Schemata (STL, Google, LLVM, CamelCase, Microsoft) | |
Keine passende Funktionalität | Konfigurierbarer
Stil für die Modifizierer const und volatile
in generiertem Code | |
Keine passende Funktionalität | Konfigurierbarer Stil für die include -Direktive in generiertem Code | |
Keine passende Funktionalität |
Konfigurierbarer Stil für Standardinitialisierer von Zeigern
(0 |nullptr |NULL ) in generiertem Code | |
Refaktorierungen und Codetransformationen | Zugriff auf Refaktorierungsbefehle | Refactor this |
Rename | Rename | |
Signatur ändern | Signatur ändern | |
Variable einführen | Variable einführen | |
Encapsulate field | Encapsulate field (mit der Aktion Generate getters and setters) | |
Methode extrahieren | Methode extrahieren | |
Add/Remove braces | Add/Remove braces | |
Rename files | Rename file | |
Move implementation to source file | Move implementation out of class scope | |
Move Implementation to Header File / Class Declaration | Keine passende Funktionalität | |
Move selection to new file | Keine passende Funktionalität | |
Snippets for refactorings (bearbeitbar) | Keine passende Funktionalität | |
Convert Instance to Pointer und umgekehrt | Keine passende Funktionalität | |
Simplify Instance Declaration | Keine passende Funktionalität | |
Keine passende Funktionalität | Introduce field | |
Keine passende Funktionalität | Inline variable | |
Keine passende Funktionalität | Introduce namespace alias | |
Keine passende Funktionalität | Introduce/Inline typedef | |
Keine passende Funktionalität | Die Spezifizierer = default , = delete , pure oder virtual zu einer Funktion hinzufügen | |
Keine passende Funktionalität | Convert ?:
to if
und umgekehrt | |
Keine passende Funktionalität | Konvertiere
#include -Direktive von Winkelklammer zu Anführungszeichen und umgekehrt | |
Keine passende Funktionalität | Typedef-Deklaration zu Alias-Deklaration konvertieren und umgekehrt | |
Keine passende Funktionalität | In verschachtelte Namespace-Definition konvertieren | |
Keine passende Funktionalität | Regulären Rückgabetyp zu nachgestelltem Rückgabetyp konvertieren und umgekehrt | |
Keine passende Funktionalität | Abgeleiteten Typ erstellen: Klasse, Schnittstelle, Struktur, Schnittstellenklasse, Schnittstellenstruktur, Verweisklasse, Verweisstruktur | |
Keine passende Funktionalität | Relationalen Operator spiegeln | |
Keine passende Funktionalität | Operatorargumente spiegeln | |
Keine passende Funktionalität | Feld anhand von Konstruktorparametern initialisieren | |
Keine passende Funktionalität | if -Anweisung
invertieren | |
Keine passende Funktionalität | Geschachtelte
if -Anweisungen zusammenführen | |
Keine passende Funktionalität | Logischen Ausdruck negieren | |
Keine passende Funktionalität | Klammern entfernen | |
Keine passende Funktionalität | „auto“ durch explizite Typdeklaration ersetzen | |
Keine passende Funktionalität | „decltype“ durch den zugrunde liegenden Typ ersetzen | |
Keine passende Funktionalität | „decltype(auto)“ durch explizite Typdeklaration ersetzen | |
Keine passende Funktionalität | Deklaration teilen oder mit mehreren Deklarationen verknüpfen | |
Keine passende Funktionalität | Makroaufruf ersetzen | |
Keine passende Funktionalität | Vorlagen-Typalias ersetzen | |
Keine passende Funktionalität | Vorlagenargumente explizit angeben | |
Keine passende Funktionalität | typedef ersetzen (und optional alle geschachtelten typedefs) | |
Codegenerierung | Schnittstelle implementieren / Virtuelle Methoden | Fehlende / überschriebene Mitglieder generieren |
Implementierung erstellen | Implementierung generieren + Inline-Implementierung generieren | |
Methodenimplementierungen erstellen | Definitionen generieren | |
Fehlende Fallanweisungen hinzufügen | Fehlende Fallanweisungen für Enum generieren | |
Dokumentenmethode | Dokumentensymbol | |
Vorwärtsdeklaration hinzufügen | Vorwärtsdeklaration hinzufügen | |
Mitglied hinzufügen | Keine passende Funktionalität | |
Ähnliches Mitglied hinzufügen | Keine passende Funktionalität | |
Keine passende Funktionalität | Konstruktoren generieren | |
Keine passende Funktionalität | Operatoren fürs Kopieren und Verschieben generieren | |
Keine passende Funktionalität | Getters und Setters generieren | |
Keine passende Funktionalität | Gleichheitsoperatoren generieren | |
Keine passende Funktionalität | Relationale Operatoren generieren | |
Keine passende Funktionalität | Datenstromvorgänge (einschließlich Boost.Serialization -Funktionen) generieren | |
Keine passende Funktionalität | Hashfunktion generieren | |
Keine passende Funktionalität | Austauschfunktion generieren | |
Keine passende Funktionalität | Methoden für Google Mock generieren | |
Keine passende Funktionalität | Funktion generieren, die enum zu einem String konvertiert (konfigurierbar) | |
Keine passende Funktionalität | Abgeleiteten Typ erstellen | |
Codeausschnitte/-vorlagen | VA-Ausschnitte | 30 integrierte Live-Vorlagen + benutzerdefinierte Live-Vorlagen |
Mit Ausschnitten umschließen | 19 integrierte Umschließungsvorlagen + benutzerdefinierte Umschließungsvorlagen | |
Datei erstellen (muss zweimal für Header und cpp aufgerufen werden) | Integrierte Dateivorlagen für Klassen und Strukturen (erstellen Header- und CPP-Dateien zugleich) + benutzerdefinierte Dateivorlagen | |
Reservierte Strings /Umgebungsplatzhalter in Ausschnitten | Makros in Codevorlagen | |
Editor für Ausschnitte | Vorlagen-Editor | |
Ausschnitt anhand der Auswahl erstellen | Live-Vorlage anhand von Auswahl erstellen | |
Keine passende Funktionalität | Vorlagen mit mehreren Dateien | |
Navigation und Suche | Go to declaration (mit Goto) | Go to declaration (reagiert auf Verwendungen) |
Go to implementation (mit Goto) | Go to implementation | |
VA-Gliederung | Dateistruktur | |
Recent files (VA-Ansicht) | Go to recent files | |
Open file in solution | Gehe zu Datei | |
Find symbol in solution | Gehe zu Symbol | |
Goto related | Go to related files | |
Goto member | Go to File Member | |
Move scope | Go to next/previous member | |
Verweise suchen | Verwendungen finden | |
Find by context | Go to next/previous highlight / Find Results window | |
Entsprechende Datei öffnen | Zwischen Header und Quelle hin- und herschalten | |
Rückwärts und vorwärts navigieren | Durch den Navigationsverlauf bewegen | |
VA-Hashtags | Bookmarks | |
Quelllinks | Aufgaben mit externen URL-Mustern | |
Methoden in einer Datei auflisten | Keine passende Funktionalität | |
VA-Navigationsleiste | Keine passende Funktionalität | |
Schwebender Klassenkatalog | Keine passende Funktionalität | |
Projektdateien in dem Fenster Output hervorheben | Keine passende Funktionalität | |
Suchergebnisse hervorheben | Keine passende Funktionalität | |
Keine passende Funktionalität | Globale Suche | |
Keine passende Funktionalität | Go to text | |
Keine passende Funktionalität | Go to recent edits | |
Keine passende Funktionalität | Go to previous edit | |
Keine passende Funktionalität | Navigate to | |
Keine passende Funktionalität | Gehe zu Basis-Symbolen | |
Keine passende Funktionalität | Gehe zu abgeleiteten Symbolen | |
Keine passende Funktionalität | Go to type of symbol | |
Keine passende Funktionalität | Go to file nearby | |
Keine passende Funktionalität | Type Hierarchy | |
Keine passende Funktionalität | Hierarchie enthaltener Elemente | |
Keine passende Funktionalität | Go to primary template/specializations | |
Keine passende Funktionalität | Die aktuelle Datei im Projektmappen-Explorer suchen | |
Keine passende Funktionalität | Aktionen und Einstellungen finden | |
Keine passende Funktionalität | Haltepunktnavigation und Toolfenster | |
Keine passende Funktionalität | Includes-Analyzer | |
Debugging | Schrittfilter | Schrittfilter |
Temporär alle aktivierten Haltepunkte deaktivieren | Keine passende Funktionalität | |
Temporär alle Haltepunkte an den aktuellen Thread binden | Keine passende Funktionalität | |
Keine passende Funktionalität | Inline-Überwachungselemente | |
Keine passende Funktionalität | Suchbare DataTips | |
Unreal Engine | Unterstützung für UE4-Projekte | Unterstützung für UE4-Projekte |
Intelligente Vorschläge für UE4-Reflection-Bezeichner | Codevervollständigung für UE4-Reflection-Bezeichner | |
Keine passende Funktionalität | Kurzdokumentation für UE4-Reflection-Bezeichner | |
Unterstützung für UE4-Remoteprozeduraufrufe | Unterstützung für UE4-Remoteprozeduraufrufe | |
Keine passende Funktionalität | Refaktorierungen „Rename“ und „Change Signature“ für UE4-RPC-Funktionen | |
Engine-Quelle von Navigation ausschließen | Keine passende Funktionalität | |
Keine passende Funktionalität | Später durchgeführte Indizierung des Engine-Codes | |
Keine passende Funktionalität | Unterstützung für UE4-Namenskonventionen | |
Keine passende Funktionalität | UE4-spezifische Codeinspektionen | |
Unit-Tests | Keine passende Funktionalität | Unit-Test-Unterstützung für Google Test-, Catch 2.5-, Boost.Test- und doctest-Frameworks |
Verwaltung der Einstellungen | Einstellungen importieren/exportieren | Automatische mehrschichtige Synchronisierung der Einstellungen und benutzerdefinierten Vorlagen |