Neuerungen in ReSharper 2024.2

ReSharper 2024.2 unterstützt das .NET 9 Preview SDK, einschließlich eines Anfangssets von C#-13-Sprachmerkmalen, darunter die Implementierung von ref struct-Schnittstellen, die neue Escape-Sequenz \e und ein Refactoring für params-Modifikatoren. Die C++-Unterstützung umfasst jetzt C++23-Sprachmerkmale, Typlayout-Informationen in Tooltips sowie eine verbesserte Unterstützung für Unreal-Engine-Projekte. Diese Version enthält außerdem die erste Lokalisierungsphase für Chinesisch, Koreanisch und Japanisch, asynchrones Tippen für verbesserte Performance sowie Verbesserungen für AI Assistant mit optimierten Sprachmodellen, Codevorschlägen im Editor und neuen Explain with AI (KI-Erklärfunktionen).

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar

Unterstützung für .NET 9 Preview SDK

ReSharper 2024.2 bietet Unterstützung für das .NET 9 Preview SDK, einschließlich Erstunterstützung für den Sprachumfang C# 13, darunter Escape-Zeichen, ein Refactoring für params-Modifikatoren und ref struct-Schnittstellen.

C#-Unterstützung

Mit dem neuesten Release erweitert ReSharper die Unterstützung für C#-12-Sprachmerkmale, darunter Primärkonstruktoren, erweiterte Collection-Ausdrücke und verbesserte Kontextaktionen für die Erstellung von Arrays und die Umwandlung von Collection-Typen. Darüber hinaus bietet ReSharper 2024.2 eine Erstunterstützung für C# 13, mit Implementierung der Schnittstelle ref struct, der neuen Escape-Sequenz \e und einem Refactoring für params-Modifikatoren.

Ebenfalls in diesem Update:

  • Verbesserte Gleichheitsanalyse für Struct-Typen.
  • Inspektion Extract common code zur Verringerung von dupliziertem Code in Verzweigungen.
  • Kultur-Vorschau beim Vervollständigen von ToString()-Formatbezeichnern.
  • Analyse von Cast-Ausdrücken, um fragile Typcasts im C-Stil durch explizite Typannotationen zu ersetzen.

In diesem Blogartikel erfahren Sie mehr über die neuesten Updates der C#-Unterstützung in ReSharper und Rider 2024.2.

C++-Unterstützung

Bei der C++-Unterstützung haben wir unter anderem die folgenden wichtigen Verbesserungen vorgenommen:

  • Unterstützung für weitere C++23-Sprachmerkmale, darunter der mehrdimensionale Indexoperator, die Präprozessoranweisungen #elifdef und #elifndef sowie das Attribut [[assume]].
  • Tooltips und das Schnelldokumentations-Popup stellen jetzt detaillierte Typlayout-Informationen für Klassen und Klassenfelder bereit, einschließlich Größe, Alignment, Offset und Padding.
  • In Unreal-Engine-Projekten erkennt ReSharper Struct-Traits und stellt sicher, dass Ihre Structs über die erforderlichen Methoden verfügen. Fehlende Methoden können unkompliziert generiert werden. Eine neue Inspektion entdeckt fehlende Aufrufe von Basisklassen-Methoden.
  • Das Rename-Refactoring hat neue Optionen erhalten, um beim Umbenennen einer Datei auch dazugehörige Dateien und Typen umzubenennen.
  • Die Codeanalyse-Verbesserungen umfassen ein Update auf Clang-Tidy 18 sowie Unterstützung für IWYU-Pragmas.

Erfahren Sie mehr über die C++-Updates: Das ist neu in ReSharper C++ 2024.2.

Lokalisierung

ReSharper 2024.2 führt die erste Lokalisierungsstufe für die Sprachen Chinesisch (vereinfacht), Koreanisch und Japanisch ein! Sie erhalten eine teilweise lokalisierte Bedienoberfläche, Codeinspektionen, Toolfenster und Benachrichtigungen. Um die Sprache von ReSharper zu ändern, öffnen Sie das ReSharper-Menü Options | Environment | General | Localization | Interface language und wählen Sie die gewünschte Option aus der Dropdown-Liste aus.

Alternativ können Sie das Lokalisierungs-Plugin über den Extension Manager installieren. Die vollständige Anleitung finden Sie hier.

Performance

Asynchrones Tippen aktiviert

Asynchrones Tippen ist ein Bestandteil unserer laufenden Bemühungen, die Performance von ReSharper zu verbessern, indem ReSharper außerhalb des Visual-Studio-Prozesses ausgeführt wird. ReSharper 2024.2 ist die erste Produktversion mit dieser wichtigen Änderung. Unsere internen Tests haben gezeigt, dass die Tastatureingabe viel flüssiger wird, wenn asynchrones Tippen aktiviert ist. Wir würden uns sehr freuen, wenn Sie von Ihren Erfahrungen in unserem Issue-Tracker berichten könnten.

AI Assistant

Modelle und Kontexterfassung aktualisiert

Wir haben von den älteren Modellen GPT 3.5 und GPT 4 auf GPT-4o und Google Bison aufgerüstet, die je nach Aufgabe eingesetzt werden. Außerdem haben wir die Kontexterfassung für die KI-Completion und den KI-Chat überarbeitet, um mit diesem neuen Modell relevantere Ergebnisse zu bieten.

Ask AI

Sie müssen nicht mehr den KI-Chat öffnen, wenn Sie eine neue Frage an die KI haben. Rufen Sie einfach Ask AI auf und fragen Sie los.

Codevorschläge und Codegenerierung im Editor

JetBrains AI gibt Ihnen jetzt Hinweise auf die Möglichkeit, mit einem einzigen Klick (oder durch Drücken von Alt+Enter) eine XML-Dokumentation zu generieren oder leere Methoden zu implementieren. Damit entfällt die manuelle Suche nach diesen Optionen in der Aktionsliste.

Außerdem stellt die KI die Antworten direkt im Editor bereit, statt Sie zum Chat weiterzuleiten. Sie können die Antworten unkompliziert vor Ort überprüfen und bei Bedarf neu generieren oder zusätzliche Details angeben, um bessere Ergebnisse zu erzielen.

Verbesserte Nutzungserfahrung bei der KI-basierte Code-Completion

Wir haben die Darstellung der KI-Vorschläge verbessert, sodass die mehrzeiligen Completion-Vorschläge von ReSharper leichter von anderen Inhalten zu unterscheiden sind. Sie können die Ergebnisse jetzt auch durch Drücken von Umschalt+Tab neu generieren.

AI-Namensvorschläge in den Refactorings Rename und Extract Method

Die Benennung von Variablen und Methoden kann schwierig sein, insbesondere in großen Projektmappen mit zahlreichen ähnlich benannten Symbolen. Glücklicherweise schlägt Ihnen die KI jetzt geeignete Namen vor, wenn Sie eine Methode umbenennen.

Explain with AI für Debugging und DPA

Sie können jetzt die KI bitten, die während Ihrer Debugsitzung aufgetretenen Ausnahmen zu erklären, ohne Ihren aktuellen Kontext zu verlassen. Klicken Sie einfach auf die Schaltfläche neben der Ausnahme, um im Chat eine Erklärung zu erhalten.

AI Assistant kann Ihnen auch Probleme im Zusammenhang mit der Arbeitsspeicherzuweisung und Datenbanken erklären, die im Rahmen der Dynamischen Programmanalyse (DPA) identifiziert wurden. Nachdem DPA ein Problem identifiziert hat, können Sie die Schaltfläche Explain with AI anklicken: Da die KI-Unterstützung kontextsensitiv ist, wird der Kontext des Problems analysiert und auf dieser Grundlage eine Erklärung bereitgestellt und mögliche Korrekturen vorgeschlagen. Derzeit ist dies nur bei Arbeitsspeicher- und Datenbankproblemen möglich.

dotMemory

dotUltimate

Verbesserte Instanzensuche

Wir haben die Ansicht Instances um neue Filteroptionen erweitert:

  • Suche nach Zeichenfolgen: Geben Sie einen beliebigen Text in das Filterfeld ein, und dotMemory hebt die passenden Zeichenfolgen hervor. Damit können Sie spezifische String-Instanzen anhand ihres Inhalts leichter finden.
  • Regex-Unterstützung für Zeichenfolgen: Für eine erweiterte Suche können Sie reguläre Ausdrücke verwenden. ^nAsso.{5,}ID$ findet zum Beispiel nAssociatedObjectID.nAssociatedObjectID.
  • Suche nach Objektadressen: Sie können Objektinstanzen auch anhand ihrer Speicheradresse finden. Dies ist nützlich, um bestimmte Objekte direkt zu verfolgen.

Hier können Sie mehr über die Verbesserungen im dotMemory-Profiler erfahren.

dotTrace

dotUltimate

Das neueste Update für das Performance-Profiling-Tool enthält folgende Änderungen:

  • Bessere Performance durch schnellere Verarbeitung von Timeline-Snapshots.
  • Neue Rendering-Engine für dotTrace Viewer auf allen Plattformen.
  • Options-Fenster in der Standalone-Version für macOS und Linux eingeführt.
  • Fehlen von Kernel-Ereignissen in Timeline-Snapshots unter Windows behoben.
  • Verschiedene kleinere Verbesserungen und Fehlerkorrekturen.

Hier können Sie mehr über die Verbesserungen im dotTrace-Profiler erfahren.

Dekompilierer

Allgemeine Verbesserungen

  • Lambda-Parameter: Wir haben Unterstützung für die Dekompilierung von Lambdas mit optionalen und Array-Parametern eingeführt, um die Lesbarkeit und Genauigkeit des dekompilierten Codes zu verbessern.
  • Lambda-Attribute: Das Tool bietet jetzt einen verbesserten Umgang mit den Attributen von Lambda-Ausdrücken, um sicherzustellen, dass alle relevanten Metadaten korrekt im dekompilierten Output enthalten sind.
  • Geschützte Assemblies: Sie können jetzt angeben, ob geschützte Assemblies dekompiliert werden sollen, um eine umfassendere Untersuchung des Codes zu ermöglichen.

Erkennung der Buildkonfiguration

Das Toolfenster Assembly Explorer erkennt und meldet jetzt die Buildkonfiguration von Assemblies und bietet dadurch einen besseren Einblick in den Kompilierungskontext der jeweiligen Assembly.

Umgang mit externem Quellcode

  • PDB mit SrcSrv und SourceLink: Der Decompiler unterstützt jetzt die Navigation zu Quellcode-Dateien aus PDB-Dateien, die sowohl SrcSrv- als auch SourceLink-Daten enthalten.
  • Präprozessoranweisungen: Der Decompiler erkennt jetzt Präprozessoranweisungen (wie NET6_0_OR_GREATER) aus dem Zielframework oder der Portable-PDB-Datei der jeweiligen Assembly korrekt und gewährleistet so eine richtige Darstellung des Codes.
  • Aktion Open in Browser: Sie haben jetzt die Möglichkeit, zum Quellcode eines Typs im Repository oder zum Repository eines NuGet-Pakets oder einer Assembly zu navigieren.