Das ist neu in ReSharper 2022.1

Bei Version 2022.1 steht die Qualität im Mittelpunkt: Wir haben zahlreiche Verbesserungen und Bugfixes umgesetzt, insbesondere in den Bereichen Blazor-Entwicklung und C#-Unterstützung.

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar

C#-Unterstützung

We continue to improve support for C# 10, particularly global usings. Wir haben zwei neue Refactorings implementiert, die auch als Kontextaktionen verfügbar sind.

Extract Global Using hilft Ihnen, das Konzept globaler usings in Ihrem Projekt einzuführen. Sie können es auf einer gewöhnlichen using-Direktive aufrufen, woraufhin ReSharper vorschlägt, diese in eine spezielle GlobalUsings.cs-Datei zu extrahieren (wenn die Datei in Ihrem Projekt noch nicht vorhanden ist, wird sie erstellt). Die normale using-Anweisung, die nun nicht mehr benötigt wird, wird aus den Dateien in Ihrem Projekt entfernt.

Sollten Sie sich entschließen, ein globales using in ein gewöhnliches using zu refaktorieren, hilft Ihnen das Refactoring Inline Global Using. Wenn das Refactoring für eine globale using-Anweisung aufgerufen wird, wird diese aus der Datei GlobalUsings.cs entfernt und die entsprechende using-Anweisung an den erforderlichen Stellen in den Dateien in Ihrem Projekt eingefügt.

Globale usings werden in Find Usages und bei der Codeanalyse für Erweiterungsmethoden unterstützt.

We’ve looked into the approaching C# 11 and supported generic attributes.

Nullable-Referenztypen

  • Wir haben die Nullprüfungswarnungen bei Ausdrücken, die auf keinen Fall null sein dürfen, in zwei Kategorien unterteilt. Die erste Warnung bezieht sich auf Ausdrücke, bei denen eine NRT-Annotation den Wert null untersagt. Die zweite Warnung wiederum gilt für Ausdrücke, bei denen zur Laufzeit tatsächlich eine Nullprüfung durchgeführt wird.
  • Wir haben eine neue Einstellung hinzugefügt, mit der Sie in den Modus Runtime enforced not null warnings only wechseln können. Sie können auf diese Einstellung zugreifen, indem Sie im Alt+Enter-Menü einer annotationsbasierten Warnung die Gruppe der Konfigurationselemente auswählen.
  • Die Annotationen [MemberNotNull] und [MemberNotNullWhen] werden jetzt in Projekten unterstützt, die keine nullfähigen Verweistypen verwenden.

Endpunkte

Unsere Endpunkt-Unterstützung funktioniert jetzt für die Minimal-APIs von ASP.NET Core 6 und für konventionsbasiertes Routing. Die Unterstützung umfasst Navigation, Codeanalyse und Code-Completion.

Razor und Blazor

Hier sind die wichtigsten Neuerungen und Fehlerkorrekturen, die wir für Razor und Blazor vorgenommen haben:

  • Das neue [EditorRequired]-Attribut aus .NET 6 wird jetzt unterstützt. Auch eine Inspektion und ein Quick-Fix sind verfügbar, wenn Sie versuchen, eine Blazor-Komponente zu verwenden, ohne die erforderlichen Parameter anzugeben.
  • Wir haben die lang erwartete Unterstützung für lokale C#-Funktionen in Abschnitten mit Razor-Syntax implementiert.
  • Die Codebereinigung in .razor-Dateien mit Blazor-Komponenten wurde verbessert. Dadurch werden nicht mehr alle @using-Deklarationen entfernt.
  • Wir haben auch die Kontextaktionen If To Switch und Invert If im Razor-Code mit Referenzen auf Blazor-Komponenten korrigiert.
  • ReSharper verwendet jetzt den korrekten Namensstil für injizierte Blazor-Eigenschaften.
  • Die Aktion Comment with Line Comment kommentiert jetzt nur noch den erwarteten Teil des Razor-Codes aus.
  • We’ve added navigation through inheritance hierarchy to Razor code. Für Basis- und abgeleitete Symbole werden entsprechende Randleistenmarkierungen angezeigt. Klicken Sie diese an, um zum Code zu navigieren.

Codebereinigung und Formatierung

Wir haben im Menü Alt+Enter alle Einträge mit Bezug zur Codebereinigung und -formatierung neu geordnet. Die Einträge Format selection, Cleanup selection und Apply syntax style wurden zu einem neuen Eintrag Reformat and Cleanup kombiniert, um einen gemeinsamen Zugangspunkt zu bieten.

Darüber hinaus sind die Syntaxstil-Einstellungen jetzt in den Aktionen Configure code style und Autodetect code style settings verfügbar. Der Fensterbereich Preview code style zeigt auch Syntaxstil-Änderungen an.

Unit-Tests für Unreal Engine

The Unreal Engine testing framework is now supported. ReSharper C++ erkennt Unit-Tests der Unreal Engine und zeigt im Editor neben jedem Test die entsprechenden Aktionssymbole an, damit Sie den Test oder die gesamte Testsuite unkompliziert ausführen oder debuggen können. Im Fenster Unit Test Sessions können Sie die Testergebnisse überprüfen und fehlgeschlagene, alle oder bestimmte Tests wiederholen.

Das ist neu in ReSharper C++ 2022.1

Noch bessere C++-Unterstützung

ReSharper C++ kann jetzt besser mit impliziten Konstruktoraufrufen umgehen, sodass die Verwendungssuche und das Navigieren zum entsprechenden Konstruktor häufiger gelingt, darunter auch in den folgenden Fällen:

  • standardmäßige (make_unique/make_shared) und Unreal-spezifische (MakeShared/MakeUnique) Funktionen zur Erstellung von Smart-Pointern
  • emplace-ähnliche Containermethoden
  • static_cast und Cast-Ausdrücke im C-Stil

ReSharper C++ 2022.1 zeigt außerdem eine Überladungswarnung an, wenn eine emplace-ähnliche Funktion nicht mit korrekten Argumenten aufgerufen wird.

Das ist neu in ReSharper C++ 2022.1

Quellcodegeneratoren

Nach einer Performanceanalyse der Quellcodegeneratoren haben wir beschlossen, beim Abruf von Quellcode-generierten Dokumenten aus dem Compiler den zeitlichen Abstand zwischen den Anfragen zu erhöhen.

Auf diese Weise werden die Quellcodegeneratoren nicht vor dem Compiler ausgeführt und die CPU-Gesamtauslastung wird reduziert. Der genaue Performancegewinn hängt davon ab, ob auch andere Funktionalitäten die Generatoren auslösen, zum Beispiel die Visual-Studio-Completion für vollständige Zeilen.

Performance

We’ve fixed a number of performance issues already and laid the groundwork for more. Dazu gehören die Handhabung der Performance-Snapshots unserer Kunden, unternehmensinterne Profiling-Sitzungen und die Sammlung von Daten, um in Zukunft nach Möglichkeit eine automatische Prüfung auf Leistungsverschlechterungen durchführen zu können.

Die Arbeit am „Out-of-Process“-Modus wird fortgesetzt. Please refer to the newest update in our issue tracker.

Befehlszeilentools von ReSharper

Die InspectCode-Tools können Ausgabedateien erzeugen, die mit dem Static Analysis Results Interchange Format (SARIF) kompatibel sind.

Die Befehlszeilentools unterstützen jetzt Alpine Linux.

Dekompilierer

  • Der integrierte Decompiler zeigt jetzt XML-Dokumentationskommentare für Plattform-Assemblies an, und zwar auch dann, wenn sich der Name der Assembly vom Namen der XML-Dokumentationsdatei unterscheidet, z. B. System.Private.CoreLib. Der Pfad zur XML-Dokumentation wird jetzt im Header der dekompilierten Datei angezeigt.
  • Wir haben das Navigations-Retargeting in der Metadaten-Ansicht deaktiviert.
  • Wir haben in den Eigenschaften dekodierte/Raw-Blob-Darstellungen für Blob-Knoten hinzugefügt.
  • Der Assembly Explorer unterstützt jetzt weitergeleitete Typen ([TypeForwardedTo]-Attribute). Die Aktion Locate in Metadata funktioniert auch für weitergeleitete Typen, Assembly- und Modulreferenzen sowie Ressourcen.
  • Wir haben die PDB-Navigation für Typen ohne Sequenzpunkte verbessert, z. B. für Schnittstellen und Enums.

Das ist neu in dotPeek 2022.1

Verbesserte Unterstützung für SQL-Server-Ereignisse dotUltimate

Ab sofort unterstützt dotTrace SQL-Server-Ereignisse des Providers Microsoft.Data.SqlClient unter Windows (.NET Core, .NET 5+) sowie macOS und Linux (.NET Core 3.0+, .NET 5+).

Das ist neu in dotTrace 2022.1

Anhängen an Anwendungen per Drag & Drop dotUltimate

Sie haben jetzt die Möglichkeit, den Profiler an eine bereits laufende Anwendung anzuhängen, indem Sie einfach das entsprechende Symbol auf das Fenster der Anwendung ziehen.

Das ist neu in dotMemory 2022.1

Coverage-Ausschluss durch Kommentare dotUltimate

Sie können jetzt mithilfe von Kommentaren bestimmte Codezeilen oder -blöcke von der Coverage-Analyse ausschließen. Hierfür stehen Ihnen mehrere Möglichkeiten zur Verfügung:

// dotcover disable
var i = 1;
var j = 10;
// dotcover enable

/* dotcover disable */ var i = 1; /* dotcover enable */

var i = 1; // dotCover disable this line

// dotcover disable next line
var j = 100;

Jede dieser Methoden funktioniert nur, wenn das NuGet-Paket JetBrains.dotCover.MSBuild referenziert ist. Diese Abhängigkeit gilt nur für die Entwicklungsphase und wird nicht als Laufzeitabhängigkeit in Ihr Projekt aufgenommen.

Das ist neu in dotCover 2022.1

Weitere Updates

  • Wir haben das Refactoring Move type to file, das auch eine Kontextaktion und einen Quick-Fix umfasst, verbessert. In den meisten Fällen werden jetzt die Präprozessoranweisungen zusammen mit dem Typ verschoben.
  • Wir haben das Problem behoben, das zur Fehlermeldung „Massive file system change“ (Umfangreiche Dateisystem-Änderungen) führte. Der Grund war ein Ereignispuffer-Überlauf. Dadurch wurde ReSharper veranlasst, ohne wirklichen Grund alle Projektmappen zu überprüfen. Dies führte zu einer hohen CPU-Auslastung und in einigen schweren Fällen zu einem Einfrieren der Bedienoberfläche.
  • Wir haben das Problem behoben, das in lokalisierten Visual-Studio-Installationen die Funktionalität von ReSharper in .sqlproj-Dateien beeinträchtigte.
  • Wir haben eine Metadaten-Baumansicht in ReSharper implementiert (nur für Visual Studio 2022). Diese bietet einen Überblick über alle Elemente der Assembly-Metadaten, stellt eine Suchfunktion bereit, ermöglicht die Navigation zum Quellcode und noch einiges mehr. For a full list of the features, please refer to the description in dotPeek documentation – the decompiler was the first product to have it.
  • Wir haben mehrere seit Langem bestehende Probleme behoben, die dazu führten, dass ReSharper beim Wechsel zwischen Git-Branches den Code rot einfärbte. Wir haben einige spezielle Szenarien identifiziert, in denen das passiert, und die zugrunde liegenden Probleme behoben.
Herunterladen

Kostenlose 30-Tage-Testversion verfügbar