ReSharper Ultimate 2019.3 bietet einen neuen Lokalisierungsmanager, Type-Hints und eine weiter verbesserte Unterstützung für C# 8, C++ 20 und die Unreal Engine. Es gab Verbesserungen bei der Navigation, den Codestilen und der Handhabung von Unit-Tests, und die Befehlszeilentools von ReSharper und dotTrace funktionieren jetzt unter Linux und macOS.
Kostenlose 30-Tage-Testversion verfügbar
Der brandneue Localization Manager hilft Ihnen, effizienter zu arbeiten, wenn Sie zahlreiche .resx-Dateien in Ihrer Projektmappe haben. Alle Inhalte in Ihren .resx-Dateien werden in einer einzigen Tabelle dargestellt, sodass Sie den aktuellen Lokalisierungsstatus Ihrer Anwendung oder Website auf einen Blick erfassen und fehlende Ressourcenwerte in jeder Kultur schnell finden können.
Sie haben folgende Möglichkeiten:
Sie finden den Localization Manager unter ReSharper | Windows oder im Kontextmenü des Solution-Explorers.
Weitere Informationen finden Sie unter Localization Becomes Easier with the Localization Manager (Einfachere Lokalisierung mit dem Localization Manager).
Die neue ReSharper-Version kommt mit C# 8 noch besser zurecht. Zu den Neuerungen zählen:
notnull
-Einschränkungen nullable
in einer Datei, einem Projekt oder allen Projekten einer Projektmappe aktiviert.EnumeratorCancellation
zu CancellationToken
-Parametern von async
-Iteratoren.Außerdem wurde die Codeinspektion „Type or type member is never used“ in zwei separate Optionen aufgeteilt, eine für Typen („Type is never used“) und eine für Typmember („Type member is never used“).
Die Generate-Aktion weiß jetzt mehr über C# 8 und gibt dieses Wissen gern an Sie weiter:
Nullability
wird bei der Generierung von equality- und relationalen Membern/Vergleichern berücksichtigt.Eine neue Option bietet zudem die Möglichkeit, beim Generieren von Gleichheitsmembern oder Gleichheitsvergleichern für C# und VB.NET System.HashCode
zur Implementierung von GetHashCode
zu verwenden und dadurch Ihren Code zu verschlanken.
In dieser Version haben wir einen weiteren oft geäußerten Wunsch implementiert. Die C#-Benennungseinstellungen unterstützen jetzt das Lesen von und den Export nach EditorConfig.
Neben dieser großen Neuerung helfen Ihnen mehrere kleinere Änderungen, den Stil Ihres Codes noch präziser zu steuern:
var
statt expliziter Typen bevorzugt dann, wenn der Typ des Initialisierungsausdrucks offensichtlich ist? Dann werden Sie sich freuen, dass ReSharper jetzt „offensichtlichere“ Fälle erkennt. Es gibt auch einen Kompatibilitätsmodus, der dem Roslyn-Verhalten entspricht.&&
oder ||
Vorrang hat, hilft Ihnen diese Option durch das Setzen der Klammern.Wir wurden oft nach der Möglichkeit gefragt, die ReSharper-Befehlszeilentools auf einem unter Linux gehosteten CI-System auszuführen. Lange Zeit lautete unsere Antwort: „Nein, das ist leider unmöglich.“ Aber wir haben uns viel Mühe gegeben, und schließlich gelang es uns, alle Windows-spezifischen Teile zu entfernen und alles auch auf der Mono-Runtime unter Linux und macOS zum Laufen zu bekommen. Aber keine Sorge, unter Windows wird immer noch das .NET-Framework verwendet.
Wir sind stolz, Ihnen die ReSharper-Befehlszeilentools ab sofort auch unter Linux und macOS anbieten zu können. Jetzt steht der Verwendung der leistungsstarken Codeanalyse von ReSharper auf Nicht-Windows-Betriebssystemen nichts mehr entgegen!
Wir hoffen, dass Sie die in ReSharper 2019.1 eingeführten Hints zu Parameternamen und Code-Annotations gerne nutzen. In dieser Version gehen wir noch einen Schritt weiter und bieten Ihnen jetzt Type-Hints. Diese sind verfügbar für:
Als Entwickler möchten wir hin und wieder gerne wissen, an welchen Stellen in unserem Code eine bestimmte Referenz verwendet wird. Es war schon länger möglich, die Aktion „Find dependent code“ für eine Referenz auszuführen, um alle Vorkommen von Typen oder Typmembern aus dieser Referenz zu finden. Allerdings gab es immer auch Einschränkungen.
In Version 2019.3 konnten wir einige davon beseitigen:
Die Unit Testing-Toolfenster sind bereits hervorragend ausgestattet und decken die meisten Anforderungen ab. Aber wir hatten doch noch ein paar Ideen, wie wir Ihnen eine noch umfassendere Individualisierung der Unit-Test-Ansichten ermöglichen konnten, und setzten diese Ideen auch prompt um.
Die Hervorhebung von Bezeichnern wurde komplett überarbeitet. Für eine noch präzisere Codehervorhebung haben wir weitere Farbeinstellungen hinzugefügt (zu finden unter Tools | Options | Fonts and Colors
). Die neuen Farbeinstellungen umfassen:
Der C++20-Standard ist bereits feature-complete, und wenn er im kommenden Jahr offiziell verabschiedet wird, können C++-Entwickler endlich eine Reihe von lang erwarteten Neuerungen nutzen. Viele dieser Funktionen werden von ReSharper C++ 2019.3 bereits unterstützt – inklusive erweiterter Analysen und Insights.
ReSharper C++ weiß zum Beispiel, dass Aggregate durch eine in Klammern gesetzte Werteliste initialisiert werden können, und dass bei Funktionsvorlagen in einigen Fällen ein zusätzlicher ADL erforderlich ist.
Die Concepts-Unterstützung in ReSharper C++ ist nicht auf den Parser beschränkt, sondern umfasst auch die Umbenennen-Refaktorierung und die Verwendungssuche. Zudem bietet die Codeanalyse bei Fehlern im Zusammenhang mit Concepts detaillierte Informationen. Wenn beispielsweise die Auflösung einer Überladung fehlschlägt, weil die Anforderungen eines Concepts nicht erfüllt sind, werden alle Details in einem Tooltip angezeigt. ReSharper 2019.3 zeigt den Tooltip mit den Fehlerdetails einer Überladungsauflösung sogar in Farbe an.
In unserem Blog haben wir eine Beitragsreihe zu C++20 und ReSharper C++ gestartet, in der wir die neuen Sprachmerkmale und deren Übernahme in ReSharper C++ vorstellen.
Wenn ReSharper C++ erkennt, dass Sie an einem Unreal-Engine-Projekt arbeiten, passt es sein Verhalten an UE4-spezifische Anforderungen an.
Die Postfix-Template „new“ für UCLASS
wird zu einem ordnungsgemäßen Factory-Funktionsaufruf erweitert (der das erstellte Objekt im Garbage Collector registriert). Sie können jetzt entsprechend bezeichnete Live-Templates nutzen, um USTRUCT/UCLASS/UENUM/UENUMCLASS
zu generieren.
Die Smart-Pointer der Unreal Engine (TSharedPtr, TSharedRef, TWeakPtr, TUniquePtr
) werden jetzt von ReSharper C++ analog zu std::shared_ptr/std::unique_ptr
behandelt. Dies bedeutet, dass Funktionen wie Parameterinfos, Codeanalyse und Postfix-Codevervollständigung auch für Smart-Pointer funktionieren.
Schließlich gibt es bei UE4-Projekten auch einige Performance-Verbesserungen. So haben wir zum Beispiel einen Hänger im UE4-Editor nach „Refresh Visual Studio Project“ behoben.
Siehe Neuerungen in ReSharper C++.
Der Befehlszeilen-Profiler ist endlich auch für macOS und Linux verfügbar. dotTrace.sh
bietet die gleiche Funktionalität wie sein Windows-Pendant und ist als .tar.gz-Archiv oder NuGet-Package erhältlich.
Erfahren Sie mehr unter Das ist neu in dotTrace 2019.3.
dotCover 2019.3 bietet mehrere Verbesserungen:
Erfahren Sie mehr unter Das ist neu in dotCover 2019.3.
Kostenlose 30-Tage-Testversion verfügbar