Das ist neu in ReSharper Ultimate 2020.1

ReSharper Ultimate 2020.1 führt ein neues Datenflussanalysetool für Integer-Werte in C# ein und bietet eine bessere Unterstützung für nullbare Referenztypen sowie für die neuen Sprachmerkmale von C++20. Die XAML- und Unreal-Engine-Unterstützung wurden ebenfalls verbessert. Die Navigation wurde um einige neue Funktionen erweitert, und im Localization Manager können jetzt Kommentare erstellt werden. Der Decompiler unterstützt weitere Funktionen von C# 7.x und 8.0.

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar

Datenflussanalyse für Integer-Werte in C#

Datenflussanalyse für Integer-Werte in C#

Diese Version von ReSharper führt eine neue Art der C#-Codeanalyse ein, um die Verwendung von Integer-Werten in Ihrer Anwendung zu verfolgen. Durch diese neuartige Analyse wird nachverfolgt, wie sich die Werte aller lokalen int-Variablen verändern. Alle Operationen mit diesen Variablen werden auf Korrektheit überprüft, um nutzlose oder möglicherweise fehlerhafte Codeabschnitte zu erkennen. Im Einzelnen werden Sie in folgenden Fällen gewarnt:

  • Vergleichs- oder Gleichheitsoperatoren, die immer wahr oder falsch ergeben
  • Heuristisch nicht erreichbare switch-Prüfungen von int-Werten
  • Bedeutungslose arithmetische Operationen wie Multiplikation mit 1, Addition von 0 usw.
  • Mögliche int-Überläufe
  • Mögliche Division durch 0

Um die Genauigkeit der Analyse zu verbessern, haben wir zwei neue JetBrains.Annotations-Attribute hinzugefügt, die mit int-Typmembern und -Parametern verwendet werden können: [NonNegativeValue] und [ValueRange(from, to)]. Diese Attribute geben an, wie welche Werte die jeweiligen int-Member während der Laufzeit annehmen können.

C#-Unterstützung

C#-Unterstützung

Wir verbessern laufend die Unterstützung für C#-8-Sprachmerkmale. Wir haben die C#-Sprachunterstützung unter der Haube umfassend refaktoriert, um Codeanalysen und andere Funktionen wie das Refactoring und ReSharper Build auf die Unterstützung von nullbaren Referenztypen (NRT) vorzubereiten. ReSharper 2020.1 meldet bei der Codeanalyse Compiler-Warnungen für nullbare Referenztypen und bietet Quick-Fixes für die meisten Probleme an.

Mehrere neue Inspektionen und Quick-Fixes bieten außerdem folgende Möglichkeiten:

  • Erkennen redundanter Typparameter-Beschränkungen in Bezug auf nullbare Referenztypen
  • Erkennen und Verwenden von async-Methodenüberladungen (falls verfügbar) anstelle von sync-Überladungen
  • Verwenden des nameof-Ausdrucks statt mit typeof(SomeType).Name den Namen des aktuellen Typs auszulesen

Performance-Neuerungen

In dieser Version haben wir unzählige Änderungen an der Architektur von ReSharper vorgenommen, um Stück für Stück unserem Ziel näher zu kommen, alle Kernfunktionen von ReSharper außerhalb des Visual-Studio-Prozesses auszuführen. Alle diese Änderungen wurden unter der Haube vorgenommen, sodass Sie an der Benutzeroberfläche und bei der Verwendung von ReSharper 2020.1 keine Änderungen bemerken werden.

Wenn Sie bisher unsere Updates über die Fortschritte bei der Out-of-Process-Verlagerung von ReSharper verpasst haben, ist dies eine gute Gelegenheit, sich auf den neuesten Stand zu bringen.

Navigationsupdates

Dieses Update führt einige kleine Neuerungen bei der Navigation ein, die Sie unabhängig davon nützlich finden werden, ob Sie bei der Interaktion mit ReSharper die Maus oder die Tastatur bevorzugen:

  • Ein Mittelklick (auf die Scrolltaste Ihrer Maus) bringt Sie zu Deklarationen (Go to Declaration).
  • Wenn Sie in der Go to File-Ergebnisliste Strg+Enter drücken, wird die Datei im Solution Explorer hervorgehoben.
  • In Go To File/Go To Everything können Sie jetzt vollständige Pfade verwenden, um Dateien zu finden.
Verbesserte XAML-Unterstützung

Verbesserte XAML-Unterstützung

In v2020.1 haben wir zahlreiche Verbesserungen und Korrekturen an der XAML-Unterstützung für WPF, Xamarin.Forms, UWP und Avalonia vorgenommen. 

Erheblich verbessert wurden auch die Datenkontext-Inferenz und die Symbolauflösung in Bindings: 

  • Bei der Verwendung von d:BindingContext
  • In Picker.ItemDisplay in Xamarin.Forms
  • RelativeSource-Binding in Xamarin.Forms
  • Template-Binding für das Steuerelement ScrollViewer
  • Wenn ItemsSource als verschachteltes Element verwendet wird
  • In TreeView.ItemContainerStyle

In UWP-Projekten umfasst die Unterstützung jetzt folgende Elemente: 

  • Bedingtes XAML-Markup
  • CustomResource-Binding 

Durch weitere Korrekturen wurde die Unterstützung erweitert auf:

  • Uniform Resource Names (URN) in der Schemadefinition für benutzerdefinierte XML-Namensräume
  • Schrägstriche in Ressourcennamen
  • x:Static-Direktiven für Avalonia
Unit-Test-Updates

Unit-Test-Updates

Ab ReSharper 2020.1 können Sie Ihre Unit-Test-Sitzungen beliebig exportieren und importieren. Dies ermöglicht das Teilen im Team, zwischen Computern oder zwischen Branches, wenn Sie zum Beispiel eine Codeänderung vorgenommen haben und denselben Satz von Unit-Tests in beiden Branches ausführen oder auf Coverage testen möchten.

Außerdem bleiben bereits erstellte Unit Test Sessions nach einem Upgrade auf eine neue Hauptversion von ReSharper erhalten, was praktisch ist, wenn Sie geöffnete und gesperrte Sessions nicht verlieren wollen.

Kommentare im Localization Manager

Kommentare im Localization Manager

Ihr Wunsch war uns Befehl! Die Tabelle enthält neue Zeilen für Kommentare. Sie können jetzt für jeden Wert, der aus einer Ressourcendatei stammt, direkt in der Tabelle einen Kommentar eingeben oder bearbeiten. Diese Kommentare können auch exportiert und importiert werden. Wenn Sie keine Kommentare verwenden oder sie gerade nicht benötigen, können Sie sie mit dem Symbol „Show/Hide comments“ ausblenden.

Außerdem haben wir verschiedene Performance-Fixes implementiert, um das Laden und Filtern der Tabelle zu beschleunigen, Hänger in der Benutzeroberfläche zu vermeiden und flüssigeres Scrollen zu ermöglichen. 

Auch bei der Benutzerführung gibt es etliche Verbesserungen: 

  • Verbesserte Unterstützung für linksläufige Sprachen
  • Präzisere Navigation zu konkreten Zeilen aus dem Texteditor und den Refactoring-Dialogen
  • Verbesserte Code-Completion und -Validierung in den Dialogen
Codeformatierung

Codeformatierung

Neue Einstellungen für C#-Codestile ermöglichen Vorgaben für das abschließende Komma. Die Einstellungen, die Sie unter ReSharper | Options | Code Editing | C# | Code Style | Trailing comma finden, sind mit Ausnahme einiger Sonderfälle auch mit der Inspektion StyleCop SA1413 kompatibel.

C++20-Unterstützung

Noch bessere C++20-Unterstützung

Der C++20-Standard ist praktisch verabschiedungsreif, und ReSharper C++ erweitert die Unterstützung dieses neuen Standards. Es werden mehrere neue Sprachmerkmale unterstützt, darunter Typplatzhalter mit Einschränkungen, verkürzte Funktionsvorlagen und die Deklaration „using enum“. Darüber hinaus bietet ReSharper C++ einen Quick-Fix zum Aktualisieren von Lambda-Deklarationen auf die C++20-Vorlagensyntax sowie eine Refaktorierung zum mühelosen Einfügen von „using enum“-Deklarationen.

Spielentwicklung

Weitere Funktionen für die Spielentwicklung

Durch eine aktualisierte Unreal-Engine-Unterstützung verbessert ReSharper C++ 2020.1 die Rename-Refaktorierung und unterstützt das SpatialOS GDK sowie USF-Dateien mit virtuellen Dateipfaden. ReSharper C++ hält sich zudem enger an die Unreal-Engine-Richtlinien, indem die Inspektion Use auto unterdrückt wird und bei Konsolenvariablen und Protokollkategorien die Namenskonventionen befolgt werden.

ReSharper C++ 2020.1 bietet Erstunterstützung für HLSL. Bereits in diesem frühen Stadium umfasst die Unterstützung eine Vielzahl von Funktionen, darunter die grundlegende Codehervorhebung, eine intelligente Code-Completion sowie eine schnelle Navigation.

Das ist neu in ReSharper C++

Next Important Call

Next Important Call in dotTrace  dotUltimate

Jetzt können Sie mit der Aktion Next Important Call durch die Aufrufstruktur navigieren. Drücken Sie StrgUmschaltRechts, und dotTrace bringt Sie zum Knoten, der für die weitere Analyse am relevantesten ist (z. B. aufgrund einer hohen eigenen Ausführungszeit).

Die Funktion ist in dotTrace Standalone (sowohl im Performance Viewer als auch im Timeline Viewer), Visual Studio und JetBrains Rider verfügbar.

Das ist neu in dotTrace 2020.1

Unterstützung für nullbare Referenztypen

Unterstützung für nullbare Referenztypen in dotPeek

Diese Version bietet eine verbesserte Unterstützung für C#-Sprachmerkmale:

  • Die Unterstützung für nullbare Referenztypen (NRT) ist beim Decompiler angekommen. Zu beachten ist, dass dies derzeit nur in Deklarationen, nicht jedoch in Methodenkörpern funktioniert.
  • Default-Member von Schnittstellen sowie auf die Felder von automatisch implementierten Eigenschaften abzielende Attribute können jetzt dekompiliert werden. 
  • Das Dekompilieren von Tupel-Komponentennamen wurde verbessert.

Das ist neu in dotPeek 2020.1

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar