Das ist neu in ReSharper C++ 2024.1

ReSharper C++ 2024.1 verbessert die Unterstützung von C++20-Modulen und implementiert ausgehende Aufrufe in Call-Tracking. Die erweiterte Programmierunterstützung umfasst unter anderem Verbesserungen für das Refactoring Change Signature sowie Updates für die Unterstützung von Dokumentationskommentaren. Für Unreal-Engine-Entwickler*innen relevante Neuerungen in ReSharper C++ 2024.1 sind die Unterstützung für das Slate-UI-Framework sowie die Asset-Pfad-Completion in C++-Code.

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar

Unterstützung für C++20-Module

Dank einer aktualisierten Modulerkennung unterstützt ReSharper C++ jetzt interne Partitionseinheiten, d. h. Modulpartitionseinheiten, die nicht zur externen Schnittstelle eines Moduls beitragen. Anders ausgedrückt handelt es sich um Modulpartitionen ohne dazugehörige export module-Deklaration.

Wir haben die interne Repräsentation von exportierten C++20-Modulen überarbeitet, um transitive Referenzen auf Entitäten, die aus anderen Modulen importiert wurden, zu ermöglichen. Bisher wurden diese Entitäten vom importierenden Modul wieder exportiert. Diese Änderung dürfte die Größe der exportierten Module erheblich reduzieren und die Performance in Projekten mit C++20-Modulen verbessern.

Unreal Engine

ReSharper C++ 2024.1 führt Unterstützung für das Slate-UI-Framework der Unreal Engine ein. Sie können den Codeformatierer und die Eingabehilfen von ReSharper verwenden, um Ihren Slate-Code gemäß den Unreal-Engine-Konventionen zu formatieren. Funktionen wie Go to declaration, Find Usages und Rename können nun ebenfalls mit der deklarativen Syntax von Slate umgehen.

ReSharper C++ baut die intelligente Integration mit der Blueprint-Funktionalität weiter aus und unterstützt jetzt das Hinzufügen von Core Redirects beim Umbenennen einer UENUM-Instanz und kann bei Ressourcennamen in C++-Code Asset-Pfade vervollständigen.

HLSL-Schnittstellen, die für die dynamische Shader-Verlinkung verwendet werden, werden jetzt in Shader-Code unterstützt.

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.1 erwarten.

Ausgehende Aufrufe im Call-Tracking

Das Call-Tracking in ReSharper unterstützt jetzt die Navigation durch ausgehende C++-Aufrufketten. Bisher war nur die Verfolgung eingehender Aufrufe möglich. Um ausgehende Aufrufe zu untersuchen, setzen Sie die Einfügemarke auf eine beliebige Funktion und wählen Sie im Kontextmenü die Option Inspect | Outgoing calls aus. Alternativ können Sie Strg+Umschalt+Alt+A drücken, um die Funktion über das Menü Inspect This aufzurufen.

Verbesserungen für Change Signature

Mit Change Signature können Sie jetzt unkompliziert den Typ eines Funktionsparameters zwischen den Optionen Zeiger, Referenz oder Wert umschalten. ReSharper aktualisiert automatisch die Parameterverwendung im Funktionskörper und passt die Argumente in den Funktionsaufrufen an, indem es bei Bedarf Dereferenzierungs- oder Adressenoperatoren hinzufügt.

Wenn Change Signature für eine Funktion aufgerufen wird, die potenzielle Verwendungen in abhängigem Code hat, können Sie jetzt beim Refactoring die Änderungen überprüfen und die zu aktualisierenden Verwendungen bestätigen.

Sie können jetzt auch Standardargumente für Funktionsparameter vorgeben, die mit Change Signature neu hinzugefügt wurden.

Weitere wichtige Updates in Change Signature:

  • Verbesserte Handhabung von variadischen Funktionsvorlagen.
  • Korrekte Aktualisierung von Funktionsargumenten bei Aufrufstellen in Makroaufrufen.
  • Change Signature behält jetzt Array-Typen und den int-Typspezifizierer in unsigned int-Typen bei.

Dokumentationskommentare

Sie haben jetzt die Möglichkeit, den Stil der generierten Dokumentationskommentare anzupassen, ohne eine Live-Vorlage zu bearbeiten. Um den Stil der Dokumentationskommentare zu konfigurieren, rufen Sie in ReSharper Settings | Code editing | C++ | Code generation auf.

JetBrains Grazie ist die in ReSharper 2023.3 neu eingeführte integrierte Grammatik- und Rechtschreibprüfung von ReSharper. Ab Version 2024.1 sind die Grammatikinspektionen von Grazie auch in C++-Dokumentationskommentaren verfügbar.

Das Change Signature-Refactoring synchronisiert jetzt @param-Befehle mit der Liste der Funktionsparameter. Das Refactoring löscht @param-Befehle für entfernte Parameter, fügt Befehle für neue Parameter hinzu und ordnet bestehende Befehle neu an, damit sie der aktuellen Parameterreihenfolge entsprechen.

Codeanalyse

Gemäß den neuesten Ergebnissen der umfangreichen Testsuite von Richard Thomson für C++-Refactoring-Tools besteht ReSharper C++ die meisten Testfälle und übertrifft damit weiterhin andere Tools. Im Rahmen unserer kontinuierlichen Bestrebungen zur Optimierung der ReSharper-Vorschläge haben wir in ReSharper C++ 2024.1 mehrere Probleme behoben, die Richards Testsuite zum Vorschein gebracht hat. Zum Beispiel fügt der Quick-Fix Create constructor from usage jetzt bei Bedarf einen Standardkonstruktor hinzu.

ReSharper C++ 2024.1 schlägt jetzt vor, redundante idiomatische Zero-Initialisierer zu entfernen, wenn die Aggregat-Initialisierung verwendet wird. Es gibt mehrere neue Inspektionen für Probleme mit statischen Datenmembern, z. B. redundante inline-Spezifizierer bei static constexpr-Datenmembern.

Die Codebereinigung wurde um neue Optionen erweitert, um redundante Zugriffsspezifizierer zu entfernen und Klassen ohne Unterklassen als final zu deklarieren. Apply ‘auto’ style kann jetzt neben lokalen Variablen auch globale Variablen und Klassenmember handhaben.

Zum Unterdrücken einer Inspektion in einem bestimmten Gültigkeitsbereich konnten Sie bisher den ReSharper-spezifischen Kommentar // ReSharper disable verwenden. ReSharper C++ 2024.1 erkennt nun zusätzlich die Kommentare NOLINT, NOLINTNEXTLINE und NOLINTBEGIN ... NOLINTEND, die von Clang-Tidy verwendet werden.

Codeformatierung

ReSharper C++ 2024.1 führt mehrere neue Formatierungsoptionen ein:

  • Die Optionen Break line after goto labels und Indent goto labels verbessern die Formatierung von Anweisungen mit Labels.
  • Unter Arrangement of enumerations ermöglichen neue Einstellungen die Steuerung von Zeilenumbrüchen innerhalb von Enumerationen.
  • Die Einstellung Empty braces formatting umfasst jetzt die Option Do not change.

Bei Verwendung einer .clang-format-Konfiguration berücksichtigt der ReSharper-Formatierer jetzt die Einstellungen DisableFormat und IndentAccessModifiers. Der integrierte clang-format-Stil „GNU“ wird jetzt ebenfalls unterstützt.

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

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar