Das ist neu in Rider 2024.3

Rider 2024.3 bietet Unterstützung für .NET 9, darunter C#-13-Sprachmerkmale wie params-Collections, partielle Eigenschaften und das Schlüsselwort field als Vorschau-Feature. Der Windows Forms-Designer ist jetzt für Projekte verfügbar, die .NET 6+ verwenden, zusammen mit einer erweiterten Debugging-Funktion zum Einfrieren und Auftauen einzelner Threads. Spielentwickler*innen können sich auf Konsolen-Debugging für die Unreal Engine, IL2CPP-Debugging für Unity und eine verbesserte Godot-Unterstützung freuen. Außerdem erweitert diese Version die AI-Assistant-Funktionalität um KI-Prompts im Editor und individualisierbare Chatmodelle. Verbesserungen in den Bereichen Codebereinigung, Namenskonventionen und Remote-Entwicklung runden das Release ab.

Wichtige Updates

Monitoring-Toolfenster

Unterstützung für .NET 9

Die neueste Version von Rider enthält unter anderem folgende Neuerungen:

  • Unterstützung für Projektvorlagen aus dem neuen SDK.
  • Erstellen, Ausführen und Debuggen von Projekten, die das neue SDK verwenden.
  • Unterstützung für die neuesten Sprachmerkmale von C# 13, darunter params-Collections, partielle Eigenschaften, Preview des Schlüsselworts <0>field und einiges mehr.

In unserem Blog können Sie mehr über die erweiterte C#-13-Unterstützung in Rider 2024.3 erfahren.

Windows Forms Designer for .NET projects .NET 6.0+

Der Windows Forms Designer unterstützt jetzt Projekte, die .NET 6.0 und höher voraussetzen, sodass Sie Bedienoberflächen für Ihre Windows-Forms-Anwendungen erstellen, anzeigen und bearbeiten können. Die Funktionalität ist dem klassischen Windows Forms Designer für das .NET-Framework fast ebenbürtig.

Zu beachten ist, dass die meisten DevExpress-Steuerelemente kompatibel sind, während die Telerik- und Infragistics-Steuerelemente begrenzt unterstützt und VB.NET-Windows-Forms-Anwendungen nicht unterstützt werden.

Einfrieren und Auftauen einzelner Threads beim Debuggen

Rider 2024.3 kann beim Debuggen einzelne Threads einfrieren und auftauen und bietet dadurch eine präzisere Kontrolle über Multithreading-Anwendungen. Sie können mit der rechten Maustaste auf einen beliebigen Thread klicken und mit Freeze dessen Ausführung anhalten, ohne den Rest der Anwendung zu beeinträchtigen. Wenn Sie soweit sind, können Sie nach einem erneuten Rechtsklick mit Unfreeze die Ausführung des Threads fortsetzen. Die Funktion ist nur für .NET- und .NET-Framework-Projekte verfügbar.

Ausführen und Debuggen von nativem Code auf Konsolen Spielentwicklung Unreal Engine

Rider 2024.3 hat mit dem Ausführen und Debuggen von C++-Code auf allen verbreiteten Konsolen einen enormen Meilenstein erreicht! Dies umfasst auch Spiele, die mit speziellen Engines oder der Unreal Engine geschrieben wurden. Die Freischaltung erfolgt ausschließlich auf Anfrage, und Sie müssen für das offizielle Entwicklungsprogramm der jeweiligen Konsole angemeldet sein. Weitere Informationen finden Sie hier.

Weitere Updates für die Spielentwicklung

Benutzererfahrung

Farbige Tooltips

Für dieses Release haben wir fast alle Fehler-, Warn- und Informationsmeldungen für C# überarbeitet und farbig formatierte Texte eingeführt, wo immer dies möglich war.

Für eine bessere Lesbarkeit wurden etwa 600 Meldungen mit formatierten Tooltips versehen, in denen Codeelemente gemäß dem vertrauten Editor-Farbschema eingefärbt werden.

Run-Widget: Mehrere Konfigurationen gleichzeitig starten

Mit dem aktualisierten Run-Widget können jetzt mehrere Konfigurationen gleichzeitig gestartet werden, indem Sie Strg gedrückt halten, während Sie auf das Debug-Symbol klicken. Außerdem werden Steuerelemente für alle ausgeführten Konfigurationen angezeigt, um die Verwaltung zu vereinfachen.

Erhöhtes Standardlimit für Tabs

Das Standardlimit für Editor-Tabs wurde auf 30 erhöht, sodass mehr Tabs geöffnet bleiben können, bevor die IDE die am wenigsten genutzten schließt. Sie können dieses Verhalten unter Settings | Editor | General | Editor Tabs anpassen.

Aktualisierte Bedienoberfläche für das neue Terminal

Wir haben die Oberfläche des neuen Terminals mit einem kompakteren Design aktualisiert. Die verringerten Leerräume sorgen für eine bessere Ausnutzung der Bildschirmfläche. Die Verringerung der Leerräume spart Platz und ermöglicht einen besseren Überblick bei der Arbeit mit Befehlen, ohne die Lesbarkeit zu beeinträchtigen.

C#-Unterstützung

С#13-Updates

Die neueste Version von Rider unterstützt die in C# 13 eingeführten Sprachmerkmale. Im Einzelnen:

  • Neue params-Collections: Das Schlüsselwort params wurde um die Handhabung verschiedener Collection-Typen erweitert. Dies ermöglicht effizientere Methodensignaturen ohne zusätzliche Zuweisungen.
  • partial-Eigenschaften: Die neu eingeführte Unterstützung für partial-Eigenschaften bietet mehr Flexibilität zur Strukturierung Ihres Codebestands, da Sie die Implementierungen von Eigenschafts-Zugriffsmethoden auf mehrere Dateien verteilen können.
  • Neuer Lock-Typ: Für eine effizientere Threadsynchronisierung wurde der neue Typ System.Threading.Lock eingeführt, der im Vergleich zur traditionellen lock-Anweisung eine bessere Performance bietet.
  • Auflösungspriorität von Überladungen: Ein neues Attribut ermöglicht eine bessere Kontrolle über die Auflösung von Methodenüberladungen, sodass Entwickler*innen in komplexen Szenarien die gewünschte Überladung priorisieren können.
  • field-Schlüsselwort: Für das Schlüsselwort field steht eine Vorschaufunktion zur Verfügung. Dies ermöglicht einen direkten Zugriff auf das zugrunde liegende Feld von Auto-Eigenschaften und vereinfacht die Eigenschaftslogik.

Learn all about the support of C#13 features in Rider and ReSharper on our blog.

Codestile und -bereinigung

Codebereinigung

In Rider 2024.3 wurde die Codebereinigung für eine robustere Leistung überarbeitet. Sie nutzt jetzt dieselbe Engine wie Quick-Fixes mit begrenztem Gültigkeitsbereich und ermöglicht so gründliche Problembehebungen und präzisere Analysen. Durch eine parallele Vorverarbeitung wurde außerdem die Verarbeitung von Dateien optimiert.

Außerdem können Sie jetzt das Code Cleanup-Profil pro Datei auswählen oder bestimmte Dateien von der Bereinigung ausnehmen.

Codeformatierung

Neue Formatierungsoptionen bieten jetzt noch mehr Flexibilität:

  • Neue Option zur Steuerung von Zeilenumbrüchen an einem =-Operator.
  • Neue Option Indent ‘break’ from ‘case’.
  • Neue Option Treat ‘case’ statements with ‘break’ as simple.

Namensstile

Wir haben einige neue Optionen eingeführt, mit denen Sie die Namensregeln genauer anpassen können.

  • Für lokale Funktionen gibt es nun zwei Optionen: Local functions with ‘async’ und Task-returning local functions (not ‘async’).
  • Für Methoden wurde eine neue Option Task-returning method (not ‘async’) eingeführt, um Methoden zu unterstützen, die das Suffix async im Namen tragen und einen Task-ähnlichen Typ zurückgeben, obwohl sie nicht mit einem async-Modifikator markiert sind. Dies ist hilfreich, wenn Sie eine Methode in einer Schnittstelle deklarieren, in der Sie den Modifikator async nicht verwenden dürfen, deren Implementierung jedoch einen Task-Typ zurückgeben wird.

Codekommentare

Unterstützung mehrzeiliger TODO-Kommentare

Rider 2024.3 unterstützt mehrzeilige TODO-Kommentare, sodass eingerückter Text in nachfolgenden Zeilen als Teil desselben TODO-Eintrags behandelt werden kann. Durch diese Verbesserung können Sie zusammengehörige Anmerkungen und Aufgaben in Ihrem Code gruppieren. Sie können Ihre TODO-Einträge jetzt mit mehreren Zeilen Kontext versehen und so die Verständlichkeit und Strukturierung verbessern.

F#-Unterstützung

Wir haben den F#-Compilerdienst aktualisiert, um alle neuen Sprachmerkmale und die verbesserten Editor-Tools nutzen zu können.

Type Hints

Die F#-Unterstützung umfasst jetzt abgeleitete Typhinweise für Patterns und Member. Mit der neuen Push-to-Hint-Implementierung können Sie lokale Werttypen unkompliziert einsehen.

Codebearbeitung

Die Code-Completion kann jetzt Funktionen, Werte, Union-Cases und aktive Patterns importieren. Es gibt auch einen neuen Quick-Fix zum Aktualisieren von eingefügtem Code.

Mit einer neuen Kontextaktion können Sie einen Funktionsausdruck in einen Parameter umwandeln.

C#-Interoperabilität

Wir haben die Performance bei der Analyse von referenzierten C#-Projekten erheblich verbessert und verschiedene falsch positive Fälle behoben.

Weitere Änderungen, Korrekturen und Neuerungen finden Sie auf der GitHub-Seite.

Versionsverwaltung

Branchname auf Begrüßungsbildschirm

Der Begrüßungsbildschirm zeigt jetzt den Branchnamen an, damit Sie beim Umgang mit mehreren Projektversionen den Überblick behalten und unkompliziert zwischen Arbeitsverzeichnissen wechseln können.

Option zur Deaktivierung von Pre-Commit-Hintergrundprüfungen

Sie können jetzt Hintergrundprüfungen während des Commit-Prozesses mit einer neuen Option Run advanced checks after a commit is done unter Settings | Version Control | Commit verwalten. Mit dieser Einstellung können Sie festlegen, ob Tests und Inspektionen nach einem Commit ausgeführt werden sollen. Wenn Sie möchten, dass diese Prüfungen vor dem Commit abgeschlossen werden, deaktivieren Sie die Option einfach.

Updates für Find in Files

Die Funktion Find in Files wurde um einen neuen Suchbereich erweitert: Project Files Excluding Git-Ignored. Mit dieser Option werden alle per .gitignore ignorierten Dateien von den Suchergebnissen ausgeschlossen. So können Sie sich beim Durchsuchen Ihres Projekts auf den relevanten Code konzentrieren.

Entwicklung per Fernzugriff

Die Remote-Entwicklung in Rider hat offiziell die Betaphase verlassen!

Nach einer letzten Optimierungsrunde in der Betaphase – mit besonderem Augenmerk auf eine stabile Texteingabe – ist die Remote-Entwicklungsfunktionalität in Rider jetzt uneingeschränkt für alle wichtigen Entwicklungsworkflows geeignet.

Von der Codebearbeitung über das Debugging bis hin zur Versionsverwaltung funktioniert jetzt alles fast genauso mühelos wie auf einer lokalen Instanz, sodass Sie sich auch bei der Verwendung von Remote-Umgebungen auf eine reibungslose und leistungsstarke Programmiererfahrung verlassen können.

Weitere Informationen zu den unterstützten Workflows finden Sie im Blog.

Game-Entwicklung

Unreal Engine

Dieses Release ermöglicht das automatische Debugging von Kindprozessen unter Windows. Alle Prozesse, die während einer Debugsitzung erstellt werden, werden der Sitzung angefügt, und alle Haltepunkte im Kindprozess werden respektiert.

Sie können auch über Regeln konfigurieren, welche Kindprozesse zu debuggen sind und welche übersprungen werden sollen.

In addition to the exciting news about Rider’s support for debugging on consoles, this release also introduces support for the Verse programming language, new code insight features, and integration with Live++ for the hot-reload of C++ applications.

Mehr über die neuen Code-Insight-Funktionen erfahren Sie unter Das ist neu in ReSharper C++.

Unity

Rider 2024.3 verbessert Ihre Debugging-Erfahrung mit IL2CPP-Builds: Sie können jetzt den gleichen Funktionsumfang nutzen wie bei Mono. Dies bedeutet, dass im Debugger die Knoten Active Scene und this.gameObject sowie für GameObject-Instanzen die Knoten Children und Components angezeigt werden. Darüber hinaus wurden Probleme bei Verwendung des Immediate-Fensters und der Collection-Ansicht mit IL2CPP-Builds behoben.

Quellcode-Dateien werden jetzt in Rider geöffnet, wenn Sie in einer Unity-Profiler-Aufrufliste auf einen Eintrag doppelklicken, und Rider filtert bei der Suche nach Dateien in Ihrem Projekt unnötige Inhalte besser heraus.

Godot

Dieses Release behebt einen wesentlichen Fehler im Zusammenhang mit der Unterstützung von C# Hot Reload und Godot. Rider wendet nun alle Änderungen, die Sie in Ihrem C#-Code vornehmen, noch während der Ausführung des Spiels auf Ihre Anwendung an.

Rider ist auch für die Updates beim GDScript-Debugging in Godot 4.4 vorbereitet, die viel umfassendere Einblicke in Objekteigenschaften bereitstellen, als derzeit in früheren Godot-Versionen möglich ist.

Webentwicklung

Übersichtlichere Suchergebnisse für Verzeichnisse

Rider schließt jetzt standardmäßig node_modules-Ergebnisse aus, wenn Sie Find in Files in Projektverzeichnissen verwenden, sodass die Menge an irrelevanten Dateien reduziert wird. Sie können das bisherige Verhalten wiederherstellen, indem Sie die Option Search in library files when “Directory” is selected in Find in Files unter Settings | Advanced Settings aktivieren.

Bessere Navigations- und Umbenennungsfunktionen für Framework-Komponenten

Wir haben die im Editor angezeigten Hinweise für Vue-, Svelte- und Astro-Komponenten verbessert. Die Aktion Show component usages findet jetzt Verwendungen sowohl in Importen als auch in Markup-Templates. Wir haben auch einen Filter Show Component Usages hinzugefügt, um Komponentenverwendungen bei der Suche nach regulären Dateireferenzen auszuschließen. Das Rename-Refactoring bietet wiederum eine neue Option zum Einbeziehen von Verwendungen beim Umbenennen einer Komponentendatei.

Farbvorschau für Tailwind-CSS-Klassen

Die Farbvorschau für Tailwind-CSS-Klassen wird jetzt inline im Editor angezeigt, sodass Sie Farben leichter unterscheiden können. Wir unterstützen jetzt die Methode textDocument/documentColor aus dem Language Server Protocol (LSP), sodass alle LSP-basierten Plugins standardmäßig über diese Funktionalität verfügen.

Weitere Informationen finden Sie auf der Seite Das ist neu in WebStorm.

Arbeiten mit Datenbanken

Text zu SQL: Diff für KI-generierte Ergebnisse im Editor

Wir haben die AI-Assistant-Erfahrung im Editor verbessert. Wenn Sie AI Assistant bitten, einen Codeabschnitt zu bearbeiten, wird im Editorbereich ein Vergleich zwischen dem ursprünglichen und dem generierten Code angezeigt. Die Vorschläge von AI Assistant werden farblich hervorgehoben und mit einem Revert-Symbol in der Randleiste markiert. Sie können die resultierende Abfrage in demselben Bereich auch eigenhändig bearbeiten. Ihre Änderungen werden auf die gleiche Weise hervorgehoben. Zum Beispiel können Sie AI Assistant bitten, mit einer Abfrage mehr Daten abzurufen und anschließend manuell eine ORDER BY-Klausel zum generierten Ergebnis hinzufügen.

SQL-Fehlerbehandlung mit AI Assistant

Im Fehlermeldungsbereich stehen Ihnen jetzt bei der Ausführung von SQL-Abfragen einige nützliche Aktionen zur Fehlerbehandlung mit AI Assistant zur Verfügung. Explain with AI öffnet den KI-Chat und fordert mit einem automatisch versendeten Prompt eine Fehlererklärung von AI Assistant an. Fix with AI korrigiert den Abfragefehler direkt im Editor.

Detailliertere Informationen finden Sie auf der Seite Das ist neu in DataGrip.

AI Assistant

Verbessertes Kontextmanagement

Mit diesem Update haben wir die Verwaltung des Kontexts, den AI Assistant bei seinen Vorschlägen berücksichtigt, transparenter und intuitiver gestaltet. Eine überarbeitete Oberfläche, in der Sie jedes Kontextelement einsehen und verwalten können, bietet volle Transparenz und Kontrolle. Die geöffnete Datei und der darin enthaltene ausgewählte Code werden nun automatisch zum Kontext hinzugefügt. Sie können unkompliziert Dateien hinzufügen oder entfernen, um den Kontext an Ihren Workflow anzupassen. Darüber hinaus können Sie für das gesamte Projekt gültige Anweisungen beifügen, um die Antworten von AI Assistant an Ihren Codebestand anzupassen.

Auswahl des Chatmodell-Anbieters

Sie können jetzt Ihr bevorzugtes KI-Chatmodell auswählen. Sie haben die Wahl zwischen Google Gemini, OpenAI und den auf Ihrem System installierten lokalen Modellen. Durch diese erweiterte Auswahl können Sie die Antworten im KI-Chat an Ihren konkreten Workflow anpassen, um eine individuellere und persönlichere Erfahrung zu erhalten.

Dekompilierer

IL-Code für Assembly-Manifest

Das Toolfenster IL Viewer zeigt jetzt den IL-Code von Assembly-Manifesten inklusive folgender Informationen an:

  • Assembly- und Moduldaten wie Name, benutzerdefinierte Attribute usw.
  • Referenzierte Assemblies und Module.
  • Weitergeleitete Typen.
  • Datei- und Ressourcenliste.

Dieser IL-Code wird angezeigt, wenn sich die Einfügemarke im Texteditor auf einem Assembly- oder Modul-Attribut oder innerhalb der <AssemblyName>.cs-Datei einer externen Assembly befindet.

Unterstützung für Primärkonstruktoren

Bei der Arbeit mit Klassen, die einen Primärkonstruktor deklarieren, zeigt der Decompiler den Konstruktor und dessen Parameter jetzt korrekt an, sodass Sie direkt aus dem dekompilierten Code einen kompletten Überblick über die Instanziierung von Objekten erhalten.