Das ist neu in ReSharper C++ 2024.3

ReSharper C++ 2024.3 verbessert die Performance bei großen Projektmappen, implementiert neue Sprachmerkmale von C++23 und C23 und führt das Refactoring Move to Folder ein. In Unreal-Engine-Projekten bietet ReSharper C++ jetzt Code-Completion für Gameplay-Tags und Argumente in Logging-Makros sowie eine verbesserte Unterstützung für Delegates.

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar

Leistungsoptimierungen

Für ReSharper C++ 2024.3 haben wir uns auf die Optimierung der Speichernutzung bei großen Projektmappen konzentriert und konnten den Speicherbedarf deutlich reduzieren. Unseren Tests zufolge liegt die Speichernutzung nach der anfänglichen Indizierung nun etwa 20% niedriger für die Unreal Engine und 30% niedriger für Chromium.

Durch die Kombination dieser Speichereinsparungen mit Optimierungen zur Reduzierung des Arbeitsspeicher-Datenverkehrs konnte auch die Indizierungsgeschwindigkeit erhöht werden. Die Erstindizierung der LLVM-Projektmappe erfolgt jetzt zum Beispiel bis zu 10% schneller.

Sprachmerkmale

ReSharper C++ 2024.3 vervollständigt die Unterstützung wichtiger C++23-Sprachmerkmale durch die Implementierung von Literalsuffixen für size_t und Attributen für Lambda-Ausdrücke. Außerdem wird jetzt der in C++17 eingeführte Type-Trait std::has_unique_object_representations ausgewertet.

Für C-Nutzer*innen bietet ReSharper C++ Unterstützung für die Schlüsselwörter typeof und typeof_unqual sowie für das Makro __has_c_attribute aus C23.

Um die Kompatibilität mit Nicht-MSVC-Compilern zu verbessern, implementiert ReSharper C++ mehrere GNU-Spracherweiterungen, darunter Switch-Case-Bereiche, benannte variadische Makroparameter, das Typattribut transparent_union sowie __attribute((aligned(...))). ReSharper C++ erkennt außerdem viele neue Compiler-Built-ins, darunter zusätzliche Type-Traits und Gleitkomma-Vergleiche.

Unreal Engine

Die Code-Completion schlägt jetzt in den Argumenten der Makros UE_LOG und UE_LOGFMT verfügbare Kategorienamen und Verbosity-Stufen vor. Integrierte Live-Vorlagen mit identischen Namen helfen Ihnen, schnell neue Log-Anweisungen hinzuzufügen.

ReSharper C++ erkennt jetzt die in Ihrem Projekt definierten Gameplay-Tags und schlägt sie bei der Eingabe des Arguments für die Funktion FGameplayTag::RequestGameplayTag vor.

Die Unterstützung für das Makro UDELEGATE wurde erweitert: Für Reflection-Spezifizierer in Makro-Attributen erhalten Sie jetzt Completion-Vorschläge, und bei Klassenmembern von Delegate-Typen wird die Anzahl der Verwendungen aus Blueprints erfasst.

Wenn Sie an einer eigenständigen, plattformübergreifenden IDE für die Unreal-Engine-Entwicklung interessiert sind, sollten Sie sich Rider ansehen. Die Unreal-Engine-Unterstützung in Rider und ReSharper C++ ist identisch, und Sie können die gleichen Verbesserungen in Rider 2024.3 erwarten.

Refactoring Move to Folder

Mit dem Refactoring Move to Folder können Sie C++-Dateien jetzt unkompliziert verschieben. Nachdem die ausgewählten Dateien an den neuen Speicherort verschoben wurden, passt das Refactoring die #include-Anweisungen an die geänderte Projektstruktur an.

Programmierhilfen

Bei Nutzung der Ranges-Bibliothek von C++20 können Sie mit neuen Kontextaktionen die Verwendungen von Range-Adaptern zwischen der Pipe- und der Aufruf-Form konvertieren. Bei Verwendung von Range-Adaptern in Pipe-Form haben wir außerdem die Diagnosemeldungen für Überladungsfehler verbessert.

ReSharper C++ 2024.3 unterstützt mehrzeilige Todo-Kommentare, sodass eingerückter Text in nachfolgenden Zeilen als Teil desselben Todo-Eintrags behandelt werden kann. Außerdem können Sie in Todo-Einträgen, die einen Link zu einem externen Ticket enthalten, mit der Aktion Peek To-do link (Strg+Umschalt+Klick) den Inhalt des Tickets inline anzeigen.

Die Eingabeunterstützung fügt jetzt automatisch ein Leerzeichen vor einer öffnenden Klammer ein, wenn die Formatierungsoption Space before parentheses in control statements aktiviert ist.

Mit neuen Formatierungseinstellungen können Sie den Stil der geschweiften Klammern bei C++/CLI-Eigenschaften und den Zeilenumbruch vor einem Funktions-Try-Block konfigurieren.

Codegenerierung

Wenn Ihr Projekt für Dokumentationskommentare eine XML-Syntax statt Doxygen verwendet, können Sie jetzt unkompliziert den Stil der Standard-Dokumentationsvorlage in den Einstellungen unter Code Generation anpassen. ReSharper C++ erkennt jetzt auch XML-Dokumentationskommentare zwischen /** ... */ und zeigt sie in Tooltips korrekt an.

Mit einer weiteren neuen Einstellung können Sie festlegen, ob bei Aktionen zur Generierung von überladenden Funktionen die Standardargumente beibehalten werden sollen.

Integration von Clang-Tools

ReSharper C++ 2024.3 bringt die clang-tidy- und clang-format-Binärdateien von Clang 19 mit und enthält somit die in der neuesten LLVM-Version eingeführten Checks und Verbesserungen.

Kommentare vom Typ // NOLINT(...) zur Deaktivierung bestimmter clang-tidy-Checks deaktivieren jetzt auch die entsprechenden ReSharper-Inspektionen.

Der integrierte Formatierer erkennt jetzt die Kommentare // clang-format off bzw. // clang-format on und deaktiviert die Formatierung der Bereiche, die von diesen Kommentaren eingefasst sind.

Unter Das ist neu in ReSharper finden Sie Informationen zu weiteren Änderungen in diesem Release.

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar