Merkmale von ReSharper C++

ReSharper C++ optimiert Visual Studio für C++-Entwickler mithilfe von Codeanalyse in Echtzeit, Quick-Fixes, leistungsfähiger Suche und Navigation, intelligenter Codevervollständigung, Refaktorierungen, einer Vielzahl an Optionen zur Codegenerierung sowie anderen Funktionen, mit deren Hilfe Sie Ihre Produktivität im Arbeitsalltag steigern können.

Codeanalyse

ReSharper C++ beginnt sofort mit der Codeanalyse, sobald Sie Ihr Projekt im Editor von Visual Studio öffnen, und analysiert die Dateien kontinuierlich, während Sie an Ihnen arbeiten, um Fehler und mögliche Probleme noch vor der Kompilierung zu erkennen.

Quick-Fixes

Mithilfe von mehr als 40 Quick-Fixes können Sie viele der gefundenen Codeprobleme sofort beheben. Sobald Sie das Symbol einer Glühbirne links neben Ihrem Code sehen, können Sie Alt+Eingabe drücken, um einen vorgeschlagenen Quick-Fix zu übernehmen.

Wenn z. B. eine nicht initialisierte Variable gefunden wird, können Sie sie sofort mit dem Standardwert initialisieren. Andere Quick-Fixes erlauben das Hinzufügen von fehlenden #include-Direktiven und das Löschen von überflüssigen Qualifizierern in einer bestimmten Anweisung oder in einem größeren Bereich wie einer Datei oder der gesamten Projektmappe.

Code aus Verwendungen in ReSharper C++ generieren

Erstellen anhand Verwendung

Ein weiterer Vorteil von Quick-Fixes besteht darin, dass Sie Klassen, Methoden, Variablen, Eigenschaften und Felder verwenden können, noch bevor Sie sie deklarieren. Wenn ReSharper C++ ein nicht deklariertes Symbol findet, schlägt es ein Quick-Fix vor, um die entsprechende Symboldeklaration basierend auf ihrer Verwendung zu generieren.

Codeprobleme finden

Codeprobleme finden

ReSharper C++ kann für jeden beliebigen Bereich wie Datei, Projekt oder Projektmappe alle gefundenen Codeprobleme in einem speziellen Toolfenster anzeigen.

Find Code Issues läuft im Hintergrund, sodass Sie weiterhin im Code navigieren und ihn bearbeiten können, während ReSharper C++ eine Analyse ausführt und das Toolfenster Inspection Results aktualisiert.

Sobald die Ergebnisse fertig sind, können sie anhand verschiedener Kriterien gruppiert und nach bestimmten Arten von Problemen durchsucht werden. Darüber hinaus können Sie Berichte mit den Ergebnissen von Find Code Issues speichern und laden.

Codeanalyse für C++ über die Befehlszeile

Codeanalyse für C++ über die Befehlszeile

Codeinspektionen von ReSharper C++ sind auch über InspectCode verfügbar, ein kostenloses Befehlszeilentool, mit dem ReSharper-Inspektionen außerhalb von Visual Studio ausgeführt werden können.

Um InspectCode verwenden zu können, müssen Sie das Paket mit den Befehlszeilentools herunterladen und entpacken und die Datei InspectCode.exe mit Ihrer Projektmappendatei als Parameter ausführen. Weitere Informationen zur Verwendung von InspectCode finden Sie in diesem Artikel.

Einstellungen für Clang-Tidy

Clang-Tidy

ReSharper C++ bietet eine nahtlose Integration mit Clang-Tidy, einem leistungsfähigen Opensource-Tool zur Codeanalyse auf Basis des Clang-Compilers. Die Integration bietet Codeüberprüfungen und Quick-Fixes.

Syntaxstil

ReSharper C++ enthält eine Reihe von Syntaxstil-Einstellungen, mit denen Sie ReSharper dazu bringen können, Ihrem bevorzugten Codestil zu folgen und diesen auf Ihren gesamten Codebestand anzuwenden.

Syntaxstil

Sie können Ihre Syntaxstil-Einstellungen auf der Seite Code Editing | C++ | Syntax Style anpassen. Die gewählten Optionen werden sowohl für die Codegenerierung als auch für die Codestil-Durchsetzung verwendet.

Quick-Fixes

ReSharper C++ will highlight style violations and offer you quick-fixes to help eliminate them. Alle Syntaxstil-Quick-Fixes können auf Gültigkeitsbereiche angewendet werden, einschließlich lokaler Bereiche wie Funktionskörper oder Klassendefinitionen.

Syntaxstil anwenden

Zur Umsetzung des gewählten Syntaxstils steht Ihnen die Codebereinigung oder die dedizierte Aktion Apply Syntax Style zur Verfügung. Dadurch werden die Syntaxstil-Probleme je nach aktuellem Kontext in der Auswahl, in der aktuellen Datei oder in mehreren Dateien behoben.

Refaktorierungen

ReSharper C++ stellt zahlreiche vollständige, gängige Refaktorierungen wie Umbenennen, Methode extrahieren und Signatur ändern zur Verfügung. Zusätzlich dazu bietet das Produkt Dutzende Kontextaktionen – lokale Codetransformationen, die mit einer einfachen Tastenkombination aufgerufen werden.

Refaktorierung zum Umbenennen in ReSharper C++

Rename

Das manuelle Ändern des Namens einer Klasse oder eines Makros kann diverse Probleme verursachen. Aus diesem Grund kümmert sich ReSharper C++ um alle erforderlichen Überprüfungen, wenn Sie die Refaktorierung Rename aktivieren.

Die Erweiterung führt entweder alle Änderungen automatisch aus oder zeigt Ihnen eine Liste mit Konflikten, die Sie manuell beheben können, um sicherzustellen, dass nur die nötigen und angemessenen Änderungen vorgenommen werden.

Die Refaktorierung Rename kann neben den von Ihnen eingegebenen Codesymbolen auch relevante Dateien (sowohl Quelldatei als auch Header-Datei) und entsprechenden Text in Kommentaren und der Dokumentation umbenennen sowie die Verwendungen in #include-Direktiven aktualisieren.

Refaktorierung zum Extrahieren von Methoden in ReSharper C++

Extract Method

Mithilfe der Refaktorierung Extract Method können Sie eine neue Methode erstellen, die auf einem ausgewählten Codefragment basiert. ReSharper analysiert den ausgewählten Codeblock und erkennt Variablen, die zu Methodenparametern konvertiert werden können oder den Rückgabewert darstellen.

Refaktorierung zum Ändern der Signatur in C++

Signatur ändern

Mithilfe der Refaktorierung Change Signature können Sie eine oder mehrere Änderungen an der Signatur einer Funktion vornehmen. Alle Verwendungen, Implementierungen und Überschreibungen der Funktion werden entsprechend aktualisiert.

Refaktorierung „Inline Variable“ in C++

Introduce Variable und Inline Variable

Mithilfe der Refaktorierung Introduce Variable können Sie eine neue lokale Variable auf der Basis eines ausgewählten Ausdrucks erstellen, sie mit dem Ausdruck initialisieren und anschließend alle Vorkommen des Ausdrucks im Code mit Referenzen auf die soeben eingeführte Variable ersetzen.

Umgekehrt ersetzt Inline Variable alle Vorkommen einer bestimmten Variable oder einer lokalen Konstante mit ihrem Initialisierer.

Die Refaktorierung Introduce Field in ReSharper C++

Introduce Field

Mithilfe der Refaktorierung Introduce Field können Sie ein neues Feld auf der Basis eines ausgewählten Ausdrucks erstellen, diesem Feld den ursprünglichen Ausdruck in seinem Initialisierer oder im Konstruktor zuweisen und alle Vorkommen ersetzen.

Introduce Namespace Alias

Mithilfe der Refaktorierung Introduce Namespace Alias können Sie Kürzel für tief geschachtelte Namespaces definieren.

Beim Aufruf dieser Refaktorierung wird Ihnen vorgeschlagen, einen Bereich festzulegen, für den Sie einen Namespace-Alias einführen möchten.

Refaktorierung „Introduce typedef“ und „Inline typedef“ in ReSharper C++

„Introduce typedef“ und „Inline typedef“

Mithilfe der Refaktorierung Introduce typedef können Sie schnell ein typedef für den ausgewählten Datentyp erstellen und diesen Datentyp samt allen Vorkommen mit dem neu erstellten „typedef“ ersetzen.

Die Refaktorierung Inline typedef macht das Gegenteil: Sie ersetzt ein vorhandenes typedef mit dem eigentlichen Datentyp.

Kontextaktionen

Zusätzlich zu den Refaktorierungen bietet ReSharper C++ auch ein Set an Kontextaktionen: lokale Codetransformationen, die dabei helfen, zwischen alternativen Syntaxoptionen zu wechseln. Ähnlich wie Quick-Fixes werden sie mit Alt+Eingabe aufgerufen.

So können Sie z. B. schnell auto mit einem expliziten Typ oder einen Typ mit auto ersetzen. Andere Kontextaktionen helfen dabei, geschachtelte if-Anweisungen zusammenzuführen, fehlende case-Ausdrücke in switch-Anweisungen für einen Enumerator zu generieren, einen Makroaufruf oder ein typedef zu ersetzen usw.

Programmierunterstützung

ReSharper C++ erweitert die Möglichkeiten von Visual Studio in Bezug auf das Hervorheben von Syntax und das Abgleichen von Strukturelementen im Code, bietet eine eigene Implementierung der Codevervollständigung und ermöglicht die Visualisierung der verfügbaren Dokumentation für alle C++-Symbole.

Auto-Hervorhebung für exit-Punkte

Syntax- und Strukturhervorhebung

ReSharper C++ erkennt Dateien im Format *.c, *.cc, *.cxx, *.cpp, *.h und *.hpp in Ihrer Projektmappe und wendet ein Farbschema zum Hervorheben von Quellcode in diesen Dateien an, das Sie jederzeit bearbeiten können.

Zusätzlich dazu hebt ReSharper C++ zusammengehörige Elemente hervor, sobald Sie den Cursor bei einem Element aus einem Paar platzieren, z. B. Trennzeichen, Makros oder Formatspezifizierer und Argument im Funktionsaufruf printf.

Wenn Sie den Cursor beim exit-Punkt einer Funktion, einer Schleife oder einer switch-Anweisung (return, throw, break usw.) platzieren, hebt ReSharper C++ jetzt automatisch alle anderen exit-Punkte der Funktion oder Schleife hervor.

Autovervollständigung für C++-Symbole, die nicht zur aktuellen Datei gehören

Codevervollständigung

In C++-Dateien können Sie während der Eingabe von Code die Codevervollständigung verwenden, die unter anderem auch Vorschläge zur Codegenerierung macht.

Die Codevervollständigung schlägt auch Symbole vor, die noch nicht zur aktuellen Datei gehören. Wenn Sie ein solches Symbol in der Liste mit Vorschlägen auswählen, wird die entsprechende #include-Direktive automatisch hinzugefügt.

Zusammenfassung der Dokumentation

Das Pop-up mit der Dokumentations-Schnellansicht zeigt die Dokumentation basierend auf Doxygen-Kommentarblöcken an, ohne dass Sie zur Definition eines Symbols navigieren müssen: Drücken Sie einfach Strg+Umschalt+F1 in der Standardbelegung der Tastatur.

Selbst wenn für ein Symbol keine Doxygen-Dokumentation vorhanden ist, zeigt die Dokumentations-Schnellansicht die Symbolsignatur an.

ReSharper C++ kann für C++-Codeelemente außerdem ausführliche Tooltips mit hervorgehobener Syntax anzeigen. Die Tooltips zeigen die Funktions- und Variablentypen sowie die Dokumentation an.

XML-Dokumentationskommentare im C#-Stil werden manchmal auch für C++-Symbole verwendet. ReSharper C++ zeigt sie korrekt im Pop-up der Dokumentations-Schnellansicht und in der QuickInfo an.

C++/CLI

C++ Unterstützung

C++/CLI ist ein Set aus C++-Spracherweiterungen von Microsoft für einfache Interoperabilität zwischen verwaltetem und systemeigenem Code. ReSharper bietet neben umfangreicher Unterstützung von sowohl verwalteten Sprachen als auch C++ selbstverständlich auch Hilfe beim Schreiben von Code in C++/CLI.

Innerhalb von C++/CLI-Code haben Sie Zugriff auf die gleichen Refaktorierungen und Intention-Aktionen wie in reinem C++-Code. Darüber hinaus besteht die Möglichkeit, zwischen C#- und C++/CLI-Umgebungen zu navigieren.

Dank ReSharper C++ können Sie sich mühelos durch Ihren Code bewegen. Suchen Sie mittels einfacher Tastenkürzel nach Deklarationen, Membern, Methodenaufrufen oder den Membern in einer Vererbungshierarchie.

Menü „Navigate To“ in ReSharper C++

Kontextbezogene Navigation

Für alle Symbole mit separater Deklaration und Definition zeigt ReSharper C++ auf der linken Seite das Symbol Navigate to declaration/definition an (Symbol in ReSharper C++ für die Navigation zur Deklaration/Definition). Klicken Sie das Symbol an oder drücken Sie Strg+B, um schnell zwischen der Deklaration und der dazugehörigen Definition zu wechseln.

Zu anderen kontextabhängigen Navigationsoptionen in in ReSharper C++ gehört die Navigation von einem ausgewählten Symbol zu seinen Verwendungen, zur Basis oder zu abgeleiteten Symbolen.

Kontextunabhängige Navigation in ReSharper C++

Go to anything

ReSharper C++ bietet eine Reihe an kontextunabhängigen Navigationsbefehlen, darunter Go to File, Go to Symbol, Go to File Member und Go to Everything.

All diese Befehle unterstützen die Suche auf „lowerCamelCase“-Basis und die Filterung nach Pfad. Wenn Sie z. B. fc movie im Pop-up Go to Everything eingeben, erhalten Sie eine Liste mit Dateien und Dateimembern, die den String movie im Namen enthalten und die entweder zum Projekt FollowerC oder zum Namespace FollowerConstants gehören (beide lassen sich fc zuordnen).

Visualisierung von Hierarchien

ReSharper C++ gibt Ihnen einen Überblick über die Vererbungshierarchie, zu der ein bestimmter Typ gehört. Sie sehen sowohl die Basistypen als auch die Vererber des ausgewählten Typs und können mit nur einem Klick zu diesen navigieren.

Zusätzlich dazu bietet ReSharper C++ eine Hierarchieansicht, welche die durch die #include-Direktive festgelegten Abhängigkeiten visualisiert.

Verwendungen eines Symbols finden mit ReSharper C++

Verwendungen finden

Mithilfe von Find Usages können Sie nach allen Referenzen eines bestimmten Symbols im C++-Code Ihrer Projektmappe suchen.

Nach Abschluss der Suche werden die gefundenen Vorkommen in einem Toolfenster angezeigt und können gruppiert und gefiltert werden. Ein Vorschaubereich ist ebenfalls verfügbar.

Dateistruktur in C++

Dateistruktur

Mit ReSharper C++ können Sie die Struktur des aktuellen Dokuments im Fenster File Structure anzeigen, wodurch die Navigation in großen Dateien erheblich vereinfacht wird.

Sobald Sie zu einem anderen Tab des Editors wechseln, zeigt das Toolfenster die Struktur der entsprechenden Datei an.

„To-do Explorer“ in ReSharper C++

To-do Explorer

Im Toolfenster To-do Explorer können Sie Kommentare, die eines der 3 Standardmuster für To-do-Anmerkungen (Bug, Todo und Not Implemented) oder eines Ihrer benutzerdefinierten Muster enthalten, gruppieren und filtern.

Wenn Sie die vollständige ReSharper Ultimate-Lizenz verwenden und eine mehrsprachige Projektmappe haben, sammelt der To-do Explorer alle To-do-Elemente aus den unterstützten Sprachen: C#, VB.NET, C++, JavaScript, XAML, HTML usw.

Codegenerierung

ReSharper C++ bietet eine Vielzahl an Möglichkeiten zum Generieren von Code aus Standardformulierungen. Zusätzlich zur Deklaration und Definition von Symbolen basierend auf ihren bereits vorhandenen Verwendungen kann die Erweiterung Typmember, umschließende Codeblöcke und sonstige Codeausschnitte erstellen, die Sie häufig in Ihrer Codebasis verwenden.

Pop-up für Codegenerierung in ReSharper C++

Generierung von Standardcode

ReSharper C++ ermöglicht die schnelle Erstellung von fehlenden Membern, überschreibenden Membern, Gleichheitsoperatoren und relationalen Operatoren, Definitionen auf der Basis von vorhandenen Deklarationen, Hash- und swap-Funktionen und Konstruktoren.

Drücken Sie einfach Alt+Einfg im Text-Editor, um das Menü Generate zu öffnen und alle verfügbaren Optionen anzuzeigen.

Vorlagen zum Umschließen von Code in ReSharper C++

Code- und Dateivorlagen

ReSharper C++ bringt 29 anpassbare Vorlagen mit. Einige sind gewöhnliche Codeausschnitte, andere sind speziell zum Umschließen einer Codeauswahl gedacht.

Darüber hinaus können Sie Dateivorlagen verwenden und erstellen. Drücken Sie Strg+Alt+Einfg, um im aktuellen Projekt schnell eine Klasse hinzuzufügen.

Codestilunterstützung

In ReSharper C++ lernt die Codeformatierung von Ihrem bestehenden Code, und Sie können Ihre Einstellungen zu Formatierung und Codestil mit Ihren Teammitgliedern teilen.

Hilfe für Codestil in ReSharper C++

Codeformatierung

Mit ReSharper C++ können Sie Regeln zur Codeformatierung separat für bestimmte Projektmappen konfigurieren und anwenden.

Anstatt alle verfügbaren Optionen zur Codeformatierung zu durchsuchen, können Sie einen Codeblock auswählen und nur solche Optionen konfigurieren, die für diesen Block relevant sind.

Codestil-Einstellungen für Standard-Zeigerinitialisierer

Codestil-Einstellungen

Um für einen konsistenten Stil im gesamten Team zu sorgen, können Sie Ihre Format- und Benennungseinstellungen in einer Einstellungsdatei speichern und sie mit Ihren Teammitgliedern teilen.

ReSharper C++ erlaubt Ihnen außerdem, andere Bereiche des Coding-Standards für das Team festzulegen, z. B. die Reihenfolge von Modifikatoren und den bevorzugten Wert von Zeigerinitialisierern. So können Sie z. B. 0, nullptr oder NULL als bevorzugter Stil des Initialisierers angeben. ReSharper C++ wird bei der Generierung neuer Initialisierer Ihre Wahl berücksichtigen.

Rufen Sie den Menüpunkt „ReSharper Options | Code Editing | C++ | Naming Style“ auf, um einen der vorgefertigten C++-Benennungsstile zu wählen: STL, Google, LLVM, CamelCase oder Microsoft.

Erkennen von Codestil

Erkennen von Formatierungseinstellungen

Am einfachsten lassen sich Formatierungseinstellungen anpassen, indem sie aus dem bestehenden Code herausgelesen werden. Rufen Sie den Menüpunkt „ReSharper | Edit | Detect formatting settings“ auf, damit ReSharper die Einstellungen der Codeformatierung erkennt. Ein Toolfenster wird geöffnet, das die erkannte Formatierung enthält und Ihnen ermöglicht, diese zu überprüfen und in den ReSharper-Einstellungen in Ihrem System zu übernehmen. Alternativ können Sie diese in einem Einstellungsbereich mit Teamfreigabe speichern und anderen Entwicklern in Ihrem Team ermöglichen, beim Öffnen der Projektmappe auf dieselbe Konfiguration der Codeformatierung zuzugreifen.

Weitere Informationen

Unit-Tests

Der Runner für Unit-Tests mit Visual Studio-Integration unterstützt die Frameworks Google Test, Boost.Test, Catch und Doctest.

Runner für Unit-Tests

ReSharper C++ enthält einen Runner für Unit-Tests mit Visual Studio-Integration, der die Frameworks Google Test, Boost.Test, Catch und Doctest unterstützt.

Der Runner erlaubt Ihnen, direkt aus dem Text-Editor über das Kontextmenü Alt+Eingabe Unit-Tests auszuführen und zu debuggen sowie Tests zu verschiedenen Sitzungen hinzuzufügen.

Mithilfe der ReSharper C++-Toolfenster Unit Test Explorer und Unit Test Sessions können Sie Unit-Tests anzeigen, gruppieren, filtern und ausführen sowie Unit-Test-Sitzungen erstellen und verwalten.

Unreal Engine

Wenn Sie Spiele auf Basis der Unreal Engine entwickeln, profitieren Sie von der spezifischen Unreal-Engine-Unterstützung in ReSharper C++.

UE-Namenskonventionen

UE-Namenskonventionen

ReSharper C++ berücksichtigt die UE-Namenskonventionen bei allen Aktionen – zum Beispiel bei den Refactorings zum Einführen und Umbenennen von Variablen, bei der Generierung von Getter- und Setter-Methoden usw. Die Erweiterung analysiert außerdem die Benennungen, die Sie in Ihrer Codebasis verwenden. Mit den Inspektionen Inconsistent UE naming können Abweichungen von den UE-Namenskonvention hervorgehoben werden.

Weitere Informationen

UE-Analyse

UE-Codeanalyse

Für UE-basierten Code sind auch einige Codeanalyse-Prüfungen verfügbar, vor allem für fehlende oder falsch eingestellte UE-Reflection-Makros:

  • Die UCLASS-Deklaration muss UObject oder eine davon abgeleitete Klasse öffentlich erben.
  • Mit UCLASS markierte Klassen dürfen nur eine einzige von UObject abgeleitete Klasse oder UObject direkt erben.
  • UCLASS muss eine Klasse sein – USTRUCT muss ein Struct sein.
  • UInterface muss leer sein.
  • Fehlender UCLASS/UINTERFACE/USTRUCT-Makroaufruf in der Deklaration von UE-Klassen/-Schnittstellen/-Structs.
  • UE-Klassen können nicht in einer anderen Klasse deklariert werden.
  • Ein UPROPERTY oder UFUNCTION-Makroaufruf vor Deklaration hat keine Auswirkung.
  • Objekte, die in einem Nicht-UPROPERTY-Member gespeichert sind, können jederzeit von der Garbage Collection beseitigt werden.
UnrealHeaderTool

UnrealHeaderTool

ReSharper C++ bietet eine nahtlose Integration mit UnrealHeaderTool, damit Sie mehr Probleme mit den Metadaten der Unreal-Engine-Klasse direkt im Editor abfangen können. Wenn Sie mit einem Unreal-Engine-Projekt arbeiten, führt ReSharper C++ automatisch UnrealHeaderTool auf der Datei aus, die Sie bearbeiten, und zeigt alle Fehler oder Warnungen an, genau wie bei anderen Inspektionen. Schauen Sie sich die Integration von UnrealHeaderTool in Aktion an.

Completion von UE-Reflection-Bezeichnern

Codevervollständigung für Reflexionsspezifizierer

Um Ihnen die Verwendung der Reflexionsmakros der Unreal Engine zu erleichtern, bietet ReSharper C++ Vervollständigung für Reflexionsspezifizierer innerhalb von Reflexionsmakros.

Dokumentation von UE-Reflection-Bezeichnern

Codedokumentation für Reflection-Bezeichner

Wenn sich die Einfügemarke auf einem UE-Reflection-Bezeichner befindet, wird im Kurzdokumentations-Popup (Strg+Q) die integrierte Dokumentation für diese Bezeichner angezeigt.

RPC-Navigation

Unterstützung für UE-Remote-Prozeduraufrufe

ReSharper C++ identifiziert RPCs anhand der Schlüsselwörter Client, Server oder NetMulticast in der Deklarationsanweisung UFUNCTION. ReSharper C++ weiß bei solchen Funktionen, dass die Funktion _Implementation generiert werden muss; dasselbe gilt für die Funktion _Validate, wenn WithValidation angegeben wurde. Die Erweiterung kann beide oder nur eines generieren, je nach dem, welche fehlen.

Wenn Sie zu einer Definition navigieren, werden beide Funktionen (_Validate und _Implementation) vorgeschlagen. Alternativ stehen diese Optionen auch im Menü Alt+Enter unter „Related UE functions“ zur Verfügung.

Weitere Informationen

UE-generierte Header-Prüfungen

Auto-Import und generierte Header

Wenn Sie ein Symbol verwenden, das im aktuellen Bereich nicht verfügbar ist, hebt ReSharper C++ dieses in roter Schrift hervor und schlägt vor, das fehlende #include hinzuzufügen, falls möglich. Wenn #include in einer Header-Datei fehlt, wird die Direktive vor .generated.h eingefügt (diese Datei sollte die letzte auf der include-Liste sein). Fehlerhaft platzierte #include-Direktiven werden durch die entsprechende Inspektion hervorgehoben.

Die Rename-Refaktorierung in Unreal-Engine-Projekten aktualisiert auch die entsprechende *.generated.h-Include-Direktive sowie die zugehörigen Dateien mit den Präfixen A, F, E, T, S und U.

UE-Codegenerierung

Codegenerierung

Die Postfix-Template „new“ für UCLASS wird zu einem ordnungsgemäßen Factory-Funktionsaufruf erweitert (der das erstellte Objekt im Garbage Collector registriert). Sie können entsprechend bezeichnete Live-Templates nutzen, um USTRUCT/UCLASS/UENUM/UENUMCLASS zu generieren.

USF-Dateien

USF-Dateien

Die USF-Dateien von Unreal Engine basieren auf HLSL und enthalten den plattformübergreifenden Shader-Code. ReSharper C++ versteht jetzt die in diesen Dateien oft verwendeten virtuellen Dateipfade und unterstützt alle üblichen Aktionen.

HLSL

SpatialOS GDK

Das SpatialOS Game Development Kit ist ein Unreal-Engine-4-Fork, mit dem Online-Spiele in der Cloud ausgeführt und verwaltet werden können. ReSharper C++ erkennt CrossServer, SpatialType, NonSpatialType und andere SpatialOS-Bezeichner. Weitere Informationen

HLSL

HLSL

ReSharper C++ bietet eine Erstunterstützung für HLSL (High-Level Shading Language). ReSharper C++ hebt HLSL-Code gemäß Ihrem Standardfarbschema hervor und zeigt für die Codeelemente Inlay-Hinweise und Tooltips mit Typinformationen und Dokumentation an. Sie haben außerdem die Möglichkeit, in Ihrer gesamten Lösung, in referenzierten Dateien und in Standardbibliotheken nach Structs, Funktionen oder Parametern zu suchen und im Handumdrehen zu ihnen zu springen. Und um die HLSL-Erfahrung abzurunden, bietet ReSharper C++ intelligente Code-Completion, automatisches Einfügen paarweiser Zeichen und noch einiges mehr.

HLSL

Die volle Leistung der Kontrollflussanalyse von ReSharper kommt in HLSL-Shader-Dateien zum Tragen, einschließlich Warnungen über nicht erreichbaren Code, nicht initialisierte Variablen, redundante Kontrollfluss-Sprünge und bedingte Branches und vieles mehr.

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar