ReSharper C++ 2021.2 und Visual Studio 2019 im Vergleich

Dieses Dokument listet einige der Funktionen von ReSharper C++ 2021.2 auf, die in Visual Studio 2019 fehlen oder nicht vollständig implementiert sind.

Microsoft Visual Studio 2019 16.10
ReSharper C++ 2021.2

Unterstützte Spezifikationen von C/C++

C/C++ C/C++
C++/CLI C++/CLI
C++/CX Nicht unterstützt
HLSL HLSL

Codeanalyse und Korrekturen

Codeanalyse on-the-fly während des Programmierens (Compiler-Fehler und -Warnungen) On-the-fly-Codeanalyse zur Entwurfszeit (Compilerfehler und -warnungen sowie mehr als 230 proprietäre Codeinspektionen)
Quick-Fixes zum Lösen von Codeproblemen Mehr als 290 Quick-Fixes zum Lösen von Codeproblemen
Integrierte Clang-Tidy-Diagnose und -Prüfungen Integrierte Clang-Tidy-Diagnose und -Prüfungen
Integrierte UnrealHeaderTool-Diagnose und -Prüfungen
Rechtschreibprüfung
Includes-Analyzer
Melden aller Fehler und Codequalitätsprobleme in beliebigen Scopes bis hin zur gesamten Lösung
Anpassbare Codeinspektionen: 5 Severity-Stufen können direkt im Alt+Enter-Menü konfiguriert werden
Teilen von Einstellungen für die Codeanalyse auf Lösungs- oder Team-Ebene

Refaktorierungen und Codetransformationen

Umbenennen Umbenennen
Signatur ändern Signatur ändern
Funktion extrahieren Methode extrahieren
Pure-virtual-Funktionen implementieren Überschreibende Member generieren
Deklaration/Definition erstellen Definition/Implementierung aus Deklaration generieren
Funktionsdefinition verschieben Implementierung aus dem Klassen-Geltungsbereich verschieben
In Raw-Stringliteral umwandeln In Raw-Stringliteral umwandeln und umgekehrt
In scoped enum umwandeln
Feld einführen
Namespace-Alias einführen
typedef einführen
using enum einführen
Variable einführen
Funktion in Inline-Code konvertieren
Variable durch Inline-Code ersetzen
typedef in Inline-Code konvertieren
Mehr als 65 Kontextaktionen (automatisierte lokale Codetransformationen)

Programmierunterstützung

Codevervollständigung Code-Completion mit intelligenten Vorschlägen und CamelCase-Matching
Syntaxhervorhebung Syntaxhervorhebung (konfigurierbare Farben für mehr als 25 Bezeichnertypen)
Tooltips für Codeelemente Tooltips für Codeelemente mit Syntaxhervorhebung und formatierten Dokumentationskommentaren
Auswahl erweitern/verkleinern Auswahl erweitern oder verkleinern
Auswahl auskommentieren (Kommentarsyntax automatisch gewählt) Auswahl auskommentieren mit Zeilen- oder Blockkommentar
Quickinfos und Parameterinfos Kurzdokumentation und Parameterinformationen
Inlay-Hinweise für Parameternamen, Typnamen, Namensräume, Typumwandlungen und Präprozessordirektiven; Push-to-Hint-Modus
Codeelemente neu anordnen
Fehlende #include-Direktive automatisch hinzufügen
Completion von Importen und Postfix-Completion
Completion von Anweisungen
Enthaltende Deklaration auswählen

Navigation und Suche

Navigieren zu Globale Suche
Gehe zu Deklaration „Gehe zu Deklaration“ funktioniert auch bei nicht aufgelösten Bezeichnern und Kommentaren und hilft bei der Navigation zwischen Verwendungen und passenden Präprozessor-Direktiven
Definition einsehen Deklarationen, Verwendungen, Basissymbole und Implementierungen einsehen
Code-Lesezeichen Code-Lesezeichen
Schnellstart Aktionen und Einstellungen finden
Verweise suchen Verwendungen finden
Diagramm von Include-Dateien erstellen Hierarchie enthaltener Elemente
Aufrufhierarchie Nicht unterstützt
Gehe zu Symbol Gehe zu Symbol
Gehe zu Typ Gehe zu Typ
Gehe zu Datei Gehe zu Datei
Gehe zu Dateielement Gehe zu Dateielement
„Gehe zu Text“ mit unscharfer Suche
Gehe zu Basis-Symbolen
Gehe zu abgeleiteten Symbolen
Gehe zu zugehörigen Dateien
Gehe zu benachbarter Datei
Gehe zu den letzten Codestellen oder Änderungen
Gehe zu primären Vorlagen oder Spezialisierungen
Zwischen Header/Quelle wechseln
Verwendungen in Datei markieren
Im Editor Vererbungshierarchie nach oben und unten durchlaufen
Haltepunktnavigation gemäß Kontext
Typhierarchie-Ansicht
Dateistruktur
Zwischen Todo-Elementen navigieren
Die aktuelle Datei im Projektmappen-Explorer suchen

Codegenerierung

Codeausschnitte (Vorlagen) Code-Snippets (Vorlagen), einschließlich Live, Surround- und Postfix-Vorlagen
Dateien aus Vorlagen generieren Dateien aus Vorlagen generieren
Code mit Codevervollständigung generieren Code mit Codevervollständigung generieren
Visueller Editor für Codeausschnitte (Vorlagen)
Vorausdeklaration hinzufügen oder #include-Direktive mit Import-Completion einfügen
Code anhand von Verwendungen generieren
Konstruktoren generieren
Definitionen generieren
Fehlende Case-Anweisungen generieren
Dokumentationskommentare generieren
Fehlende/überschreibende Member generieren
Operatoren fürs Kopieren und Verschieben generieren
Getters und Setters generieren
Gleichheitsoperatoren generieren
Relationale Operatoren generieren
Datenstromvorgänge (einschließlich Boost.Serialization-Funktionen) generieren
Hashfunktion generieren
Austauschfunktion generieren
Methoden für Google Mock generieren
Funktion generieren, die enum zu einem String konvertiert (konfigurierbar)
Fehlende Member generieren

Codestil und Bereinigung

Code neu formatieren Formatierungsregeln in wählbarem Gültigkeitsbereich anwenden (ReSharper C++ bietet dazu eigene Formatierungsregeln)
Unterstützung für EditorConfig Unterstützung für EditorConfig
Unterstützung für Clang-Format
Formatierungsregeln anhand des bestehenden Codes erlernen
Visueller Editor zum Konfigurieren der Formatierungsregeln für den ausgewählten Code
Informationsfenster für Dateiformatierung, in dem die Einstellungen und Dateien untersucht werden können, die sich auf die aktuelle Datei auswirken
Konfigurierbarer Namensstil mit vordefinierten Schemata (STL, Google, LLVM, CamelCase, Microsoft)
Konfigurierbare Regeln für die Sortierung von #include-Direktiven
Konfigurierbarer Syntaxstil für Initialisierungen, Deklarationen, überschreibende Funktionen, auto-Verwendungen, Positionierung von CV-Qualifizierern und Klammern

Unit-Tests

Unit-Test-Explorer Unit-Test-Explorer
Unterstützung für Microsoft Unit Testing Framework for C++ Nicht unterstützt
Google-Test-Unterstützung Google-Test-Unterstützung
Boost.Test-Unterstützung Boost.Test-Unterstützung
CTest-Unterstützung Nicht unterstützt
Catch-Unterstützung
doctest-Unterstützung
Tests vom Editor aus ausführen
Mehrere Unit-Test-Sitzungen

Debugging

DataTips im Editor Durchsuchbare DataTips mit konfigurierbarer Objektdarstellung im Editor
Haltepunkt-Toolfenster Haltepunkte-Toolfenster mit Vorschau, Kontextsuche, Gruppierung und Export
Inline-Überwachung
Schrittfilter

Unterstützung für die Unreal Engine

Unterstützung für Namenskonventionen der Unreal Engine
Integrierte UnrealHeaderTool-Inspektionen
Arbeiten mit HLSL-Shaderdateien
Unterstützung für Unreal-Engine-Remoteprozeduraufrufe
Codevervollständigung für Unreal-Engine-Reflection-Bezeichner
Unterstützung des Unreal-Engine-Projektmodells mit Code-Completion basierend auf Plugin- und Modulreferenzen
Echtzeit-Updates gemäß den Änderungen in .Build.cs, .Target.cs, .uproject bzw. .uplugin

Einstellungen verwalten

Einstellungen über die Microsoft ID synchronisieren Synchronisieren von Einstellungen und benutzerdefinierten Vorlagen mit dem Team über VCS oder beliebige Dateihosting-Dienste
Einstellungsebenen zum Speichern von Projektmappen-spezifischen Einstellungen ohne Konflikte
Herunterladen
Kostenlose 30-Tage-Testversion