Das ist neu in Rider

Rider 2023.1 verbessert die C#-Unterstützung unter anderem durch Inspektionen zur Optimierung und Beschleunigung Ihrer Arbeit mit unterschiedlichen Arten von Collections sowie durch mehr Anpassungsmöglichkeiten bei der Einführung von Nullprüfungen in Ihrem Code. Die Game-Entwicklung in Rider wird durch die neu eingeführte Unterstützung für den Data Oriented Tech Stack (DOTS) von Unity sowie für Unreal Engine 5.2 gestärkt. Die Unterstützung umfasst die jüngsten Updates für das Blueprints-Dateiformat, Godot 4 sowie einer Reihe weiterer Verbesserungen für den Gamedev-Workflow. Die neue IDE-Version bietet außerdem einige praktische Optimierungen im Editor, Fortschritte bei den Versionierungstools und der Arbeit mit Docker sowie eine Reihe von Verbesserungen in Bezug auf die neue Bedienoberfläche und die allgemeine Nutzungserfahrung.

Wichtige Updates

Unterstützung für DOTS von Unity Spieleentwicklung

Nachdem Unity die Umstellung von objektorientiertem zu datenorientiertem Design eingeleitet hat, bietet Rider 2023.1 nun Unterstützung für den Data Oriented Tech Stack (DOTS), einen neuartigen, CPU-freundlichen Ansatz für die Spielentwicklung.

Mehr erfahren

Anzahl von Suchvorgängen in Collections reduzieren

Anzahl von Suchvorgängen in Collections reduzieren C#-Unterstützung

Wir haben neue Inspektionen und dazugehörige Quick-Fixes eingeführt, um das Arbeiten mit Collections zu optimieren, indem die Anzahl der Lookup-Vorgänge reduziert wird. Zum Beispiel wird jetzt vorgeschlagen, redundante Contains- und ContainsKey-Prüfungen zu entfernen oder durch die Methoden TryAdd und TryGetValue zu ersetzen.

VCS-Widget für Perforce Versionsverwaltung

Die Integration zwischen Rider und Perforce hat mit der Aufnahme von Perforce in das VCS-Widget einen großen Schritt nach vorn gemacht. Das VCS-Widget für Perforce bietet einen einfachen Zugriff auf wichtige Aktionen wie Commit, Revert und Update Project. Es zeigt auch den aktuellen Workspace und den Status Ihrer Verbindung an.

Visualisierung von Zeichenfolgenvariablen Debugger

Beim Debugging können Sie jetzt Zeichenfolgenvariablen als HTML-, XML-, JSON-, JWT- oder URL-codierte Werte darstellen lassen. Klicken Sie dazu einfach auf dem Tab Threads & Variables des Debug-Toolfensters auf den Link View neben einer Zeichenfolge. Alternativ können Sie den Link View anklicken, der angezeigt wird, wenn Sie den Mauszeiger auf eine Variable im Editor bewegen.

C#-Unterstützung

Anzahl von Suchvorgängen in Collections reduzieren

Wir haben einige Inspektionen mit entsprechenden Quick-Fixes eingeführt, um Ihre Arbeit mit unterschiedlichen Arten von Collections zu optimieren und zu beschleunigen, indem die Anzahl der Suchvorgänge in Collections reduziert wird:

  • Entfernen einer Contains(item)-Prüfung vor dem Hinzufügen des Elements zu HashSet oder anderen Collections, die die Schnittstelle ISet implementieren.
  • Entfernen einer ContainsKey(key)-Prüfung vor dem Hinzufügen des Elements zu Dictionary oder anderen Collections, die die Schnittstelle IDictionary implementieren.
  • Verwendung von TryAdd(key, value) für Dictionary oder von Dictionary abgeleitete Collections, wenn möglich.
  • Verwenden von TryGetValue(key, out value) mit IDictionary-Collections, wenn möglich.

Syntaxstil für Nullprüfungs-Patterns

Mit der neuen Einstellung Syntax style können Sie bei not null-Prüfungen einen einheitlichen Stil innerhalb der Patterns durchsetzen. Dabei stehen zwei Optionen zur Verfügung: leere rekursive Pattern-Syntax { } und negiertes Pattern not null. Letzteres ist die Standardeinstellung. Sie können das Verhalten jederzeit auf dem Tab Settings/Preferences | Editor | Code Style | C# | Syntax Style anpassen.

Die Verwendung des Patterns „not null“ hat den Nachteil, dass keine Variablennamen für den geprüften Wert verwendet werden können, während dies bei einem rekursiven Pattern wie { LastName: { } lastName } möglich ist. Wir haben die Kontextaktion Add pattern variable für das Pattern not null eingeführt, um nach Ausdrücken zu suchen, die denselben Wert verwenden, und alle Verwendungen durch den neu eingeführten Variablennamen zu ersetzen und so alle Zugriffe auf denselben Wert zu konsolidieren.

ArgumentNullException.ThrowIfNull als Nullprüfungsstil

ArgumentNullException.ThrowIfNull als Nullprüfungsstil

In .NET 6.0 SDK wurde mit ArgumentNullException.ThrowIfNull eine neue API für null-Prüfungen eingeführt. Unsere Codeanalyse-Engine erkennt diesen Prüfansatz seit der Einführung, aber es gab bisher keine Möglichkeit, diese API als Standardstil für die von Rider erzeugten null-Prüfungen zu verwenden.

In Rider 2023.1 haben wir ein ArgumentNullException.ThrowIfNull-Pattern unter Settings/Preferences | Editor | Code Style | C# | Null checking hinzugefügt.

Gemeinsame Eigenschaftsmuster extrahieren

Gemeinsame Eigenschaftsmuster extrahieren

Wenn Sie das Pattern-Matching für Eigenschaften intensiv nutzen, sollten Sie unsere neue Inspektion samt dazugehörigem Quick-Fix ausprobieren, um gemeinsame Elemente aus mehreren Eigenschaftsmustern zu extrahieren. Der Quick-Fix Extract common property pattern reduziert Codewiederholungen, indem gemeinsame Eigenschaftsmuster in ein übergeordnetes Muster verschoben werden.

Entfernen leerer Regionen

Entfernen leerer Regionen

C#-Entwickler*innen verwenden oft die Direktive #region und die Codefaltung in der IDE, um ihren Code zu strukturieren. Beim Refaktorieren kann es vorkommen, dass einige #region-Abschnitte leer bleiben, was bei eingeklapptem Code irreführend aussehen kann. Mit dieser neuen Codeinspektion können Sie leere #region-Abschnitte in eingeklapptem Zustand finden und mit einem entsprechenden Quick-Fix bereinigen.

Ersetzen von span.SequenceEqual("str")

Ersetzen von span.SequenceEqual("str")

Die Codeanalyse umfasst jetzt eine Inspektion, die das Ersetzen von span.SequenceEqual("Text") durch span is "Text" empfiehlt – eine sauberere und unkompliziertere Lösung mittels C#-Syntax statt dem Aufruf einer Funktion.

Festlegen einer Rückgabetyp-Spezifikation für Lambdas

Festlegen einer Rückgabetyp-Spezifikation für Lambdas

In C# können Lambda-Ausdrücke implizit typisierte Parameter und abgeleitete Rückgabetypen haben. Es ist jedoch möglich, explizite Typen anzugeben, um bei komplexen Überladungsauflösungen für Klarheit zu sorgen. Ab C# 11 können auch Lambda-Ausdrücke mit einer Rückgabespezifikation versehen werden.

Rider 2023.1 unterstützt Sie dabei mit der neuen Kontextaktion Insert return type specification. Die Aktion kann auf alle Gültigkeitsbereiche angewendet werden – Methode, Klasse, Datei, Projekt oder die gesamte Projektmappe.

Inspektion Pattern is redundant

Inspektion Pattern is redundant

In C# sind or/and/not-Muster nützlich für kompakte Wertprüfungen, sie sind aber weniger leicht zu erkennen als herkömmliche Ausdrücke wie ||/&&/!. Sie können außerdem schwer zu lokalisierende Fehler verursachen, wenn Klammern vergessen werden. Um Sie dabei zu unterstützen, warnt Sie die Codeanalyse jetzt vor „toten“ Prüfungen innerhalb komplexer Muster.

Kontextaktion Convert to list pattern

Kontextaktion Convert to list pattern

Die Unterstützung für List-Patterns in C# 11 wird kontinuierlich verbessert. Mit der neuen Kontextaktion Convert to list pattern können Sie Collection-Längenprüfungen durch eine List-Pattern-Syntax ersetzen. Dies funktioniert in jedem Kontext, in dem eine Collection-Längenprüfung durchgeführt werden kann.

Game-Entwicklung

Unity

DOTS-Unterstützung

Mit dem Data-Oriented Tech Stack (DOTS) läutet Unity eine wichtige Architekturänderung ein. Dieser speichert Komponentendaten in zusammenhängenden Vektoren, die CPU-effizientere Zugriffe und Änderungen erlauben. Dies führt insbesondere bei größeren, ambitionierten Projekten zu einer höheren Performance.

Die Unterstützung von Unity DOTS ab diesem Release bestätigt den Ruf von Rider als innovativste IDE für die Game-Entwicklung.

Rider 2023.1 bietet Ihnen die folgenden neuen Funktionen:

  • Neue Dateivorlagen.
  • Code Vision für DOTS-Typen.
  • Automatische Generierung von Authoring-Komponenten für Bäckertransformationen.
  • Inspektionen und Quick-Fixes, die Ihnen beim Umstieg auf den neuen DOTS-Stil helfen, indem sie das Schreiben von neuem Code und die Anpassung von bestehendem Code vereinfachen.

In diesem Blogartikel mit Videovorführung erfahren Sie alles, was Sie über die Verwendung DOTS in Rider wissen müssen.

USB-Debugging auf Android-Geräten

Es ist zwar möglich, Android-Spiele über WiFi zu debuggen, aber manchmal ist es besser, einfach ein Kabel anzustöpseln. Rider 2023.1 unterstützt jetzt das Debugging von Android-Spielen über USB.

Verwenden Sie den Dialog Attach to Unity Process, um zu sehen, welche Projekte auf den verbundenen Geräten ausgeführt werden, und schon können Sie mit dem Debugging loslegen.

Temporäre Run-Konfigurationen für angehängte Player

Temporäre Run-Konfigurationen für angehängte Player

Rider 2023.1 erstellt automatisch eine temporäre Run-Konfiguration, wenn Sie einen Player über den Dialog Attach to Unity Process debuggen. Dies erleichtert den Start einer weiteren Debugging-Sitzung. Sie können die Run-Konfiguration auch dauerhaft speichern und mit Ihrem Team teilen. Dies funktioniert mit allen unterstützten Playern, einschließlich Desktop, Mobil, Konsole und USB (iOS oder Android).

Dokumentation

Dokumentation

Rider stellt schon länger eine Online-Dokumentation für die .NET-Basisklassen-Bibliotheken und die grundlegende Unity-API bereit. Dieses Release bietet darüber hinaus einen schnellen Zugriff auf die Online-Dokumentation der Unity-Registry-Pakete, einschließlich DOTS. Links zur Dokumentation werden angezeigt, wenn Sie F1 drücken oder das Schnelldokumentations-Popup aufrufen, indem Sie den Mauszeiger auf ein Symbol bewegen.

Wie der Rest des Produkts ist auch die Unity-Unterstützung in Rider vollständig in die Sprachen Chinesisch, Koreanisch und Japanisch lokalisiert. Dies gilt auch für die Dokumentation und die Online-Hilfe für die Unity-API, sofern eine übersetzte Dokumentation verfügbar ist.

UI-Toolkit-freundliche Dateivorlagen

Ab Unity 2022.2 ist das UI Toolkit der empfohlene Weg zum Schreiben von UI-Erweiterungen für den Unity-Editor. Um Ihnen den Einstieg zu erleichtern, haben wir drei anpassbare Dateivorlagen auf der Basis des UI Toolkit hinzugefügt: für Editorfenster, Property-Drawer und benutzerdefinierte Inspector-Editoren. Sie sind nur ab Unity 2022.2 verfügbar, und die IMGUI-Versionen sind weiterhin verfügbar.

Das ist noch nicht alles!

Wie immer gibt es viele weitere Änderungen und Updates, darunter eine zielgenauere Erkennung serialisierter Felder in Ihrem Code, einschließlich komplexer Szenarien mit abgeleiteten Typen und dem [SerializeReference]-Attribut. Die Suche nach Verwendungen von C#-Code in Unity-Animationen sowie die Hervorhebung von Ereignishandler-Methoden wurden ebenfalls verbessert. Ein häufig gefordertes Update für das Formatierungsmodul sorgt dafür, dass [Header]-Attribute in einer separaten Zeile platziert werden.

Unreal Engine

Unterstützung für Unreal Engine 5.2

Epic Games hat in Unreal Engine 5.1 und 5.2 das UnrealHeaderTool (UHT) mit dem UnrealBuildTool (UBT) zusammengeführt. Rider 2023.1 ist auf diese Änderungen vorbereitet, und die UHT-Integration von Rider funktioniert mit den neuen Unreal-Engine-Versionen. Rider unterstützt auch die jüngsten Updates im Blueprints-Dateiformat, die mit Unreal Engine 5.2 eingeführt werden.

Kontextaktion New UE class

Wir haben die Kontextaktion Unreal Class… überarbeitet. Sie bietet nun eine Auswahl aus unterschiedlichen Basisklassen, und Sie können angeben, ob die Klasse als public oder private definiert werden soll. Insgesamt ist der Dialog in Aussehen und Verhalten jetzt stärker an sein Gegenstück in der Unreal Engine angelehnt.

Parsen von Blueprint-Fehlern

Wenn Rider eine Blueprint-Datei nicht parsen kann, werden die Parsing-Fehler jetzt auf einem separaten Blueprints-Tab im Problems View-Fenster angezeigt. Dadurch können Sie die problematische Datei im nativen Dateisystem-Explorer lokalisieren. Jedes Problem enthält eine kurze Beschreibung des entdeckten Fehlers.

Parsen von Clang-Kompilierungsmeldungen

Parsen von Clang-Kompilierungsmeldungen

Rider 2023.1 kann jetzt beim Kompilieren von Unreal-Engine-Spielen unter macOS und Linux die vom Clang-Compiler generierten Meldungen parsen. Alle Warn- und Fehlermeldungen von Clang im Build Output-Toolfenster werden korrekt geparst, einschließlich Dateilinks. Ein Doppelklick auf den Link bringt Sie zu der genauen Codestelle, die den Fehler bzw. die Warnung ausgelöst hat.

Vorschau auf Makroersetzungen

Vorschau auf Makroersetzungen

Wenn Sie den Mauszeiger auf ein Makro bewegen, wird jetzt im Tooltip eine Vorschau auf die Makroerweiterung inkl. vollständiger Syntaxhervorhebung und korrekter Codeformatierung angezeigt. Die Kontextaktion Substitute macro call zum Erweitern direkt im Editor steht Ihnen weiterhin zur Verfügung, aber die Sofortvorschau bietet eine weitere Erleichterung bei der Arbeit mit Makros.

Live-Vorlage für UInterface

Live-Vorlage für UInterface

Rider bietet jetzt eine integrierte UInterface-Live-Vorlage für Unreal-Engine-Projektmappen. Ähnlich wie bei den bisherigen Live-Vorlagen für UCLASS, USTRUCT und UENUM können Sie mit der UInterface-Vorlage schnell eine neue Schnittstellenklasse anlegen, die den Unreal-Engine-Konventionen folgt und Ihnen die Zeit und Mühe der manuellen Erstellung erspart.

Shader-Mapping

Sie haben jetzt die Möglichkeit, Mappings für virtuelle und physische Shader-Verzeichnisse festzulegen. Wenn im Game- oder Engine-Projekt RiderLink installiert ist, können Sie außerdem Shader-Mappings direkt aus Unreal Engine laden.

Godot

Godot Plugin

Die neueste Version des Godot-Plugins für Rider enthält die folgenden Updates und Korrekturen:

  • Die res://-Completion wurde in Bezug auf Benutzerfreundlichkeit und Sichtbarkeit verbessert. Bei bestimmten bekannten API-Aufrufen, z. B. GD.LoadPackedScene, ist die Completion für Zeichenfolgenliterale sofort verfügbar, noch bevor das Präfix res:// eingegeben wird.
  • Godot 4 verwendet die .NET-6-Laufzeitumgebung anstelle von Mono, und für die Umstellung waren mehrere Anpassungen erforderlich. Wenn Sie beim Debuggen einer Godot-Anwendung auf einen Haltepunkt stoßen, wird automatisch eine Current Scene im Direktfenster erstellt. Darüber hinaus verfügt jetzt jeder Godot.Node im Direktfenster über eine zusätzliche Children-Gruppe, mit der Sie rekursiv auf untergeordnete Knoten zugreifen können.

Code-Editor

Anzeigen von Leerräumen nur im ausgewählten Code

Anzeigen von Leerräumen nur im ausgewählten Code

In Rider 2023.1 können Sie mit dem neuen Kontrollkästchen Selection unter Settings/Preferences | Editor | General | Appearance | Show Whitespaces festlegen, dass Rider Leerräume nur in der Textauswahl als kleine Punkte anzeigen soll.

Farb- und Pinsel-Vorschau

Farb- und Pinsel-Vorschau

Der Codeeditor von Rider zeigt jetzt in Avalonia-XAML-Dateien (.axaml) und C#-Dateien Farben- und Pinselvorschauen für Werte und Referenzen an – genau wie bisher schon bei WPF-Anwendungen.

Optionales Ausblenden von Typumwandlungs-Hinweisen

Optionales Ausblenden von Typumwandlungs-Hinweisen

Rider bietet jetzt eine Möglichkeit, Typumwandlungs-Hinweise für ausgewählte Operatoren zu unterdrücken. Um die Hinweise zu deaktivieren, setzen Sie die Einfügemarke neben einen Operator und öffnen Sie mit dem Tastenkürzel Alt+Enter das Kontextmenü. Rufen Sie dann unter Configure Inlay Hints | Type Conversion Hints die Aktion Hide for… auf.

Unter Settings/Preferences | Editor | Inlay Hints | C# | Type Conversion Hints können Sie ebenfalls die Liste der Operatoren konfigurieren, für die keine Typumwandlungs-Hinweise angezeigt werden sollen.

Keine Rechtschreibprüfung für Hashes und spezielle Werte

Keine Rechtschreibprüfung für Hashes und spezielle Werte

Wir haben die Typo-Inspektion überarbeitet, sodass sie Hashes und spezielle Werte nicht mehr prüft und als falsch geschrieben moniert. Diese Änderung gilt für die folgenden Werte:

  • Md5-, Sha1- und Sha256-Hexadezimalwerte.
  • Sha384- und Sha512-Integritätswerte mit Base64-Encoding und dem Präfix shaNNN-.
  • JWT-Token.
Parameternamen-Hinweise für xUnit-Attribute

Parameternamen-Hinweise für xUnit-Attribute

Wie schon bei NUnit kann Rider jetzt auch bei xUnit-Tests Parameternamen-Hinweise für die Attribute InlineData und InlineAutoData anzeigen.

Webentwicklung

Importieren bei Code-Completion in Angular

Wenn Sie in der Angular-Template globale und exportierte Symbole verwenden, fügt Rider jetzt bei der Code-Completion oder bei Verwendung eines Quick-Fix automatisch einen Import für diese Symbole in Ihrer Komponente ein.

TypeScript-Unterstützung in Vue-Templates

Rider 2023.1 unterstützt TypeScript in Vue-Template-Ausdrücken. Vue-Template-Ausdrücke werden jetzt mit lang="ts" im script-Tag synchronisiert. Dadurch kann Rider TypeScript besser auswerten und Präferenzen und relevante Refactorings entsprechend der Angabe im script-Tag bereitstellen. Sie haben vielleicht schon bemerkt, dass es Unterschiede zwischen .js- und .ts-Dateien in Bezug auf Einstellungen und Refactorings gibt. Gleiches gilt jetzt für die lang-Attribute.

Automatische Umwandlung von Zeichenfolgen in Template-Literale

Automatische Umwandlung von Zeichenfolgen in Template-Literale

Rider wandelt jetzt in einfache oder doppelte Anführungszeichen eingefasste Zeichenfolgen automatisch in Template-Literale um, wenn Sie ${ eingeben. Dies funktioniert sowohl für Raw-Zeichenfolgen als auch für JSX-Eigenschaften.

Weitere Informationen: Das ist neu in WebStorm 2023.1

UI/UX-Verbesserungen

Vollständiger IDE-Zoom

Vollständiger IDE-Zoom

Sie können jetzt in Rider hinein- und herauszoomen und dabei alle Elemente der Bedienoberfläche gleichzeitig verkleinern oder vergrößern. Wählen Sie dazu im Hauptmenü View | Appearance und passen Sie die IDE-Skalierung nach Wunsch an.

Neue Einstellung Remember size for each tool window

Neue Einstellung Remember size for each tool window

In Rider 2023.1 haben wir eine neue Layout-Option eingeführt, mit der Sie die Breite der seitlichen Toolfenster vereinheitlichen oder aber ihre Größe individuell anpassen können. Das neue Kontrollkästchen Remember size for each tool window finden Sie unter Settings/Preferences | Appearance & Behavior | Tool Windows.

ML-basierte Klassensuche in Search Everywhere standardmäßig aktiviert

ML-basierte Klassensuche in Search Everywhere standardmäßig aktiviert

Um Ihnen relevantere und zielgenauere Suchergebnisse zu bieten, arbeiten wir weiterhin daran, maschinelles Lernen in die Sortierung der Ergebnisse von Search Everywhere (2x Umschalt) zu integrieren. Auch der Sortieralgorithmus auf dem Classes-Tab wird jetzt standardmäßig durch maschinelles Lernen unterstützt, ebenso wie die Ergebnisse auf den Tabs Actions und Files.

Änderungen an der neuen UI Beta

Vertikale Teilung von Toolfenstern

Vertikale Teilung von Toolfenstern

In der neuen Bedienoberfläche kann der Toolfensterbereich jetzt geteilt werden, um die Fenster flexibler anordnen zu können.

Um ein Toolfenster im unteren Teil dieses Bereichs zu platzieren, ziehen Sie sein Symbol entlang der Seitenleiste und legen es unterhalb der Trennlinie ab. Alternativ können Sie mit einem Rechtsklick auf ein Symbol das Kontextmenü aufrufen und das Toolfenster mit der Aktion Move to an den gewünschten Ort verschieben.

Compact Mode

Compact Mode

Um die Nutzung der neuen Rider-UI auf kleineren Bildschirmen zu optimieren, haben wir den Kompaktmodus eingeführt, der durch schmalere Symbolleisten und Fensterkopfzeilen, verringerte Abstände und Freiräume sowie kleinere Symbole und Schaltflächen ein verdichtetes Design bietet.

Um zum Kompaktmodus zu wechseln, aktivieren Sie im Menü View die Option Appearance | Compact Mode.

Projekt-Tabs unter macOS

Projekt-Tabs unter macOS

Wir haben einen der populärsten Funktionswünsche für die neue Bedienoberfläche umgesetzt – Projekt-Tabs unter macOS. Wenn mehrere Projekte geöffnet sind, können Sie jetzt unkompliziert zwischen diesen wechseln, indem Sie die Projekt-Tabs unter der Symbolleiste anklicken.

Anzeige von ausgeblendeten Tabs

Anzeige von ausgeblendeten Tabs

Wir haben die Funktion Show Hidden Tabs in der neuen Bedienoberfläche implementiert. Neben der Tableiste wird nun ein Dropdown-Menü angezeigt, mit dem die komplette Liste der geöffneten Tabs eingeblendet werden kann, falls sie zuvor ausgeblendet wurden.

Überarbeitetes Run-Widget

Wir haben das Run-Widget in der Kopfleiste des Hauptfensters überarbeitet. Ruhigere Farben sorgen für eine dezentere und augenfreundlichere Wirkung.

Tools zur Versionsverwaltung

Verbesserter Code-Review-Workflow für GitHub

In Rider 2023.1 haben wir den Code-Review-Prozess innerhalb der IDE optimiert. Unsere Untersuchungen haben gezeigt, dass Benutzer*innen in der Regel zwischen GitHub und ihrer IDE hin und her wechseln, wenn sie im Code navigieren müssen. Durch eine Überarbeitung des Pull-Request-Toolfensters haben wir diesen Workflow verbessert.

Das Fenster verfügt jetzt über einen eigenen Tab für jeden Pull-Request, auf dem nur die wichtigsten Informationen angezeigt werden, damit Sie sich auf die jeweilige Aufgabe konzentrieren können. Eine neue Schaltfläche bietet außerdem einen einfachen Zugriff auf die wichtigste Aktion für den aktuellen Pull-Request-Status.

Auto-Completion im Popup Create New Branch

Auto-Completion im Popup Create New Branch

Rider 2023.1 bietet Completion-Vorschläge im Popup-Fenster Create New Branch. Sobald Sie mit der Eingabe eines Namens für Ihren neuen Branch beginnen, schlägt die IDE anhand der lokalen Branchnamen relevante Präfixe vor.

Verbessertes Branches-Popup

Verbessertes Branches-Popup

Wir haben die Bedienfreundlichkeit des Popup-Fensters Branches verbessert. So ist zum Beispiel die Navigation zwischen den Branches jetzt einfacher, da sie in erweiterbaren Listen gruppiert sind.

Datenbank-Tools

Datenbankschema-Vergleich

Schema Compare ist ein unverzichtbares Tool für die Entwicklung und Pflege von Datenbanken. Sie können damit blitzschnell zwei Datenbanken vergleichen, etwa um sicherzustellen, dass sie identisch sind, um Unterschiede festzustellen oder um die Daten auf dem neuesten Stand zu halten.

Rider 2023.1 führt Schema Compare für verbundene Datenbanken, SQL-Server-Datenbankprojekte und .dacpac-Dateien ein. Um den Vergleich zu starten, klicken Sie mit der rechten Maustaste auf die Datenbankprojektdatei im Solution Explorer und wählen Sie Schema Compare….

Sie können Schema Compare-Dateien (.scmp) in einem eigens konzipierten Editorfenster betrachten und bearbeiten. Außerdem zeigt das Fenster Problems View jetzt die Probleme an, die beim Datenbankvergleich oder bei der Validierung des Datenbankmodells festgestellt wurden.

Wichtig: Die Schema Compare-Implementierung von Rider basiert auf den SQL Server Data Tools und erfordert daher die Installation von Microsoft Visual Studio (Version 2017 oder höher).

Docker

Ausführen im Fast-Modus

Der Fast-Modus ist jetzt für die Ausführung von Docker-Projekten in Rider verfügbar. Bisher war die Verwendung nur für das Debugging möglich. Außerdem kann der Fast-Modus jetzt mit einer breiteren Palette von Dockerfile-Dateien verwendet werden. Und zu guter Letzt haben wir den Fast-Modus noch schneller gemacht, indem die Docker-Images bereits beim Öffnen der Projektmappe abgerufen und inspiziert werden.

Automatisch generierte Run-Konfigurationen

Rider 2023.1 kann jetzt beim Öffnen einer Projektmappe automatisch Run-Konfigurationen für Docker Compose aus .dcproj-Projektdateien erzeugen. Rider 2023.1 kann Dockerfile-Run-Konfigurationen erzeugen, wenn die Projekteigenschaft DockerfileFile festgelegt ist oder wenn in der Datei launchSettings.json ein Docker-Profil angegeben ist.

Für eine weitere Anpassung können Sie im Profil der Starteinstellungen die Eigenschaften httpPort, sslPort, publishAllPorts und useSSL festlegen.

Teilen von generierten SSL-Zertifikaten

Beim Docker-Deployment einer Anwendung im Fast-Modus müssen die generierten HTTPS-Entwicklungszertifikate stets zwischen Host und Container geteilt werden. Wir haben diesen Schritt automatisiert, indem wir in Docker-Run-Konfigurationen eine Option Share generated SSL certificate implementiert haben. Bitte beachten Sie, dass es nur unter Windows und macOS möglich ist, vertrauenswürdige Zertifikate zu teilen. Dies bedeutet, dass Sie das Zertifikat unter Linux manuell als vertrauenswürdig bestätigen müssen.

Docker Compose

Docker Compose

Sie können jetzt Docker Compose hinzufügen, damit Ihr Projekt problemlos mehrere Container gleichzeitig verwenden kann. Öffnen Sie dazu das Kontextmenü eines Projekts und wählen Sie Add | Docker Compose File, um folgende Elemente zu generieren:

  • Ein Dockerfile für das Projekt, falls noch nicht vorhanden.
  • Eine docker-compose.yml-Datei im Projektmappenordner Solution Items oberhalb der Projekte in der Baumstruktur.
  • Zwei Run-Konfigurationen zum Ausführen von Dockerfile oder docker-compose.yml.

Zentrale Protokollierung aller Docker-Compose-Container

Der Dashboard-Tab des Docker-Compose-Knotens führt jetzt die Protokolle aller Docker-Compose-Container zusammen, um diese Daten übersichtlich an einem Ort zu präsentieren.

Unterstützung für Azure Container Registry

Sie können jetzt unkompliziert eine Verbindung zur Azure Container Registry herstellen. Gehen Sie zu Settings/Preferences | Build, Execution, Deployment | Docker | Docker Registry und führen Sie die Einrichtung aus, indem Sie die Option Docker V2 im Eingabefeld Registry auswählen.

Ausführung/Debugging

Run-Konfiguration

Manchmal möchte man eine Anwendung in einer Laufzeitumgebung ausführen, die in einem speziellen Ordner installiert ist. Für diesen Fall haben wir auf der Seite Run/Debug Configurations die Einstellung Runtime um die Option Add Custom Runtime erweitert.

Wir haben außerdem Pfade zu den Standard-Runtime-Versionen in der Runtime-Dropdown-Liste hinzugefügt.

Neu ist auch die Unterstützung des Befehls DebugRoslynComponent in der Datei launchSettings.json. Damit erleichtern wir Ihnen das Debuggen von Roslyn-Komponenten.

Erneut an Prozess anhängen

Aktion Reattach to Process

Sie können jetzt den Debugger von Rider sehr einfach wieder an den letzten Prozess anhängen, indem Sie im Hauptmenü auf Run | Reattach to Process... klicken oder die Tastenkombination Strg+Alt+Umschalt+F5 verwenden. Die neue Aktion kann nach der ersten Debugging-Sitzung angeklickt werden.

Debuggen von WASM-Startcode

Rider kann jetzt den Startcode von WebAssembly-.NET-Anwendungen debuggen. Bisher konnte der WASM-Debugger bei den meisten Projekten erst nach der Initialisierung der Anwendung angehängt werden, da für Portberechnung, Verbindungsinitialisierung usw. einiges an Zeit benötigt wurde. Durch diese Verzögerung war es unmöglich, den beim Start ausgeführten Code zu debuggen.

Jetzt wartet Rider auf die Initialisierung des Seitenziels, stellt die Verbindung zum Debugger her und beginnt erst dann mit dem Laden der eigentlichen App. So kann die Ausführung an Haltepunkten angehalten werden, die in der Frühphase der Anwendungsinitialisierung erreicht werden.

Schließen von Browser-Tabs nach dem Debuggen

Wenn Sie eine Debugging-Sitzung für eine ASP.NET-Core-Anwendung starten, öffnet Rider ein neues Browserfenster oder einen neuen Tab dafür. Bei mehreren Debugging-Sitzungen blieben bisher immer mehrere Tabs geöffnet, die manuell geschlossen werden mussten.

Ab dieser Version wird beim Debugging einer ASP.NET-Core-Anwendung mit aktiviertem JavaScript-Debugger der dazugehörige Browsertab geschlossen, sobald Sie den Prozess beenden.

F#-Unterstützung

Codevervollständigung

Auto-Completion im Popup Create New Branch

Die neuen Postfix-Vorlagen match, for und with unterstützen Sie beim Schreiben von Standard-Codebausteinen.

Auto-Completion im Popup Create New Branch

Wenn Sie mit der Eingabe eines neuen match-Ausdrucks beginnen, schlägt die IDE vor, alle Fälle für union-, enum-, bool- und Tupel-Werte zu generieren.

Sprachinjektionen für reguläre Ausdrücke

Sprachinjektionen für reguläre Ausdrücke

Die IDE kann jetzt mit regulären Ausdrücken in F#-Zeichenfolgenliteralen umgehen (dank maßgeblicher Unterstützung durch Saul Rennison). Bei der Übergabe von Zeichenfolgenparametern, die mit [RegexPatternAttribute], [StringSyntax(StringSyntaxAttribute.Regex)] oder dem Kommentar //language=regex annotiert sind, interpretiert Rider die Zeichenfolge als einen regulären Ausdruck und bietet Syntax- und Fehlerhervorhebung sowie Auto-Completion an.

Quick-Fixes

Quick-Fixes

  • Ein neuer Quick-Fix generiert fehlende Pattern-Zweige in einem match-Ausdruck.

Die vollständige Liste der F#-bezogenen Updates und Korrekturen finden Sie hier.

Plugins

Lokalisierung Beta

Rider 2023.1 führt die erste Lokalisierungsstufe für die Sprachen Chinesisch (vereinfacht), Koreanisch und Japanisch ein! Diese umfasst eine teilweise lokalisierte Bedienoberfläche, Codeinspektionen, das Alt+Enter-Menü, Toolfenster und Benachrichtigungen – auch für die Unity- und Unreal-Engine-Unterstützung.

Um die IDE auf Ihre bevorzugte Sprache umzustellen, gehen Sie zu Settings/Preferences | Plugins und suchen Sie im Marketplace nach einem Sprach-Plugin für die gewünschte Sprache. Installieren Sie das Plugin und starten Sie die IDE neu, um die Änderungen zu übernehmen. Alternativ können Sie von der JetBrains-Marketplace-Website ein Sprachpaket-Plugin für Chinesisch, Koreanisch oder Japanisch herunterladen und das Plugin unter Settings/Preferences | Plugins | ⚙️ | Install Plugin from Disk installieren.

Aktion Trigger Continuous Testing

Aktion Trigger Continuous Testing dotUltimate

Wir haben eine neue Aktion Trigger Continuous Testing eingeführt, inklusive der Möglichkeit, ein Tastenkürzel zu vergeben. Mit dieser Aktion können Sie kontinuierliches Testen direkt auslösen. Bisher war dies nur indirekt durch Speichern des Projekts oder Starten eines Buildvorgangs möglich.

Um dieser Aktion ein Tastenkürzel zuzuweisen, gehen Sie zu Preferences/Settings | Build, Execution, Deployment | Unit Testing | Continuous Testing, wählen Sie Trigger Continuous Testing on… und richten Sie ein Tastenkürzel Ihrer Wahl ein.

Astro-Unterstützung

Die Erstunterstützung für Astro ist da, in Gestalt eines neuen Plugins, das in Rider verwendet werden kann. Sie können das Astro-Plugin vom JetBrains Marketplace herunterladen oder direkt in der IDE installieren, indem Sie Preferences/Settings | Plugins öffnen und nach „Astro“ suchen.

Das Plugin stellt grundlegende Funktionen wie Syntaxhervorhebung, Code-Completion mit Autoimport, Refactorings, Navigation, Kontextaktionen, Codefaltung, Emmet-Unterstützung und korrekte Formatierung bereit.

Weitere Features

Structure-Ansicht

Rider 2023.1 bringt zahlreiche Verbesserungen und Korrekturen für die Codenavigation mit. Das Structure-Toolfenster zeigt jetzt vererbte Member an, und Rider kann wieder Klassenmember in dekompiliertem Code in der Structure-Ansicht anzeigen.

Rider verwendet jetzt das Strukturansicht-Popup von IntelliJ IDEA, wenn der Befehl Go to File Member aufgerufen wird. Dadurch kann die IDE die Struktur einer Datei sowie Symbole aus kompilierten Basistypen anzeigen. Außerdem werden die Informationen im Popup jetzt gruppiert, sodass Sie auf einen Blick erkennen können, wo sich die einzelnen Elemente befinden.

Codebereinigung

Codebereinigung

Rider 2023.1 führt den neuen Aufgabentyp Reformat inactive preprocessor branches in file für die Codebereinigung ein. Mit dieser Aufgabe können Sie inaktive Präprozessor-Zweige neu formatieren. Die Aufgabe funktioniert nur bei C#-Quellcode und kann nur auf die gesamte Datei angewendet werden.

Diese Aufgabe kann keine Codeabschnitte neu formatieren, die hinter einer #if-Präprozessordirektive versteckt sind, die immer falsch ist. Vereinfachte Beispiele für diese Einschränkung sind die Konstrukte #if false ... #endif und #define A #if !A ... #endif.

Textfilter für Unit-Test-Baumstrukturen

Textfilter für Unit-Test-Baumstrukturen

Textsuchfilter, die auf Unit-Test-Baumstrukturen in den Toolfenstern Unit Tests und Unit Test Coverage angewendet wurden, werden jetzt beim Ausführen von Tests über die Run-Schaltflächen in der Werkzeugleiste berücksichtigt. Es werden nur die Tests aufgelistet und ausgeführt, die den Suchkriterien entsprechen.

Refaktorierung "Umbenennen"

Rename-Refactoring

Wir haben die Art und Weise verbessert, wie Rider bei der Umbenennung von Dateien in einem Projekt vorgeht. Ab dieser Rider-Version wird beim Umbenennen einer Datei in Ihrer Projektmappe ein Dialog mit der Option angezeigt, alle relevanten Symbole (Klassen, Schnittstellen usw.) passend zur Änderung ebenfalls umzubenennen.