Das ist neu in Rider

Rider 2020.3 unterstützt endlich die neuen Features in .NET 5, C# 9 und F# 5. Zu den weiteren Neuerungen zählen ein Direktfenster und Verknüpfungen zu privaten Quellen im Debugger, Projektabhängigkeitsdiagramme, Push-to-Hint und Sprachunterstützung für das UI-Framework Avalonia. Unity-Entwickler können sich auf Updates für die Burst-Analyse und die Shader-Unterstützung freuen. Und last but not least: Sie können Tabs per Drag&Drop verschieben, um den Editor nach Wunsch aufzuteilen!

Unterstützung für.NET 5 und C#

Wir bitten um Applaus für die erste Rider-Version mit .NET-5-Unterstützung! Die Unterstützung umfasst Source Generators, C#-9-Features, neue NuGet-Funktionen und neue Zielframeworks (net5.0-windows und net5.0). Außerdem können Sie .NET-5-Anwendungen entwickeln, kompilieren, ausführen und debuggen. Profiling und Coverage sind ebenfalls verfügbar.

Source Generators sind mit ziemlicher Sicherheit das meistdiskutierte neue Feature des C#-Compilers. Kein Wunder: Die Möglichkeit, neuen Code direkt im Kompilierungsprozess zu erstellen und sofort zu verwenden, ist sehr spannend und kann in vielen Situationen nützlich sein.

Was kann Rider hier tun? Nun, es spielt seine Stärken aus und berücksichtigt die generierten Dateien bei Refaktorierungen, bietet Code-Editor-Funktionen und hilft Ihnen beim Navigieren zum generierten Code.

Partielle Methoden dürfen jetzt Ausgabeparameter, andere Rückgabetypen als void sowie beliebige Zugriffsspezifizierer haben, was sie für Source Generators interessanter macht. Source Generators können über die definierende Deklaration der partiellen Methode das Verhalten des generierten Codes anpassen.

Eine weitere coole Neuerung sind init-only-Eigenschaften. Diese können nur während der Initialisierung des Objekts beschrieben werden. Endlich können Sie also Objektinitialisierer verwenden, ohne die Eigenschaften für Änderungen freizugeben!

Rider erkennt init-only-Eigenschaften, berücksichtigt sie bei der Code-Completion und bei der Code-Generierung und analysiert, ob die Eigenschaft irgendwo geändert wird. Für den Fall, dass Sie Ihre Meinung ändern, bietet Rider einen Quick-Fix an, um die Eigenschaft änderbar zu machen.

Der perfekte Einsatzort für init sind die neuen record-Typen. Diese sind Referenztypen mit Wertsemantik, mit denen Sie Unveränderlichkeit erreichen können – und zwar ab sofort für das gesamte Objekt. Auch hier hält Rider mit der Sprache Schritt – von Quick-Fixes für die Wahl des bevorzugten Deklarationsstils bis hin zur grundlegenden Completion-Unterstützung.

Positionsbasierte Records haben eine vom Compiler generierte Deconstruct()-Methode. Rider unterstützt bei diesen Objekten alle Dekonstruktionsfeatures. Beachten Sie das Popup bei der Einführung einer Variablen: Es bietet Ihnen die Wahl zwischen einer einzelnen Variablen oder einer dekonstruierenden Deklaration. Die gleiche Auswahl wird angeboten, wenn eine Funktion auf eine Eigenschaft eines Record-Objekts zugreift.

Nach diesen großen Neuerungen nun zu den kleineren Dingen: Lokale Funktionen dürfen jetzt Attribute haben (sowie Parameter und Typparameter). Rider unterstützt diese neue Möglichkeiten durch Quick-Fixes, einschließlich einer praktischen Funktion zum Annotieren der Methode als [NotNull] oder [CanBeNull] durch Drücken von ! bzw. ?.

Eine weitere nützliche Neuerung in C# 9 ist die Möglichkeit, Top-Level-Programme zu schreiben. Kein Herumturnen mit Program-Klassen mehr: Sie können Ihren Einstiegspunkt direkt nach den using-Direktiven platzieren! Ein paar Hilfestellungen für die Arbeit mit Top-Level-Anweisungen gibt es auch. Für Top-Level-Anweisungen gelten zwei Regeln: Sie sollten vor dem ersten Typ bzw. Namespace stehen, und nur eine Datei im Projekt darf Top-Level-Code enthalten. Beim Umstellen und Kopieren von Code passiert es nur allzu leicht, dass eine dieser beiden Regeln verletzt wird. Um dieses Problem zu beheben, bietet Rider Quick-Fixes, die den Top-Level-Code nach oben oder in eine andere Datei verschieben.

Top-Level-Code ist auch nur Code – also bieten wir Ihnen auch Refactorings dafür: Extract local variable und Extract method.

Weitere Informationen: Top-Level-Anweisungen für C# 9 in ReSharper und Rider

Bei der Zieltyp-basierten (target-typed) Instanziierung in C# 9 können wir nach dem Schlüsselwort new den Typ weglassen, wenn er aus dem Verwendungskontext abgeleitet werden kann. Rider bietet vollständige Unterstützung für dieses Feature, einschließlich der Möglichkeit, mit Find Usages Verwendungen des Konstruktors zu finden und den bevorzugten Syntaxstil zu konfigurieren. Letzterer ermöglicht die Verwendung der new()-Syntax, wenn der instanziierte Typ offensichtlich ist, während in anderen Fällen eine explizite Typangabe erzwungen wird.

Sollten Sie übrigens aufgrund der großzügigen Verwendung von new() den Überblick über Ihren Code verlieren, helfen Ihnen die Typnamen-Hinweise von Rider.

Dank Rückgabetyp-Kovarianz müssen Sie in überschreibenden Methoden nicht mehr zwingend denselben Typ zurückgeben wie in der Basisklassenmethode. Damit sind keine Workarounds mehr erforderlich, um einen spezifischeren Typ zurückzugeben.

Auch Pattern-Matching wurde in der neuen Sprachversion weiterentwickelt. Bei den Vergleichsausdrücken können nun relationale (<, > usw.) und logische (not, or, and) Operatoren verwendet werden. Dies ermöglicht viel kompakteren Code im Vergleich zu den alten switch-Konstrukten. Rider unterstützt Sie bei der Analyse der Vergleichsmuster und beim Umschreiben im gewünschten Stil.

Eines haben wir noch: Angesichts der Einführung von Lambda-Wegwerfparametern hielten wir es für eine gute Idee, einen Quick-Fix für dieses Feature hinzuzufügen.

Das war’s mit den Highlights der neuen Sprachversion. Es gibt noch einige weitere kleinere Sprachänderungen, die ebenfalls in Rider 2020.3 unterstützt werden. Dazu gehören Zieltyp-basierte bedingte Ausdrücke, statische Lambdas, GetEnumerator-Erweiterungsmethoden in foreach, Funktionszeigertypen und native Integer-Typen.

Debugger

Direktfenster

Freuen Sie sich auf ein neues Direktfenster mit Programmierunterstützung. Wenn das Programm an einem Haltepunkt stoppt, können Sie synthetische Variablen erstellen und mit Ihrem Code experimentieren, ohne den Debugger neu zu starten.

Wenn Sie eine Debugging-Sitzung starten, wird im Debugger-Bereich unten rechts, unterhalb der Überwachungsvariablen, das Direktfenster (Immediate Window) angezeigt. Die Eingabe ist nur möglich, wenn die Ausführung unterbrochen ist – normalerweise beim Erreichen eines Haltepunkts.

Hier können Sie beliebigen gültigen C#-Code eingeben und werden dabei durch alle verfügbaren Code-Completion-Funktionen unterstützt.

Definieren Sie neue synthetische Variablen. Rider verfolgt diese Werte im Variablenfenster, wo synthetische Variablen in einer Sammlung zusammengefasst sind. Sie können diese Variablen genauso wie alle anderen Variablen einsehen, anheften und ändern.

Sie können sogar beliebige Memberfunktionen der verfügbaren Objekte oder im aktuellen Kontext verfügbare statische Funktionen aufrufen und dabei verfügbare Objekte als Argumente verwenden. Haltepunkte auf dem Ausführungspfad der Funktion unterbrechen die Ausführung wie bei einem normalen Aufruf. Der Aufruf hat seinen eigenen Bereich auf dem Stack, der mit Function Evaluation beginnt und im Frames-Bereich untersucht werden kann.

Führen Sie Anweisungen aus, ohne sie Variablen zuweisen zu müssen. Rider speichert den letzten von einer Ausführungsanweisung zurückgegebenen Wert im Platzhalter $result. Das Direktfenster speichert den Verlauf Ihrer Anweisungen.

Weitere Informationen: Direktfenster: Interagieren Sie mit Ihrem Code beim Debuggen in Rider

Neue Aktionen

Wir haben neue Debugger-Aktionen eingeführt, die noch vor dem Start der Debugging-Sitzung verfügbar sind.

Sie müssen jetzt nicht erst mit dem Debuggen beginnen und in mehreren Schritten zur Stelle navigieren, an der Sie interessiert sind. Mit den Aktionen Start Debugging and Run to Here und Start Debugging and Run to Here Non-Stop bringt Sie Rider direkt zur gewünschten Stelle und überspringt dabei alle Haltepunkte.

Um das Debuggen zu starten und die Ausführung gleich am Einstiegspunkt der Anwendung anzuhalten, verwenden Sie die Aktionen Start Debugging and Step Over oder Start Debugging and Step Into.

Sie finden diese Aktionen im Hauptmenü unter Run | Debugging Actions.

Bitte beachten Sie, dass die oben genannten Aktionen nur für die .NET-Projektkonfiguration bzw. die Konfiguration .NET Static Method verfügbar sind.

Private Source Link

Gute Nachrichten für alle, für die der Begriff „Private Source Link“ (Verknüpfung zu privaten Quellen) vertrautes Terrain darstellt: Rider 2020.3 bietet ab sofort sowohl im Debugger als auch im integrierten Decompiler vollständige Unterstützung für private Quellenserver. Rider unterstützt Quellen auf GitHub, GitHub Enterprise, Bitbucket und Azure DevOps (früher VSTS).

Zur Vereinfachung des späteren Zugriffs kann Rider die Authentifizierungsdaten speichern.

Weitere Debugger-Updates

  • Wir haben die Auswertung von Methoden implementiert, die out- und ref-Parameter haben oder out-Variablen in der Parameterliste deklarieren.
  • Die Aufzählung von IEnumerable-Sequenzen wurde erheblich beschleunigt.
  • Der View-Link wird jetzt auch bei Objekten mit einer sehr langen Darstellung korrekt angezeigt.
  • Lange Zeichenfolgen werden beim Kopieren ihrer Werte nicht mehr abgeschnitten, und ihre Auswertung wurde optimiert.

Projektabhängigkeitsdiagramm

Mit unserem neuen Architekturtool können Sie Projektabhängigkeiten in Ihrer Lösung visualisieren und deren Architektur untersuchen.

Diagramm anzeigen

Sie können das Projektabhängigkeitsdiagramm über Tools | Architecture | Show Project Diagram oder über das Kontextmenü des Projektmappen-Explorers öffnen. Das Diagramm folgt Ihrer Lösungsstruktur und zeigt zunächst alle Top-Level-Elemente in Ihrer Lösung an. Sie können auswählen, welche Projekte oder Projektmappenordner sichtbar sein sollen, den Maßstab ändern, ein Raster einblenden (und bei Bedarf die Option zum Ausrichten am Raster aktivieren) und Notizen zu bestimmten Projekten hinzufügen.

Navigation

Mit Strg+F (Windows) bzw. Cmd+F (macOS) können Sie nach einem gewünschten Projekt suchen.
Mit der Schaltfläche Show Neighbors of Selected Nodes in der Symbolleiste können Sie das Projektabhängigkeitsdiagramm filtern, um die Anzeige zu beschränken: auf den ausgewählten Knoten, auf dessen direkte Abhängigkeiten und auf Projekte, die von diesem Projekt abhängen.

Bei großen Projektabhängigkeitsdiagrammen können Sie das Toolfenster Dateistruktur öffnen (View | Tool Windows | Structure) und den angezeigten Ausschnitt anhand dieser Übersicht verschieben.

Kopplungsgrad zwischen Projekten analysieren

Klicken Sie auf das Symbol Enable Coupling Analysis in der Symbolleiste, um die Analyse durchzuführen und das Diagramm zu aktualisieren. Dicke, Farbe und Stil der Verbindungslinien können variieren, je nachdem, wie eng die Kopplung zwischen den Projekten ist. Wenn Sie den Mauszeiger auf die Verbindung bewegen, zeigt Rider einen Tooltip mit der genauen Anzahl der Verwendungen an. Wenn Sie auf die Verbindung klicken, werden Details zum abhängigen Code gesammelt und in einem separaten Toolfenster angezeigt.

In Projektabhängigkeitsdiagrammen können Sie mit Show Transitive auch transitive Abhängigkeiten anzeigen. Dadurch werden sowohl direkte als auch indirekte Projektabhängigkeiten visualisiert.

Speichern und Snapshots vergleichen

Sie können einen Snapshot des Projektabhängigkeitsdiagramms über die Symbolleiste speichern und später mit dem aktuellen Stand der Projektmappe vergleichen. Über das Menü Tools | Architecture | Compare With Saved... können Sie gespeicherte Snapshots laden und untersuchen. Rider hebt die Unterschiede zwischen den Diagrammen hervor.

Weitere Informationen: Neu in Rider 2020.3: Projektabhängigkeitsdiagramme

Diagramme exportieren

Über die Symbolleiste können Sie das Diagramm als Bild exportieren und in Ihre Dokumentation aufnehmen.

Game-Entwicklung

Unity

Mit Updates für die Burst-Analyse, die Shader-Unterstützung und Unit-Tests sowie verschiedenen hilfreichen Korrekturen stellt Rider 2020.3 einen weiteren großen Schritt in Bezug auf die Unity-Unterstützung dar.

Klicken Sie auf das Symbol neben einer Methode, die mit dem Unity-Attribut [MenuItem] markiert ist, und Rider weist Unity an, die Methode aufzurufen.

Die intelligente Shader-Unterstützung von Rider wurde weiter verbessert: Bei der Analyse des Codes werden automatisch define-Symbole aus Pragmas wie shader_feature und target verwendet. Mit einem neuen Kontext-Picker in der Statusleiste können Sie einen Shader anhand der Symbole analysieren, die an dem Ort definiert sind, von dem aus er inkludiert wurde.

Wir haben die Burst-Kontextanalyse mit einer neuen Code-Vision-Anzeige und neuen Warnungen für die falsche Verwendung von SharedStatic verbessert. Außerdem können Sie über das Alt+Enter-Menü unkompliziert ein [BurstDiscard]-Attribut hinzufügen.

Neue Kontextaktionen ermöglichen eine bessere Kontrolle über die Analyse von Performance-kritischen Methoden wie Update. Sie können Rider jetzt anweisen, eine Methode nicht mehr als „häufig aufgerufen“ zu behandeln oder nicht mehr als „ressourcenintensiv“ hervorzuheben, und Sie können sogar einen neuen Performance-Kontext aus einer beliebigen Methode starten.

Auch bei Unit-Tests gibt es großartige Neuerungen – zum Beispiel die Unterstützung für das Attribut [Explicit] sowie Features für parametrisierte Tests. Außerdem können Tests für den Edit- und Play-Modus jetzt in einem einzigen Testlauf ausgeführt werden.

Das Toolfenster für die Unity-Protokollanzeige hat einige nützliche UI-Verbesserungen erhalten, unter anderem eine Filtermöglichkeit basierend auf dem letzten Wechsel des Spiels in den Play-Modus oder dem letzten Neuladen der AppDomain des Spiels.

Natürlich wurden auch eine Reihe von Fehlerkorrekturen vorgenommen. So haben wir zum Beispiel das Problem korrigiert, dass die Meldung „Refreshing solution“ unendlich lang angezeigt wurde, wenn keine Verbindung zum Unity-Editor bestand, und es gibt einen neuen Quick-Fix zum Entfernen einer redundanten Ereignismeldung. Außerdem haben wir bei Player-Projekten das Problem der falschen C#-Vorschläge gelöst. Weitere Details finden Sie in der Änderungshistorie.

Rider for Unreal Engine Early Preview

Rider for Unreal Engine hat weiterhin den Status einer öffentlichen Preview und wird voraussichtlich 2021 als Teil von Rider veröffentlicht. Sie können die Preview bis zur Veröffentlichung kostenlos evaluieren.

Rider for Unreal Engine bietet eine nahtlose Integration mit UnrealHeaderTool, damit Sie noch mehr Unreal-Engine-spezifische Codeprobleme direkt im Editor erkennen können. Wenn Sie mit einem Unreal-Engine-Projekt arbeiten, wird UnrealHeaderTool automatisch für die bearbeitete Datei ausgeführt, und Fehler oder Warnungen werden genauso wie bei anderen Inspektionen angezeigt.

Sehen Sie die UnrealHeaderTool-Integration in Aktion

Bei HLSL-Shader-Dateien können Sie jetzt die volle Power der Kontrollflussanalyse nutzen. Die IDE warnt Sie vor unerreichbarem Code, nicht initialisierten Variablen, Redundanzen bei Kontrollflusssprüngen und bedingten Verzweigungen und weiteren Problemen. In der Rider-Hauptoberfläche ist in v2020.3 diese Analyse auch für Unity-Shader aktiviert.

Das Unreal-Protokoll in Rider for Unreal Engine hat jetzt eine Filterfunktion. Sie können anhand von Verbosity-Stufen und Kategorien filtern und Zeitstempel ein- oder ausblenden. Wir haben ein Problem behoben, das bei zu vielen Meldungen im Unreal-Protokollfenster zu einem Einfrieren der Bedienoberfläche führte.

Das UnrealLink/RiderLink-Plugin ermöglicht eine erweiterte Integration zwischen JetBrains Rider und dem Unreal Editor von Epic Games. Das Plugin wird jetzt auf dem JetBrains Marketplace gehostet und kann unabhängig vom Produktbuild aktualisiert werden.

F#-Unterstützung

Sprachmerkmale von F# 5

Wir haben die Unterstützung für die neue String-Interpolationssyntax implementiert. Jetzt können Sie eine Zeichenfolge mit dem Symbol $ als interpoliert markieren, um Platzhalter im Zeichenfolgenliteral verwenden zu können. Die Syntax für typgebundene Interpolation von Platzhaltern (%s und %d) wird ebenfalls unterstützt.

Diese Version unterstützt das Schlüsselwort nameof, mit dem Sie den Namen fast jedes Symbols in F# erhalten können.

Eine weitere Neuerung ist die Unterstützung für open type-Deklarationen. Damit können Sie jeden Typ „öffnen“, um statische Inhalte, die im Typ gespeichert sind, zu importieren.

Weitere Funktionen und Verbesserungen

Mit Quick-Fixes und Kontextaktionen können Sie jetzt problemlos fehlende Überschreibungen in Typen und Schnittstellenimplementierungen generieren. Vielen Dank an Matt für die Idee und die erste Implementierung!

Neue Tooltips mit Syntaxhervorhebung verbessern die Lesbarkeit des Codes. Wir bedanken uns bei Saul für die schöne Implementierung.

Neue Kontextaktionen zum Annotieren von let-Bindungstypen. Auch hier haben wir Matt zu danken.

Wir haben die Möglichkeit hinzugefügt, die Severities der vom ReSharper-Backend bereitgestellten Analyzer zu konfigurieren. Bitte beachten Sie, dass die meisten Warnungen/Fehler weiterhin von FCS bereitgestellt werden.

Neue Analyzer und Quick-Fixes:

  • Analyzer für Lambdas, die vereinfacht oder durch eine eingebaute Funktion ersetzt werden können.
  • Analyzer für redundante Anwendungen, z. B. zum Entfernen eines redundanten Ignore-Aufrufs, wenn nichts zu ignorieren ist.
  • Analyzer für redundante Muster zur Verbesserung Ihres Codestils.
  • Quick-Fix zum Konvertieren eines Namespace in ein Modul.

Eingabeunterstützung:

  • Sinnvolleres Verhalten von Enter bei Methodenaufrufen.
  • Neue Funktion „Surround with Quotes“.

Mit einer neuen Aktion können Sie Dateien anhand eines Modul-/Typnamens umbenennen.

Die Verfolgung von lokalen Variablen im Debugger wurde bei asynchronen Workflows verbessert.

UI/UX-Verbesserungen

Neuer Begrüßungsbildschirm

Wir haben den Begrüßungsbildschirm überarbeitet – er ist jetzt übersichtlicher und moderner. Die Funktionalität ist unverändert, aber der Bildschirm ist jetzt besser strukturiert. Sie können weiterhin Ihre Projekte verwalten, über Tutorials neue Rider-Funktionen kennenlernen, neue Projektmappen erstellen, vorhandene Projektmappen öffnen oder eine Projektmappe aus einer Versionsverwaltung auschecken.

Im Projektmappen-Explorer suchen

In der Projektmappen-Explorer-Ansicht ist endlich eine „echte“ Suche verfügbar! Sie können alle Knoten im Projektmappenbaum (jetzt sogar zugeklappte Knoten) durchsuchen. Die Suche umfasst Dateien, Ordner, Projekte, Referenzen, Analyzer, Importe und Pakete – so finden Sie wirklich alle Vorkommen Ihres Suchbegriffs. Mit Tastenkürzeln oder Schaltflächen können Sie die Treffer einzeln durchgehen. Um das Suchfeld zu öffnen, drücken Sie Strg+F oder klicken Sie auf die Lupe in der Symbolleiste.

Drag & Drop Registerkarten

Wenn Sie während der Arbeit an einem Projekt mehrere Tabs öffnen, können Sie jetzt durch Ziehen und Ablegen der Dateitabs den Editor horizontal oder vertikal teilen.

Open in Right Split

Mit der neuen Aktion Open in Right Split (View | Open in Right Split oder Umschalt+Enter) können Sie eine Datei direkt in einem vertikal geteilten Fenster öffnen. Die Aktion ist in der Explorer-Ansicht oder in anderen Navigations-Popups (z. B. Recent Files, Search Everywhere und der Navigationsleiste) verfügbar, wenn eine Datei ausgewählt ist.

Angeheftete Tabs

Angeheftete Tabs können mit einem neuen Stecknadel-Symbol markiert werden. Wenn Sie darauf klicken, wird die Datei losgelöst. Sie können Ihre Tabs auch anheften und loslösen, indem Sie sie auf andere angeheftete bzw. nicht angeheftete Dateien ziehen. Wenn Sie häufige viele Tabs geöffnet haben, können Sie alle angehefteten Tabs in einer Reihe zusammenfassen. Öffnen Sie dazu Preferences/Settings | Editor | General | Editor Tabs und aktivieren Sie das Kontrollkästchen Show pinned tabs in a separate row.

Syntaxhervorhebung in Tooltips

Die neue Syntaxhervorhebung bei Tooltips erleichtert das Lesen und Verstehen des Inhalts.

Vorschau-Tab

Sie können jetzt mit einem einzigen Klick eine Datei in einem Vorschau-Tab öffnen. Wenn eine Datei in einem Vorschau-Tab geöffnet ist, wird ihr Name kursiv angezeigt. Wenn Sie beginnen, die Datei zu bearbeiten, wird von der Vorschau zum normalen Modus gewechselt. Um diese Funktion zu aktivieren, klicken Sie auf das Zahnradsymbol in der Projektansicht und aktivieren Sie Enable Preview Tab.

Build-Aktion auf Touch Bar

Wir haben für macOS-Nutzer die Build-Aktion zur Touch Bar hinzugefügt.

Versionsverwaltung

Sie können jetzt das Staging Ihrer Änderungen direkt in Rider durchführen. Klicken Sie auf das Plus-Symbol, um Ihre Dateien zum neuen Staged-Knoten in der Commit-Ansicht hinzuzufügen. Sie können Änderungen auch direkt aus der Randleiste oder in der Diff-Ansicht zum Staging hinzufügen. Um diese Funktion zu aktivieren, öffnen Sie Preferences/Settings | Version Control | Git und aktivieren Sie das Kontrollkästchen Enable staging area. Weitere Details finden Sie in diesem Blogeintrag.

Der Dialog Search Everywhere verfügt jetzt über einen neuen Git-Tab. Somit können Sie jetzt im Dialog Search Everywhere nach Commit-Hashes, Commit-Nachrichten, Tags und Branches suchen.

Wir haben einige Verbesserungen für die Arbeit mit Branches vorgenommen. Rider zeigt jetzt alle verfügbaren Aktionen für den aktuell ausgewählten Branch an. Die Aktionen Merge into Current und Rebase Current onto Selected wurden in Pull into Current Using Merge bzw. Pull into Current Using Rebase umbenannt.

Weitere VCS-Updates:

  • Das VCS-Menü trägt jetzt den Namen des aktuell verwendeten Versionierungssystems.
  • Patches werden jetzt im Git-Format erstellt.

Plugins

Dynamische Programmanalyse (DPA)

Das Plugin für die dynamische Programmanalyse ist jetzt auch unter macOS und Linux für .NET-Core-Anwendungen verfügbar – die Beschränkung auf Windows ist Geschichte. Die Analyse ist für Anwendungen verfügbar, die auf .NET Core 3.0 oder höher abzielen.

Das DPA-Plugin kann jetzt die Speicherzuweisungen analysieren, wenn ein Debugger an einen laufenden Prozess angehängt ist.

Azure DevOps

Das Azure-DevOps-Plugin kann einen neuen Server-Arbeitsbereich erstellen oder einen vorhandenen importieren.

dotCover

Mit dem dotCover-Plugin können Sie bei Anwendungen, die auf .NET 5 abzielen, Coverage-Analysen unter Windows, macOS und Linux durchführen.

Im Fenster Unit Tests Coverage können Sie die Coverage-Ergebnisse nach Zielframework filtern.

Die von dotCover im Code-Editor vorgenommenen Hervorhebungen können in den Plugin-Einstellungen oder im Popup „Configure highlighting level“ aktiviert oder deaktiviert werden.

Sie können jetzt vorgeben, für welche Projekte ein Build erstellt werden soll, wenn eine kontinuierliche Testsitzung gestartet wird. Auf diese Weise können kontinuierliche Testsitzungen beschleunigt werden.

dotTrace

Mit dem Leistungsprofiler können Sie jetzt .NET-5-Anwendungen unter Windows, macOS und Linux analysieren.

Der Leistungsprofiler kann jetzt ein Flammendiagramm anzeigen. Mit dieser Visualisierung des Aufrufbaums lassen sich langsame Methoden einfacher finden.

Das dotTrace-Plugin für Rider kann jetzt Aufrufbäume zuklappen – bisher war diese Funktion der Standalone-Version von dotTrace vorbehalten. Dies vereinfacht die Analyse von Aufrufbäumen, da Aufrufketten, die nicht zu Benutzermodulen und -Assemblies gehören, zugeklappt werden können.

Azure Toolkit for Rider

Bei Verwendung des Azurite-Speicheremulators in Rider können Sie jetzt den Warteschlangenspeicher untersuchen. Sie können Nachrichten hinzufügen, Nachrichteninhalte anzeigen und einiges mehr.

Ebenfalls neu ist die Erstunterstützung für die Ausführung der neuen Alpha-Version 3.9 von Azurite mit einem Tabellenspeicher-Emulator.

In Azure-Functions-Projekten werden Run/Debug-Konfigurationen für einen einfacheren Zugriff im Kontextmenü des Projekts angezeigt. Wir haben außerdem die Kontextmenüs im Azure-Explorer-Toolfenster neu strukturiert, damit häufig benötigte Aktionen schneller ausgeführt werden können.

AWS Toolkit for Rider

  • Grundlegende Unterstützung für die Amazon Elastic Container Registry.
  • Unterstützung für lokales Debugging von Lambda-Funktionen in .NET Core 3.1 (erfordert SAM CLI ab Version 1.4.0).
  • Die Liste der S3-Buckets wird jetzt deutlich schneller geladen.
  • Das Plugin erfordert jetzt Rider 2020.1 als Mindestversion. Die Unterstützung für 2019.3 wurde als veraltet gekennzeichnet.
  • Weitere Informationen finden Sie im Marketplace.

Markdown

Das Markdown-Tool verfügt jetzt über eine bessere Vorschau-Oberfläche und eine verbesserte Benutzerführung. Sie können das Markdown-Format unter Preferences | Settings | Editor | Code Style | Markdown anpassen. Mit der Vorschau-Autoscroll-Schaltfläche in der oberen rechten Ecke des Editorfensters können Sie das Scrollen des Vorschaufensters und des Editors synchronisieren. Eine weitere Neuerung ist die Unterstützung für Mermaid.js.

Code-Editor

Inlay-Hinweise

Wir sind überzeugt, dass Inlay-Hinweise sehr leistungsfähig sein können, aber wir wissen auch, dass die Arbeitsumgebung möglichst einfach und übersichtlich sein sollte. Daher haben wir das neue „Push-to-Hint“-System für Inlay-Hinweise entwickelt, um das Beste aus beiden Welten zu verbinden.

Im Push-to-Hint-Anzeigemodus werden Inlay-Hinweise standardmäßig nicht angezeigt. Sie erscheinen nur bei gedrückter Strg-Taste und werden wieder ausgeblendet, sobald Sie die Strg-Taste loslassen.

Es sind ziemlich detaillierte Einstellungen möglich: Sie können Rider mitteilen, welche Hinweise immer und welche auf Tastendruck angezeigt werden sollen – und an welchen Hinweisen Sie überhaupt nicht interessiert sind. Verwenden Sie dazu die Einstellung „Visibility“ für jeden Hinweistyp.

Ein weiteres Thema, an dem wir gearbeitet haben, sind Hinweise für implizite Typumwandlungen (Casts). Diese können zu Datenverlust oder Leistungseinbußen führen, und Rider kann Sie jetzt auf implizite Casts hinweisen.

Dateikopf

Unter Preferences/Settings | Editor | File Header Template können Sie jetzt eine Vorlage für Dateiköpfe angeben. Dort können Sie Copyright-Hinweise, Unternehmensinformationen, den aktuellen Benutzernamen usw. unterbringen.

Codestil und Formatierung

Wir haben eine lang erwartete Funktion hinzugefügt, um Formatierungseinstellungen direkt im Code-Editor zu erkennen und zu konfigurieren. Wählen Sie einen Codeabschnitt aus, drücken Sie Alt+Enter und wählen Sie Format Selection / Configure oder Format Selection / Detect Formatting settings. Rider zeigt Ihnen eine Liste aller Einstellungen, die für diese Codezeilen relevant sind. Die Werte, die von den Standardeinstellungen abweichen, werden hervorgehoben. Mit der Option „Only show changed values“ können Sie die Anzeige außerdem auf diese abweichenden Werte beschränken.

Weitere Informationen: Code-Formatierungsregeln mit Rider automatisch erkennen

Wir ergänzen die Formatierungs-Engine weiterhin um detailliertere Einstellungen. Folgende Neuerungen haben wir in dieser Version hinzugefügt:

  • Mit den Einstellungen zum Anordnen von Eigenschaftsmustern können Sie Rider anweisen, einfache Muster in einer einzelnen Zeile zu platzieren, und Sie können festlegen, wie lange Muster umbrochen werden sollen. Mit einer weiteren Einstellung können Sie Eigenschaftsmuster in Spalten anordnen.
  • Eigenschafts- oder Ereignis-Zugriffsmethoden können jetzt mit Leerzeilen umgeben werden.
  • Bei Visual Basic .NET haben Sie die Option, nach dem unären Operator +/- ein Leerzeichen hinzuzufügen.

Mit einer neuen Option auf dem Tab Preferences/Settings | Editor | Code Style | C# | Syntax Style können Sie Ihren bevorzugten Syntaxstil für Standardwerte vorgeben: default oder default(T).

Auch bei der .editorconfig-Unterstützung hat es Updates gegeben:

  • Neuer Parameter „Spaces around ‘=’“ beim Export in eine .editorconfig-Datei. Dieser Wert wird bei vorhandenen Dateien automatisch erkannt und kann für neue Dateien manuell festgelegt werden. Der Standardwert ist „true“.
  • Unterstützung für das Lesen von Roslyn-Eigenschaften: file_header_templates, dotnet_sort_system_directives_first und dotnet_separate_import_directive_groups.

Sie können jetzt den Einzug der aktuellen Codezeile mit der Tab-Taste ändern. Um diese Funktion zu verwenden, weisen Sie der Tab-Taste die Aktion „Emacs Tab“ zu.

Avalonia Unterstützung

Codeanalyse

Wie bei allen WPF-ähnlichen Frameworks stellt die Codeanalyse sowohl für C#-Code-Behind-Dateien als auch für .axaml-Dateien zahlreiche allgemeine Codeinspektionen mit entsprechenden Quick-Fixes bereit – zum Beispiel „Possible ‘System.NullReferenceException’“ und „Class/Property {...} is obsolete: Use {...}“.

Neben den allgemeinen WPF-Inspektionen gibt es etliche Avalonia-spezifische Inspektionen mit den dazugehörigen Quick-Fixes, z. B. „Path to resource is case-sensitive“ und „ColumnDefinitions tag can be converted to attribute“. Bei der letztgenannten Inspektion ermöglicht eine Kontextaktion für das Attribut ColumnDefinitions="*,Auto,*" die Rückkonvertierung in ein <Grid.ColumnDefinitions>-Tag.

$self, $parent, ^ und # werden jetzt in Avalonia-Bindings korrekt unterstützt, und die Indizes im Array $parent[] werden ordnungsgemäß validiert.

Für CompiledBinding und die Erweiterung x:CompileBindings steht jetzt erweiterte Unterstützung bereit. Rider weiß, dass hier DataType erforderlich ist und fordert Sie auf, es bei Bindings in Ihrem Code zu verwenden.

Der Quick-Fix „Create from usage“ ist für zahlreiche Avalonia-Eigenschaften verfügbar.

Die Avalonia-XAML-Unterstützung umfasst das CSS-ähnliche Styling-System.

Inlay-Hinweise helfen Ihnen dabei, den betrachteten Code besser zu verstehen.

Codevervollständigung

Code-Completion und Parameterinformationen sind für alle XAML-Schlüsselwörter, zahlreiche Markup-Erweiterungen, die Eigenschaften x:Name und Style, die Source-Eigenschaften von StyleInclude und viele weitere Elemente verfügbar.

Navigation

Sie können unkompliziert zu Deklarationen von Datentypen für kompilierte Bindings, gebundenen Eigenschaften, Avalonia-Steuerelementtypen und x:Name-Elementen navigieren. Rider kann auch direkt vom XAML-Code zum dekompilierten externen Code (einschließlich Style-Setter-Eigenschaften) und zu referenzierten xmlns-Namespaces wechseln.

Find Usages

Mit Find Usages finden Sie alle Verwendungen von Methodenbindungen, x:Name-Attributen, Style-Klassen und -Settern sowie zahlreichen Eigenschaften.

Refaktorierungen

Die Refactorings Rename und Safe Delete erkennen jetzt alle Arten von Verwendungen im XAML-Code und aktualisieren sie entsprechend.

Hierarchie und Codestruktur

Sie können die Hierarchie und die Struktur des Avalonia-XAML-Codes betrachten.

Webentwicklung

Blazor-Unterstützung

Die Blazor-Unterstützung wird weiter ausgebaut. Bei dieser Iteration ging es darum, generische Typparameter und ihre Typinferenz aus Verwendungen zu unterstützen und Leistungsrückschläge beim Öffnen von Lösungen zu eliminieren. Die vollständige Liste der behobenen Probleme finden Sie in unserem öffentlichen Bug-Tracker.

Unterstützung für Tailwind CSS

Mit Rider können Sie jetzt Tailwind CSS produktiver nutzen. Nachdem Sie das Tailwind-CSS-Plugin über Preferences / Settings | Plugins installiert haben, werden Ihre Tailwind-Klassen automatisch vervollständigt, beim Bewegen des Mauszeigers auf ein Element wird eine Vorschau des resultierenden CSS-Codes angezeigt, und auch Ihre Anpassungen in tailwind.config.js-Dateien werden berücksichtigt.

React-Komponenten aus Verwendungen erstellen

Haben Sie eine unaufgelöste React-Komponente in Ihrem Code? Platzieren Sie die Einfügemarke darauf, drücken Sie Alt+Enter und wählen Sie Create class / function component von der Liste. Rider erstellt dann das entsprechende Codekonstrukt für Sie.

Weitere nützliche Verbesserungen:

  • Bei JavaScript- und TypeScript-Dateien können Sie mithilfe der Navigationsleiste zu bestimmten Codeelementen in der aktuellen Datei springen. (Weitere Informationen)
  • Bessere Formatierung für Vorlagenliterale mit CSS und HTML (ein ziemlich spezifisches Feature, allerdings mit zahlreichen Stimmen im entsprechenden Ticket – weitere Informationen hier).
  • Volle Unterstützung für pnpm (Details).

Details zu allen Web-bezogenen Verbesserungen, die allesamt auch in Rider 2020.3 verfügbar sind, finden Sie unter Das ist neu in WebStorm.

Unterstützung von Datenbanken

SQL für MongoDB

Sie können jetzt SQL verwenden, um MongoDB-Datenbanken abzufragen! Wir haben unseren eigenen JS-SQL-Übersetzer entwickelt, der dies ermöglicht.

Es funktionieren nur SELECT-Abfragen, und die verfügbaren Klauseln sind JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT und OFFSET. Den vollständigen Beitrag zu den unterstützten Funktionen finden Sie hier.

Couchbase-Unterstützung

Wir freuen uns immer, eine neue Datenbank aufzunehmen, und unser neuestes Mitglied ist Couchbase! Zu beachten ist, dass Rider den Couchbase-Query-Service und nicht den Couchbase-Analytics-Service unterstützt.

Azure AD-Authentifizierung

Sie können jetzt Azure AD verwenden, um sich an Ihrer Datenbank anzumelden.

Details zu allen Datenbank-bezogenen Verbesserungen, die allesamt auch in Rider 2020.3 verfügbar sind, finden Sie unter Das ist neu in DataGrip.

Weitere Updates

Unit-Tests

Über das Alt+Enter-Menü können Unit-Tests für ein bestimmtes Zielframework direkt aus dem Code-Editor heraus gestartet werden.

Die Ergebnisse von Unit-Tests lassen sich auf der Registerkarte Unit Test Session exportieren.

Xamarin

Wenn Sie iOS-Projekte über „Information Property List“-Dateien konfigurieren, steht Ihnen in Xamarin.iOS-Projekten auf allen Plattformen ein neuer Rich-Editor für Info.plist zur Verfügung. Sie müssen Xcode nicht mehr extra öffnen, um diese Dateien zu bearbeiten.

Verschiedenes

  • Run-Konfigurationen, die als Dateien gespeichert sind, werden jetzt zu den Projektmappen-Elementen im Ordner Run Configurations hinzugefügt. Dadurch kann Rider Run-Konfigurationen, die in benutzerdefinierten Ordnern gespeichert sind, korrekt verwenden.
  • Sie können jetzt Vorlagen für Run-Konfigurationen als Dateien speichern und per VCS teilen.
  • Einfache mathematische Ausdrücke lassen sich jetzt im Suchfeld von Search Everywhere auswerten.
  • Das IDE-Design kann automatisch mit den Windows- und macOS-Systemeinstellungen synchronisiert werden. Aktivieren Sie dazu die Option Sync with OS unter Settings | Appearance & Behavior | Appearance | Theme.
  • Die Performance der projektmappenweiten Fehleranalyse wurde durch das Abschalten der „gierigen“ (greedy) Inspektionsberechnung um ca. 25% verbessert.