ReSharper 2023.2 bietet eine verbesserte C#-Unterstützung – unter anderem durch neue Inspektionen für die Arbeit mit lokalen Funktionen und Raw-Zeichenfolgen sowie für die Behebung häufig vorkommender Probleme mit dem Entity-Framework. Dieses Release erweitert außerdem die Unterstützung für das C++-Refactoring und neue Sprachmerkmale von C++20 und C++23. Zu den Neuerungen in ReSharper 2023.2 gehören die unkomplizierte Erstellung von und Navigation in Unit-Tests, der prädiktive Debugger-Modus und der neue AI Assistant.
Kostenlose 30-Tage-Testversion verfügbar
ReSharper 2023.2 bietet neue Codeinspektionen und Quick-Fixes für die Arbeit mit Raw-Zeichenfolgen und lokalen Funktionen sowie für die Behebung von gängigen Entity-Framework-Problemen und redundanten Nullability-Direktiven. Die im Frühstadium befindliche Unterstützung für C# 12 umfasst Primärkonstruktoren und Lambda-Ausdrücke mit optionalen Parametern. Wir haben auch die Unterstützung für verworfene Werte und entsorgbare Ressourcen verbessert und neue Inline- und Interline-Hinweise hinzugefügt.
Die Unit-Test-Funktionalität von ReSharper hat ein großes Update erhalten – Sie können nun Navigationsfunktionen nutzen und Tests für Ihren Produktionscode erstellen!
Um einen Test zu erstellen, rufen Sie einfach die Aktion Generate Code auf und wählen Sie Unit Test oder drücken Sie Strg+U,C. Sie können den Namen der Testklasse festlegen, und ReSharper erstellt sogar ein neues Projekt mit Ihrem bevorzugten Testframework, falls noch keines vorhanden ist. Sobald der Test erstellt ist, können Sie mit der Aktion Navigate To oder durch Drücken von Strg+U,F zwischen Ihrer Implementierung und dem Testcode hin und her springen.
Die IntelliJ-basierten IDEs und .NET-Tools enthalten in Version 2023.2 eine wichtige neue Funktion: AI Assistant. Die erste Serie der KI-Funktionen umfasst einen KI-Chat und integriert sich über Kontextaktionen auf natürliche Weise in einige zentrale Entwicklungs-Workflows, darunter das Erklären ausgewählter Codeabschnitte, das Beheben von potenziellen Problemen und das Generieren einer XML-Dokumentation.
Wir haben neue C#-Inspektionen und Kontextaktionen für die Arbeit mit Raw-Zeichenfolgen sowie verbesserte Eingabehilfen und neue Formatierungsoptionen eingeführt:
Lesen Sie den entsprechenden Blogartikel, um mehr über die verbesserte Unterstützung von Raw-Zeichenfolgen zu erfahren.
Wir haben mehrere neue Inspektionen, Quick-Fixes und kontextbasierte Navigationsoptionen für häufige Probleme hinzugefügt, die bei der Arbeit mit Datenbanken auftreten können, wenn ein Framework für objektrelationales Mapping (ORM) wie z. B. das Entity Framework verwendet wird.
Lesen Sie diesen Blogartikel, um mehr über die Inspektionen für das Entity-Framework zu erfahren.
ReSharper 2023.2 führt zwei neue Inspektionen mit dazugehörigen Quick-Fixes ein, die die Lesbarkeit des Codes bei Verwendung von lokalen Funktionen verbessern:
return
- oder continue
-Anweisung einzusetzen. return
-, continue
- oder einer anderen Sprunganweisung vom ausführbaren Code zu trennen. In Fällen, in denen Sie den Code nicht ändern können oder wollen, zeigt ReSharper 2023.2 zwischen den Zeilen einen return
- bzw. continue
-Hinweis vor lokalen Funktionen an, um auch ohne Codeänderung das Verständnis zu erleichtern.
Weitere Details zu den neuen Inspektionen finden Sie in diesem Blogartikel.
#nullable
-Direktiven und NRT-Annotationen Für #nullable
-Direktiven und NRT-Annotationen stehen jetzt mehrere neue Inspektionen zur Verfügung:
JetBrains.Annotations
-Attributen eines Basismembers stehen. Um mehr über diese Inspektionen zu erfahren, lesen Sie bitte diesen Blogartikel.
var
-Deklarationen Alle Navigationsaktionen (Go to…, Find Usages usw.) schlagen jetzt bei der Navigation ab einer var
-Deklaration mit einem gängigen Wrapper-Typ den zugrunde liegenden Typ vor. Zum Beispiel schlägt ReSharper vor, zu Person
zu navigieren, wenn Sie die Aktion Go to declaration auf das var
-Schlüsselwort einer Variablen mit dem Typ ImmutableArray<Person>?
anwenden.
Weitere Informationen dazu finden Sie in diesem Blogartikel.
Die Version 2023.2 unterstützt Primärkonstruktoren für Nicht-Record-Klassen und -Structs aus der C#-12-Preview. Mehrere Inspektionen weisen auf Typen hin, deren Initialisierung durch die neuen Primärkonstruktoren vorgenommen werden kann, und mit einem Quick-Fix kann die Anzahl der Codewiederholungen erheblich reduziert werden.
Manchmal kommt es vor, dass nach einer Änderung die Initialisierung des Typs weniger trivial ist und nicht mehr mittels Primärkonstruktor erledigt werden kann. Für solche Fälle haben wir eine Reihe von Kontextaktionen eingeführt, um Primärkonstruktor-Parameter durch Konstruktoren und gewöhnliche Felder zu ersetzen.
Um diese und viele weitere Funktionen für Primärkonstruktoren in Aktion zu sehen, lesen Sie den separaten Blogartikel zu diesem Thema.
Im Rahmen unserer Bemühungen zur Unterstützung der C#-12-Sprachupdates haben wir uns die Standard-Parameterwerte in Lambda-Ausdrücken vorgenommen. Neben einer Reihe von Standard-Warnmeldungen in Verbindung mit der Erkennung dieser Syntax haben wir auch die bestehende Inspektion The parameter has the same default value angepasst, um Standard-Parameterwerte in Lambdas zu berücksichtigen. Nähere Informationen finden Sie hier.
ReSharper 2023.2 führt zwei neue Codeinspektionen ein, um die Entsorgung eines Objekts besser zu kontrollieren:
Wir haben auch die Funktion Generate dispose pattern verbessert, um die Schnittstelle IAsyncDisposable
zu unterstützen und Ressourcen durch Generierung einer async-Methode freigeben zu können.
Weitere Informationen zu diesen Neuerungen finden Sie hier.
Die Codeanalyse wurde um nützliche Funktionen zur Unterstützung des Verwerfens von Werten in C# erweitert:
_
name is typically reserved for local parameters without usages weist auf Variablen und Parameter hin, die trotz des Namens _
verwendet werden. Diese sehen wie verworfene Werte aus, sind aber in Wirklichkeit genau das Gegenteil. Weitere Informationen zur verbesserten Unterstützung von verworfenen Werten erfahren Sie in diesem Blogartikel.
Bei der Übergabe eines Wertes an ein Tupel-Argument oder einen Rückgabetyp können in C# die Komponentennamen weggelassen werden. Ohne Namen ist es jedoch schwieriger, die Bedeutung der einzelnen Komponenten zu erkennen, ohne den Zieltyp nachzuschlagen. Bei der Zuweisung des Tupels (null
, false
) zum Beispiel dürfte in vielen Fällen ein Nachschlagen erforderlich sein, um die Bedeutung der einzelnen Komponenten zu verstehen.
Inlay-Hinweise sind in solchen Situationen eine nützliche Hilfe. ReSharper 2023.2 zeigt Inlay-Hinweise mit Tupel-Komponentennamen an, wenn diese Namen nicht bereits aus dem Komponentenausdruck ersichtlich sind. Dadurch ist es viel einfacher, den Code auf einen Blick zu verstehen.
Für Null- und Standardkomponenten zeigt ReSharper 2023.2 Hinweise auf den Zieltyp an, auch wenn die Zielkomponente keinen expliziten Namen hat. Ausgenommen sind dabei die Typen string und object, da diese Information in der Regel nicht zum Verständnis beiträgt.
Eine weitere häufige Situation, in der Namen die Verständlichkeit verbessern können, sind Dekonstruktionsmuster, bei denen ein expliziter Name entweder aus der Deconstruct
-Methode oder aus Quelltupel-Komponenten bekannt ist. Diese Hinweise wurden konzipiert, um Ihnen zusätzlichen Kontext bereitzustellen, wenn ein Muster für sich genommen nicht genügend Daten enthält, um zu verstehen, wonach gesucht wird – z. B. value is ({ }, true, null)
.
#pragma warning
-Anweisungen Mit #pragma-Anweisungen können Sie Compiler-Warnungen anhand ihrer IDs unkompliziert deaktivieren oder wieder aktivieren. Diese IDs eignen sich zwar gut für die Kommunikation mit dem Compiler, sind aber für Menschen möglicherweise etwas kryptisch. Ohne ein umfassendes Wissen ist es nicht sofort offensichtlich, worauf sich eine ID wie CS0168
oder CS0618
bezieht.
LINQ-Abfragen können komplex sein und verschiedene Transformationen und Projektionen umfassen. Das Debuggen von komplexen LINQ-Abfragen kann daher zeitaufwändig sein, insbesondere bei Verwendung von großen Datensammlungen. Damit Sie die Ausgabewerte bei jedem Abfrageschritt unkompliziert untersuchen können, zeigt ReSharper jetzt beim Debugging Zwischenergebnisse als Inlay-Hinweise an.
Durch die Editor-Hinweise, die Zwischenergebnisse anzeigen, können Sie unerwartete Werte oder fehlerhafte Transformationen einfacher erkennen.
ReSharper C++ führt das Refactoring Safe Delete ein, mit dem Sie Symbole ohne Risiko aus Ihrem Quellcode entfernen können. Dieses Refactoring ist für Klassen, Funktionen, Variablen, Enums, Namensräume und sogar Concepts verfügbar.
Bevor ein Symbol gelöscht wird, sucht ReSharper C++ nach dessen Verwendungen und zeigt Ihnen eine Vorschau der Codeänderungen an, sodass Sie sicher sein können, dass alle Löschungen beabsichtigt sind. Wenn Sie versuchen, ein komplexes Element wie eine Klasse oder einen Namensraum zu löschen, prüft ReSharper C++ rekursiv die Verwendungen aller Member des Elements.
Dieses Release unterstützt mehrere neue Sprachmerkmale, darunter if consteval
, die Standardbibliotheksmodule von C++23, das Attribut [[no_unique_address]]
und statische Operatoren (operator()/operator[]
).
ReSharper 2023.2 führt einige neue Optionen für die C#-Codeformatierung ein, um verkettete Methodenaufrufe leichter lesbar zu machen.
Die erste Formatierungsoption legt fest, ob vor dem ersten Methodenaufruf ein Zeilenumbruch erfolgen soll. Die zweite Option ist für Situationen gedacht, in denen Methoden und Eigenschaften gemischt aufeinanderfolgen. Sie bestimmt, ob nach einer Eigenschaft ein Zeilenumbruch eingefügt werden soll.
AI Assistant ist nicht im Lieferumfang von ReSharper enthalten und muss separat installiert werden. Aktuell gibt es eine Warteliste für die Nutzung von AI Assistant.
In unserer Webhilfe erhalten Sie weitere Informationen zu AI Assistant und zur Installation mit der Toolbox-App oder dem dotUltimate-Installationsprogramm.
Der AI Assistant in ReSharper kennt automatisch Ihre Entwicklungsumgebung, also die Programmiersprachen, Frameworks, Bibliotheken und Technologien, die in Ihrer Projektmappe verwendet werden. Dank dieser Informationen kann die KI treffsicherere und konkretere Antworten auf Ihre Fragen geben.
Wenn Sie die Option Smart Chat verwenden, kann AI Assistant auf konkrete Dateien und Symbole Bezug nehmen, Codefragmente oder die letzten Änderungen abrufen und nach Verwendungen bestimmter Methoden suchen. Dadurch erhalten Sie noch zielgenauere Vorschläge.
Wenn das AI-Assistant-Plugin installiert ist, stehen Ihnen in den Kontextaktionen von ReSharper verschiedene KI-gestützte Optionen zur Verfügung. AI Assistant kann Sie wie folgt unterstützen:
Der in ReSharper 2023.2 eingeführte prädiktive Debugger kann alle möglichen Zustände vorhersehen, die durch die Ausführung eines Programms entstehen können, ohne dass Sie das Programm tatsächlich ausführen müssen. Dies bietet Ihnen folgende Möglichkeiten:
Der prädiktive Debugger bietet ganz neue Einblicke in die Ausführung Ihres Programms. Außerdem können Sie mit unterschiedlichen Werten experimentieren und Fehler in Ihrem Code beheben, ohne den Debugging-Prozess bei jeder Änderung neu starten zu müssen.
Sie können den prädiktiven Debugger unter ReSharper | Options | Tools | Debugger | Editor Integration | Predictive debugger | Show predicted values (beta) aktivieren.
Dieser Debugger befindet sich derzeit in der Betaphase. Damit er sein volles Potenzial erreichen kann, ist Ihr Feedback entscheidend. Bitte melden Sie daher unbedingt alle Fehler, die Ihnen auffallen, in unserem Issue-Tracker, ebenso wie alle Vorschläge oder Anforderungen, die Sie in Bezug auf diese Funktionalität haben.
ReSharper 2023.2 bietet Ihnen die Möglichkeit, zwei Assemblies detailliert zu vergleichen. Diese Funktion ist besonders nützlich, wenn Sie die Unterschiede zwischen zwei Versionen einer bestimmten Assembly untersuchen möchten, etwa um potenzielle Sicherheitslücken zu finden, die in einer neueren Version eingeführt wurden.
Um Assemblies zu vergleichen, klicken Sie im Toolfenster Assembly Explorer auf Compare Two Assemblies. Sie können sowohl Einzeldatei-Apps als auch .exe
- oder .dll
-Dateien zum Vergleich auswählen.
Klicken Sie hier, um mehr über diese Funktion zu erfahren.
In ReSharper 2023.2 haben wir unseren Caching-Ansatz für die Daten, die die IDE zum Funktionieren aller Systeme benötigt, überarbeitet. Wie in unzähligen Performancetests bestätigt, führt die neue Version zu einem spürbar verringerten Speicherplatzverbrauch bei jeder geöffneten Projektmappe. In der Praxis bedeutet dies insgesamt weniger Zeitaufwand für das Lesen und Schreiben von Festplattendaten und ein schnelleres Laden von Projektmappen.
Eine weitere Änderung, die zu verkürzten Ladezeiten beim Öffnen von Projektmappen geführt hat, ist das Refactoring der Logik für die interne Komponentenerstellung in ReSharper. Weitere Informationen finden Sie hier.
Kostenlose 30-Tage-Testversion verfügbar