Das ist neu in Rider

Rider 2023.2 bietet eine verbesserte C#-Unterstützung – unter anderem durch neue Inspektionen für die Arbeit mit lokalen Funktionen und Raw-Zeichenfolgen sowie für die Behebung häufig vorkommender Probleme mit dem Entity-Framework. Darüber hinaus haben wir eine Vielzahl von Verbesserungen an der neuen Bedienoberfläche vorgenommen und dem schlanken, modernen und weitgehend anpassbaren neuen Look der IDE den letzten Schliff gegeben. Die Möglichkeiten für die Game-Entwicklung in Rider wurden weiter ausgebaut. Neben einem Update der DOTS-Funktionalität für Unity und einer optimierten Blueprint-Indizierung für die Unreal Engine haben wir zahlreiche weitere Verbesserungen vorgenommen. Rider 2023.2 ist außerdem die erste Version der IDE, die KI-Funktionen über das Plugin JetBrains AI Assistant bereitstellt.

Wichtige Updates

Anpassbare Projektkopfleisten

Anpassbare Projektkopfleisten Neue UI

Rider 2023.2 unterstützt Sie durch Farben bei der Navigation zwischen Ihren geöffneten Projekten. Die Kopfleisten sind jetzt farbig; die voreingestellten Farben können Sie gerne an Ihre Präferenzen anpassen. Um eine neue Farbe für Ihr Projekt festzulegen, klicken Sie mit der rechten Maustaste auf eine Kopfleiste, um das Kontextmenü zu öffnen. Klicken Sie auf Change Toolbar Color und wählen Sie die gewünschte Farbe aus. Wenn Sie diese Funktion deaktivieren möchten, können Sie einfach die Option Use Project Colors in Toolbar im Kontextmenü deaktivieren.

AI Assistant

AI Assistant Beschränkter Zugang

Mit diesem Release führen wir eine wichtige Neuerung in Rider ein: AI Assistant. Die erste Serie der KI-Funktionen umfasst einen KI-Chat und integriert sich auf natürliche Weise in einige zentrale IDE-Workflows. AI Assistant kann ausgewählten Code analysieren, einen Commit erklären und Unity-Dateien nach Ihren Vorgaben erzeugen.

Weitere Informationen

Überarbeitetes Build-Toolfenster

In Rider 2023.2 haben wir das Build-Toolfenster überarbeitet und sowohl die Leistung als auch die Nutzungserfahrung verbessert. Die zum Buildvorgang ausgegebenen Informationen werden jetzt als Baumstruktur auf der linken Seite und als Protokoll auf der rechten Seite dargestellt. Die Informationen werden nur nach Bedarf geladen, wenn Sie die Build-Details in der Baumstruktur auswählen. Dies erleichtert die Navigation und ist wesentlich CPU-freundlicher.

GitLab-Integration

Rider 2023.2 führt eine erste Integration mit GitLab ein, die es Ihnen ermöglicht, die Merge Requests-Funktionalität direkt in der IDE zu nutzen und Ihren Entwicklungsablauf dadurch zu vereinfachen.

Codeanalyse

C#-Unterstützung

Verbesserte Unterstützung für Raw-Zeichenfolgen

Wir haben neue C#-Inspektionen und Kontextaktionen für die Arbeit mit Raw-Zeichenfolgen sowie verbesserte Eingabehilfen und neue Formatierungsoptionen eingeführt:

  • Die Inspektion Use raw string wandelt mehrzeilige Verbatim-Zeichenfolgen in Raw-Zeichenfolgen um.
  • Die Inspektion Simplify raw string entfernt überflüssige Anführungszeichen und Dollarzeichen.
  • Verschiedene Kontextaktionen helfen Ihnen, Anführungszeichen, geschweifte Klammern und Dollarzeichen hinzuzufügen oder zu entfernen und zwischen ein- und mehrzeiliger Darstellung zu wechseln.
  • Neue Codeformatierungsoptionen erlauben das Ausrichten bzw. Einrücken des Inhalts von Raw-Zeichenfolgen.
  • Die Eingabeunterstützung beim Drücken von Enter, Entf und Rücktaste wurde verbessert.

Lesen Sie den entsprechenden Blogartikel, um mehr über die verbesserte Unterstützung von Raw-Zeichenfolgen zu erfahren.

Inspektionen für häufig vorkommende Entity-Framework-Probleme

Inspektionen für häufig vorkommende Entity-Framework-Probleme

Wir haben mehrere neue Inspektionen, Quick-Fixes und kontextbasierte Navigationsoptionen für häufige Probleme hinzugefügt, die bei der Arbeit mit Datenbanken auftreten können, wenn ein Framework für objektrelationales Mapping (ORM) wie z. B. das Entity Framework verwendet wird.

  • Gegen das „N+1“-Problem helfen die Inspektionen Possible multiple queries to the database for related entities (N+1 problem) und Possible multiple queries to the database (N+1 problem), ein entsprechender Quick-Fix sowie eine kontextbasierte bidirektionale Navigation, um die Stellen in Ihrem Code zu untersuchen, die vom N+1-Problem betroffen sein könnten.
  • Neben der Erkennung von N+1-Problemen haben wir eine weitere Inspektion eingeführt, die bei der Arbeit mit dem Entity-Framework nützlich sein kann: Query can return incomplete data for related entities. Außerdem stehen Ihnen ab sofort ein Quick-Fix und eine kontextbasierte bidirektionale Navigation zur Untersuchung dieses Problems zur Verfügung.

Lesen Sie diesen Blogartikel, um mehr über die Inspektionen für das Entity-Framework zu erfahren.

Inspektionen für die Arbeit mit lokalen Funktionen

Rider 2023.2 führt zwei neue Inspektionen mit dazugehörigen Quick-Fixes ein, die die Lesbarkeit des Codes bei Verwendung von lokalen Funktionen verbessern:

  • Die IDE empfiehlt, am Ende einer Methode vor lokalen Funktionen eine explizite return- oder continue-Anweisung einzusetzen.
  • Die IDE schlägt vor, lokale Funktionen an das Ende einer Methode oder eines Blocks zu verschieben und sie mit einer expliziten return-, continue- oder einer anderen Sprunganweisung vom ausführbaren Code zu trennen.

Weitere Details zu den neuen Inspektionen finden Sie in diesem Blogartikel.

Inspektionen für #nullable-Direktiven und NRT-Annotationen

Inspektionen für #nullable-Direktiven und NRT-Annotationen

Für #nullable-Direktiven und NRT-Annotationen stehen jetzt mehrere neue Inspektionen zur Verfügung:

  • Die Inspektion Redundant nullable directive.
  • Die Inspektion Unused nullable directive.
  • Eine Inspektion, die auf Situationen hinweist, in denen Annotationen für nullfähige Verweistypen (NRT) im Widerspruch zu den JetBrains.Annotations-Attributen eines Basismembers stehen.

Um mehr über diese Inspektionen zu erfahren, lesen Sie bitte diesen Blogartikel.

Verbesserte Navigation ab var-Deklarationen

Verbesserte Navigation ab var-Deklarationen

Alle Navigationsaktionen (Go to…, Find Usages usw.) schlagen jetzt bei der Navigation ab einer var-Deklaration mit einem gängigen Wrapper-Typ den zugrunde liegenden Typ vor. Zum Beispiel schlägt Rider vor, zu Person zu navigieren, wenn Sie die Aktion Go to declaration auf das var-Schlüsselwort einer Variablen mit dem Typ ImmutableArray<Person>? anwenden.

Weitere Informationen dazu finden Sie in diesem Blogartikel.

Primärkonstruktoren C#-12-Preview

Die Version 2023.2 unterstützt Primärkonstruktoren für Nicht-Record-Klassen und -Structs aus der C#-12-Preview. Mehrere Inspektionen weisen auf Typen hin, deren Initialisierung durch die neuen Primärkonstruktoren vorgenommen werden kann, und mit einem Quick-Fix kann die Anzahl der Codewiederholungen erheblich reduziert werden.

Manchmal kommt es vor, dass nach einer Änderung die Initialisierung des Typs weniger trivial ist und nicht mehr mittels Primärkonstruktor erledigt werden kann. Für solche Fälle haben wir eine Reihe von Kontextaktionen eingeführt, um Primärkonstruktor-Parameter durch Konstruktoren und gewöhnliche Felder zu ersetzen.

Um diese und viele weitere Funktionen für Primärkonstruktoren in Aktion zu sehen, lesen Sie den separaten Blogartikel zu diesem Thema.

Unterstützung für Standard-Parameterwerte in Lambdas

Unterstützung für Standard-Parameterwerte in Lambdas C#-12-Preview

Im Rahmen unserer Bemühungen zur Unterstützung der C#-12-Sprachupdates haben wir uns die Standard-Parameterwerte in Lambda-Ausdrücken vorgenommen. Neben einer Reihe von Standard-Warnmeldungen in Verbindung mit der Erkennung dieser Syntax haben wir auch die bestehende Inspektion The parameter has the same default value angepasst, um Standard-Parameterwerte in Lambdas zu berücksichtigen. Nähere Informationen finden Sie hier.

Bessere Unterstützung von entsorgbaren Ressourcen

Rider 2023.2 führt zwei neue Codeinspektionen ein, um die Entsorgung eines Objekts besser zu kontrollieren:

  • Die Inspektion Return of a variable captured by ‘using’ statement warnt Sie, wenn das zurückgegebene Objekt sofort entsorgt wird.
  • Die Inspektion Return of a task produced by ‘using’-captured object erkennt Szenarien, in denen ein Task durch ein Objekt erzeugt wird, das durch eine using-Anweisung erfasst und dann sofort zurückgegeben wird.

Wir haben auch die Funktion Generate dispose pattern verbessert, um die Schnittstelle IAsyncDisposable zu unterstützen und Ressourcen durch Generierung einer async-Methode freigeben zu können.

Weitere Informationen zu diesen Neuerungen finden Sie hier.

Bessere Unterstützung für verworfene Werte in C#

Die Codeanalyse wurde um nützliche Funktionen zur Unterstützung des Verwerfens von Werten in C# erweitert:

  • Mit Push-to-Hint können Sie jetzt unkompliziert die Namen und Typen der verworfenen Werte überprüfen.
  • Die Warnung The _ name is typically reserved for local parameters without usages weist auf Variablen und Parameter hin, die trotz des Namens _ verwendet werden. Diese sehen wie verworfene Werte aus, sind aber in Wirklichkeit genau das Gegenteil.
  • Die Inspektion Use discard assignment kann unbenutzte Variablen und Parameter durch einen verworfenen Wert ersetzen.

Weitere Informationen zur verbesserten Unterstützung von verworfenen Werten erfahren Sie in diesem Blogartikel.

Neue Inlay-Hinweise für eine bessere Lesbarkeit des Codes

Neue Inlay-Hinweise für eine bessere Lesbarkeit des Codes

Inlay-Hinweise mit Tupel-Komponentennamen

Bei der Übergabe eines Wertes an ein Tupel-Argument oder einen Rückgabetyp können in C# die Komponentennamen weggelassen werden. Ohne Namen ist es jedoch schwieriger, die Bedeutung der einzelnen Komponenten zu erkennen, ohne den Zieltyp nachzuschlagen. Bei der Zuweisung des Tupels (null, false) zum Beispiel dürfte in vielen Fällen ein Nachschlagen erforderlich sein, um die Bedeutung der einzelnen Komponenten zu verstehen.

Inlay-Hinweise sind in solchen Situationen eine nützliche Hilfe. Rider 2023.2 zeigt Inlay-Hinweise mit Tupel-Komponentennamen an, wenn diese Namen nicht bereits aus dem Komponentenausdruck ersichtlich sind. Dadurch ist es viel einfacher, den Code auf einen Blick zu verstehen.

Für Null- und Standardkomponenten zeigt Rider 2023.2 Hinweise auf den Zieltyp an, auch wenn die Zielkomponente keinen expliziten Namen hat. Ausgenommen sind dabei die Typen string und object, da diese Information in der Regel nicht zum Verständnis beiträgt.

Eine weitere häufige Situation, in der Namen die Verständlichkeit verbessern können, sind Dekonstruktionsmuster, bei denen ein expliziter Name entweder aus der Deconstruct-Methode oder aus Quelltupel-Komponenten bekannt ist. Diese Hinweise wurden konzipiert, um Ihnen zusätzlichen Kontext bereitzustellen, wenn ein Muster für sich genommen nicht genügend Daten enthält, um zu verstehen, wonach gesucht wird – z. B. value is ({ }, true, null).

Verbesserte Unterstützung von #pragma warning-Anweisungen

Verbesserte Unterstützung von #pragma warning-Anweisungen

Mit #pragma-Anweisungen können Sie Compiler-Warnungen anhand ihrer IDs unkompliziert deaktivieren oder wieder aktivieren. Diese IDs eignen sich zwar gut für die Kommunikation mit dem Compiler, sind aber für Menschen möglicherweise etwas kryptisch. Ohne ein umfassendes Wissen ist es nicht sofort offensichtlich, worauf sich eine ID wie CS0168 oder CS0618 bezieht.

UX/UI

Mit diesem Release wird die neue IDE-Oberfläche, die erstmals in Rider 2022.3 vorgestellt wurde, endlich zum Standard für alle neuen Benutzer*innen. Wenn Sie noch nicht umgestiegen sind, sollten Sie die neue Oberfläche ausprobieren: Settings / Preferences | Appearance & Behavior | New UI | Enable new UI.

Vollständiger IDE-Zoom

Überarbeitetes Hamburger-Menü in der Hauptsymbolleiste unter Windows und Linux Neue UI

Wir haben unter Windows und Linux das Verhalten des Hamburger-Menüs in der Symbolleiste der neuen Bedienoberfläche verbessert. Wenn Sie das Menüsymbol anklicken, werden die Elemente nun horizontal über der Symbolleiste angezeigt.

Angeheftete Run-Konfiguration

Anheften von Run-Konfigurationen im Run-Widget Neue UI

Um die Verwaltung von Run-Konfigurationen zu erleichtern, haben wir die Möglichkeit eingeführt, bevorzugte Konfigurationen im Run-Widget anzuheften. Um eine Run-Konfiguration im Pinned-Bereich anzuheften, öffnen Sie das Dreipunktmenü neben dem Namen der Konfiguration und wählen Sie Pin. Wenn Sie mehrere angeheftete Konfigurationen haben, können Sie die Reihenfolge innerhalb der Liste unkompliziert durch Ziehen verändern.

Vollständiger IDE-Zoom

Verbesserte Anpassungsmöglichkeiten für die Hauptsymbolleiste Neue UI

Wir haben die Anpassungsmöglichkeiten für die Symbolleiste der neuen Bedienoberfläche erweitert. Sie können jetzt über ein Dropdown-Menü unkompliziert Aktionen zur Symbolleiste hinzufügen. Klicken Sie hierzu mit der rechten Maustaste auf ein Widget, wählen Sie Add to Main Toolbar und erkunden Sie die verfügbaren Optionen.

Helles Design mit heller Kopfleiste

Light-Design mit hellen Kopfleisten Neue UI

Rider 2023.2 verbessert das Light-Design durch die Einführung einer alternativen Option Light with Light Header, die passende helle Farben für Fensterkopfzeilen, Tooltips und Benachrichtigungsblasen verwendet.

Ein-Klick-Navigation zwischen Projektverzeichnissen

Ein-Klick-Navigation zwischen Projektverzeichnissen

Im Toolfenster Solution Explorer gibt es eine neue Option Open Directories with Single Click, um Projektmappen-Ordner schneller und einfacher auf- und zuzuklappen. Die Option ist im Dreipunktmenü verfügbar.

Dateisortierung nach Änderungszeit im Solution Explorer

Dateisortierung nach Änderungszeit im Solution Explorer

Rider 2023.2 bietet die lang erwartete Option, Ihre Dateien im Solution Explorer nach der Änderungszeit anzuordnen. Diese neue Funktion sortiert die Dateien automatisch neu, wenn Änderungen in Ihrem Projekt gespeichert werden. Um diese Funktion zu aktivieren, öffnen Sie das Dreipunktmenü im Solution Explorer und wählen Sie dann Tree Appearance | Sort by Modification Time.

AI Assistant Beschränkter Zugang

Die IntelliJ-basierten IDEs und .NET-Tools enthalten in Version 2023.2 eine wichtige neue Funktion: AI Assistant. Dieser befindet sich noch in einem frühen Entwicklungsstadium, aber Sie können unseren Ansatz, KI-Unterstützung in die Kernabläufe der IDE zu integrieren und KI-Funktionen mit einer umfassenden Codeanalyse zu kombinieren, schon jetzt ausprobieren. Weitere Details finden Sie in unserer Webhilfe.

AI Assistant ist derzeit nicht in den stabilen Releases von JetBrains-IDEs enthalten und kann als separates Plugin installiert werden, das für die Versionen ab 2023.2.x erhältlich ist. Aktuell gibt es eine Warteliste für die Nutzung von AI Assistant.

Chatten Sie mit AI Assistant

Chatten Sie mit AI Assistant

Im Toolfenster AI Assistant können Sie eine Unterhaltung mit dem LLM führen, Fragen stellen oder mehrere Iterationen einer Aufgabe ausführen lassen. Dabei stellt die IDE einen projektspezifischen Kontext bereit, z. B. die verwendeten Sprachen und Technologien. Wenn Sie mit dem Ergebnis zufrieden sind, können Sie den KI-generierten Code mit der Funktion Insert Snippet at Caret in den Editor einfügen oder einfach kopieren.

Menü AI Actions…

Menü AI Actions…

Wenn Sie ein Codefragment im Editor markiert haben, können Sie im Kontextmenü AI Actions... eine Aktion aufrufen.

AI Assistant kann Sie wie folgt unterstützen:

  • Eine Erklärung zum ausgewählten Code erhalten.
  • Potenzielle Probleme und Refactoring-Möglichkeiten finden.
  • Einen neuen KI-Chat über den ausgewählten Code starten.

Generierung von Commit-Nachrichten und Erklärung von Commits

Der Dialog für Commit-Nachrichten verfügt jetzt über eine neue Schaltfläche Generate Commit Message with AI Assistant (Commit-Nachricht mit AI Assistant generieren). Klicken Sie darauf, um die Diffs Ihrer Änderungen an das LLM zu übermitteln, damit dieser eine Commit-Nachricht mit einer Beschreibung Ihrer Änderungen erzeugen kann. Sie können AI Assistant auch bitten, die Commits Ihrer Mitwirkenden zu erklären.

AI-Assisted Unity F

KI-unterstützte Generierung von Unity-Dateien

AI Assistant kann Ihnen auch dabei helfen, eine Datei nach Ihren Vorgaben für eine Unity-Projektmappe zu generieren. Klicken Sie mit der rechten Maustaste auf ein Projekt im Solution Explorer, wählen Sie im Kontextmenü Create with AI Assistant aus und geben Sie dann Ihre Aufforderung ein. Sobald die KI den Dateiinhalt generiert hat, klicken Sie auf Create New File, und die Datei wird automatisch Ihrem Projekt hinzugefügt.

Performance

In Rider 2023.2 haben wir unseren Caching-Ansatz für die Daten, die die IDE zum Funktionieren aller Systeme benötigt, überarbeitet. Wie in unzähligen Performancetests bestätigt, führt die neue Version zu einem spürbar verringerten Speicherplatzverbrauch bei jeder geöffneten Projektmappe. In der Praxis bedeutet dies insgesamt weniger Zeitaufwand für das Lesen und Schreiben von Festplattendaten und ein schnelleres Laden von Projektmappen.

Navigation und Suche

Find Usages Advanced

Find Usages Advanced

In Rider 2023.2 erhält die Verwendungssuche Find Usages ein Funktionsupgrade. Wenn Sie jetzt Find Usages Advanced (erweiterte Verwendungssuche) für ein Symbol (z. B. Methode, Klasse oder Variable) aufrufen, zeigt die IDE ein Fenster an, in dem Sie zusätzliche Suchkriterien angeben können.

Weitere Einzelheiten dazu finden Sie in diesem Blogbeitrag.

Navigationsoptionen

Um Ihnen die Navigation im Codebestand zu erleichtern, haben wir auf einer speziellen Seite Search and Navigation unter Settings / Preferences | Editor eine Reihe von hilfreichen Optionen hinzugefügt.

.NET SDK

Roslyn-Analyzer und -Quellcodegeneratoren

Rider 2023.2 führt eine Vielzahl von Verbesserungen für die Arbeit mit Roslyn-Analyzern und -Quellcodegeneratoren ein. Einige Beispiele:

  • Dank der neuen Schaltfläche Reboot Source Generators müssen Sie nicht die gesamte IDE neu starten, wenn ein benutzerspezifischer Quellcodegenerator einen Hänger verursacht.
  • Rider zeigt jetzt außerdem Quellcodegenerator-Ausnahmen in der Problems-Ansicht an, sodass Sie jetzt Problemen, die bisher unentdeckt oder ungeklärt blieben, auf den Grund gehen können.
  • Die IDE zeigt jetzt den vollständigen Stack-Trace von Ausnahmen in der Problems-Ansicht an, sodass Sie Fehlerursachen einfacher ermitteln können.
  • Sie haben jetzt die Möglichkeit, den Severity-Grad von Roslyn-Inspektionen im Solution Explorer zu ändern, um die Einstellungen für die Codeanalyse besser anpassen und kontrollieren zu können.
  • Zu guter Letzt bietet Rider Ihnen noch zwei neue Projektvorlagen zum Erstellen von Roslyn-Analyzer- und Quellcodegenerator-Projekten.

Docker

Docker-Ausführung in WSL

Docker-Ausführung in WSL

Mit unserem letzten Release haben wir den Fast-Modus für die Docker-Ausführung eingeführt. Ab Rider 2023.2 können Sie Docker auch in WSL im Fast-Modus verwenden. Um Docker-Container auf einem Windows-System ohne Docker Desktop auszuführen, müssen Sie zunächst WSL installieren, Docker in Ihrer Linux-Distribution installieren und WSL in den Rider-Einstellungen unter Build, Execution, Deployment | Docker hinzufügen. Anschließend können Sie Docker-Container in WSL ausführen und debuggen (mit oder ohne Fast-Modus).

Labels für Docker-Compose-Run-Konfigurationen

Labels für Docker-Compose-Run-Konfigurationen

Rider 2023.2 erleichtert Ihnen die Feinabstimmung Ihrer Run-Konfigurationen für Docker Compose durch die Einführung von Labels. Durch Hinzufügen dieser Codeabschnitte zur Datei docker-compose.yml können Sie angeben, ob und wie Sie Ihre Anwendungen ausführen und debuggen möchten.

Wenn Sie zum Beispiel den Fast-Modus für einige Ihrer Services deaktivieren möchten, können Sie ihnen das Label com.jetbrains.rider.fast.mode: "false" zuweisen. Den Debug-Modus können Sie mit dem Label com.jetbrains.rider.debug: "false" deaktivieren.

XAML Hot Reload für MAUI

Hot Reload ist endlich auch für Projektmappen verfügbar, die .NET MAUI nutzen! Durch Hot Reload von XAML-Daten in Rider können Mobil-Entwickler*innen Änderungen an der Bedienoberfläche und dem Code ihrer MAUI-Apps vornehmen, während diese ausgeführt werden, ohne dass ein komplett neuer Buildvorgang und ein erneutes Deployment erforderlich sind. Die Änderungen werden sofort übernommen, sodass die Entwicklung schneller und iterativer erfolgen kann.

Spielentwicklung

Unity

Auch dieses Release bietet zahlreiche neue Features für die Unity-Entwicklung, darunter viele Verbesserungen bei der Bearbeitung von ShaderLab-Dateien, Updates für die DOTS-Funktionalität und eine bessere Unterstützung für USS-Dateien.

AI Assistant für die Unity-Entwicklung

Der neue AI Assistant unterstützt Sie beim Lernen und beim Lösen von Problemen, und wir freuen uns auf seinen Einsatz bei der Unity-Entwicklung. Rider teilt AI Assistant mit, wenn Sie an einem Unity-Projekt arbeiten. Wenn Sie also eine Frage stellen wie „Wie erstelle ich ein Editorfenster?“ oder „Wie füge ich einen Menüpunkt hinzu?“, weiß AI Assistant, dass Sie ein Fenster bzw. einen Menüpunkt im Unity-Editor meinen und schlägt Ihnen Unity-APIs vor, mit denen Sie Ihr Ziel erreichen können.

Der Unity-Kontext bietet auch eine großartige Möglichkeit, zusätzliches Verhalten zu prototypisieren. Wenn Sie AI Assistant bitten, eine Datei zu erstellen, können Sie mit einer Schaltfläche automatisch die Datei mit dem vorgeschlagenen Inhalt erstellen. Im Rahmen der Weiterentwicklung von AI Assistant werden wir dies auf weitere Aktionen und Kontexte ausweiten.

ShaderLab-Unterstützung

In diesem Rider-Release wurde die Unterstützung von ShaderLab-Dateien erheblich verbessert, mit neuen Eingabehilfen, Live-Vorlagen, Breadcrumbs, Structure-Toolfenster sowie Navigation zu Shader- oder Pass-Namensdeklarationen per Strg+Klick.

Es gibt so viele Updates, dass wir ihnen einen eigenen Blogartikel gewidmet haben! Sehen Sie ihn sich an, wenn Sie an weiteren Details interessiert sind.

DOTS für Unity

Auf der Basis der großartigen Rückmeldungen der Unity-Community haben wir einige nützliche Verbesserungen an der Codegenerierung für den Data Oriented Tech Stack (DOTS) vorgenommen. Außerdem haben wir neue Datei- und Live-Vorlagen eingeführt und die Burst-Kontextanalyse auf weitere Codebereiche ausgedehnt.

Auch dem Debugger haben wir bereits einiges über DOTS beigebracht. Durch die verbesserte Darstellung der Typen RefRO und RefRW ist es jetzt viel einfacher, den Wert hinter den Verweistypen zu erkennen. Sie können jedoch jederzeit den Knoten Raw Value ausklappen, um die ursprüngliche Darstellung zu sehen.

Unterstützung von Unity-Stylesheets

Dieses Release bringt ein größeres Update für Unity Stylesheet-Dateien (USS) mit. Rider unterstützt jetzt die var-Funktion und bietet Syntaxhervorhebung und Completion für eine Vielzahl von Eigenschaften, die in den neuesten Unity-Versionen hinzugefügt wurden.

Weitere Updates

Außerdem haben wir Completion für Pfade in Asset-Datenbank-APIs hinzugefügt. Beginnen Sie einfach mit der Eingabe, und Rider schlägt Ihnen Pfade aus Ihrem Projekt vor.

Natürlich gibt es noch zahlreiche weitere kleine Updates und Korrekturen. Zum Beispiel haben wir ein Problem behoben, das gelegentlich dazu führte, dass Unit-Tests im Status Abbrechen stecken blieben. Für versteckte Ordner werden nicht mehr fälschlicherweise .meta-Dateien angelegt, und die Unity-spezifischen Symbole passen jetzt zum Rest der neuen Bedienoberfläche.

Unreal Engine

Rider 2023.2 bietet weitere enorme Fortschritte bei der Unterstützung der Unreal Engine: zahlreiche Updates für C++, Einführung von Hot Reload und Live Coding, Performancesteigerung bei der Blueprint-Indizierung sowie Korrekturen und Support-Updates für Perforce.

Optimierte Blueprint-Indizierung

Optimierte Blueprint-Indizierung

Dieses Release verbessert die IDE-Leistung beim Indizieren von Blueprints. Wenn Sie zum ersten Mal ein Projekt öffnen, indiziert Rider alle Ihre Blueprint-Assets und kann so die Verwendungen von Klassen in Blueprints finden und die Werte von serialisierten Daten direkt im Texteditor anzeigen, diese Daten zwischenspeichern und schrittweise aktualisieren, während Sie arbeiten.

In früheren Rider-Versionen wurden diese Assets parallel zum C++-Code indiziert. Dadurch dauerte es länger, bis Rider einsatzbereit war.

In 2023.2 indiziert Rider jetzt Assets im Hintergrund, nachdem der gesamte C++-Code indiziert wurde. Dadurch stehen die Syntaxhervorhebung und die Navigationsfunktionen bereits zur Verfügung, während Rider noch die Assets indiziert.

Unterstützung für Live Coding und Hot Reload

Unterstützung für Live Coding und Hot Reload

Rider unterstützt jetzt das Aktivieren von Hot Reload und Live Coding aus der IDE, sodass Sie Ihre Unreal-Anwendung aktualisieren können, während der Editor läuft. Wenn eine dieser Funktionen im Unreal-Editor aktiviert ist, zeigt Rider in der Symbolleiste die Schaltfläche „Build and Reload“ an, mit der Sie Ihre Änderungen kompilieren können, während Unreal die Updates lädt.

Arbeiten mit Perforce

Wir haben die Perforce-Integration verbessert. Dabei wurde neben anderen Verbesserungen und Updates insbesondere der Zeitaufwand für die Statusaktualisierung lokaler Dateien verringert. Rider erkennt jetzt automatisch einen Perforce-Workspace, wenn Sie eine Projektmappe öffnen, und liest auch den Wert von P4CONFIG und andere Einstellungen aus der Registry, nicht nur aus Umgebungsvariablen.

Weitere Updates

Rider 2023.2 enthält zahlreiche weitere nützliche Updates und Fixes für die Game-Entwicklung in C++. Wir haben an einem besonders kniffligen Szenario Verbesserungen vorgenommen, damit Rider bei der Arbeit mit besonders riesigen Projektdateien nicht mehr hängen bleibt. Der Geltungsbereich von Find In Files in Rider lässt sich jetzt ganz einfach auf Plugin-Verzeichnisse beschränken, wenn Sie mit .uproject-basierten Projektmappen arbeiten. Außerdem gibt es mehrere Korrekturen für das RiderLink-Plugin, sodass Builds mit der neuesten VC++-Toolchain erstellt werden können.

Webentwicklung

Verbesserte Fehlerformatierung

Verbesserte Fehlerformatierung

Für Rider 2023.2 haben wir überlegt, wie wir die Darstellung von JavaScript- und TypeScript-Fehlern verbessern können. Fehler und Warnungen werden jetzt verständlicher formatiert, damit Sie Probleme in Ihrem Code einfacher erkennen können. Die Verbesserungen gelten für alle TypeScript- sowie die häufigsten JavaScript-Fehler. Und sie funktionieren sogar bei lokalisierten Fehlermeldungen!

Unterstützung für CSS-Schachtelung

Rider now supports the CSS Nesting Module feature. Wir haben Syntaxunterstützung und eine Inspektion implementiert, die prüft, ob ein verschachtelter Selektor nicht mit einem Bezeichner oder einer Funktionsnotation beginnt.

Code-Completion-Unterstützung für Tailwind

Das Tailwind-Code-Completion-Plugin für Rider unterstützt jetzt auch Razor-Dateien.

Vue-Sprachserver-Unterstützung

Vue-Sprachserver-Unterstützung

Wir haben hervorragende Neuigkeiten für alle, die mit Vue arbeiten! Durch eine Erstunterstützung für Volar ermöglicht Rider eine zielgenauere Fehlererkennung. Standardmäßig wird Volar für TypeScript-Versionen ab 5.0 verwendet, während für frühere Versionen unsere eigene Implementierung eingesetzt wird. Unter Settings | Languages & Frameworks | TypeScript | Vue können Sie den Vue-Service so einstellen, dass die Volar-Integration für alle TypeScript-Versionen verwendet wird.

Weitere Informationen: Das ist neu in WebStorm 2023.2

Versionsverwaltung

Commit-Prüfungen im Hintergrund

Commit-Prüfungen im Hintergrund

Wir haben das Verhalten von Commit-Prüfungen für Git und Mercurial überarbeitet, um den gesamten Commit-Ablauf zu beschleunigen. Die Prüfungen werden jetzt im Hintergrund durchgeführt – nach dem Commit, aber vor dem Pushvorgang.

Commit auf bestimmte Codezeilen beschränken

Commit auf bestimmte Codezeilen beschränken

Rider 2023.2 führt eine mit Spannung erwartete Funktion ein, die selektive Commits von bestimmten Teilen eines Codeabschnitts ermöglicht. Um ein teilweisen Commit durchzuführen, markieren Sie die Zeilen innerhalb eines Abschnitts und wählen Sie im Kontextmenü Include these lines into commit aus. Der Abschnitt wird dadurch in einzelne Zeilen aufgeteilt. Über Kontrollkästchen oder das Kontextmenü können Sie Zeilen zur Auswahl hinzufügen oder aus ihr entfernen.

Performance- und Arbeitsspeicher-Profiling

Snapshot-Analyse dotMemory dotUltimate

Vor 2023.2 konnte dotMemory in Rider nur für die Analyse der Arbeitsspeicher-Allokation verwendet werden. In 2023.2 können Sie in Rider Speicher-Snapshots erfassen und diese wie in der eigenständigen dotMemory-Anwendung analysieren.

  • Die Snapshot-Analyse ist unter Windows, Linux und macOS verfügbar.
  • Unter Windows können Sie auch Prozessabbilder importieren und analysieren.
  • Einige Funktionen und Ansichten sind nicht verfügbar, z. B. automatische Snapshot-Inspektionen und die Stack-Trace-Ansichten.
Gruppierung nach Threads bei Sampling, Tracing und zeilenweisen Snapshots

Gruppierung nach Threads bei Sampling, Tracing und zeilenweisen Snapshots dotTrace dotUltimate

In der Call Tree-Ansicht können Sie nun Aufruflisten nach einzelnen Threads gruppieren, um einen detaillierteren Einblick in threadspezifische Leistungsprobleme zu erhalten.

Dynamische Programmanalyse

  • Zuvor konnte es bei DPA vorkommen, dass pausierte Debugging-Zeit fälschlicherweise als Code-Ausführungszeit gezählt wurde, was zu falsch positiven Datenbankproblemen führte. Dieses Problem wurde in 2023.2 behoben.
  • Außerdem wurden bei DPA bisher große Codeblöcke hervorgehoben, wenn die entsprechende Aufrufliste Speicherallokationen durch Lambda-Funktionen enthielt. Die Hervorhebung erfolgt jetzt zielgenauer.

Сodequalitäts-Workflows

Integration der Codequalitätsplattform Qodana

Tools für die statische Analyse sind berüchtigt für die komplizierte Konfiguration. Rider 2023.2 beseitigt dieses lästige Problem durch die vollständige Integration von Qodana, der intelligenten statischen Analyse-Engine, die sich für jede CI/CD-Pipeline eignet.

Diese Integration bietet Ihnen zwei wichtige Vorteile. Der erste Vorteil ist die einfache Konfiguration. Sie können eine Analyse mit wenigen Klicks ausführen, die Liste der Probleme in Ihrem gesamten Projekt einsehen und Qodana dann in Ihrem CI/CD-System konfigurieren, um Quality Gates einzurichten. Der zweite Vorteil ist ein verbesserter Codequalitäts-Workflow. Sobald Qodana im CI/CD-System konfiguriert ist, können Sie die Ergebnisse der serverseitigen Analyse direkt in Ihrer IDE sehen, ohne eine weitere Einrichtung vornehmen zu müssen.

Übrigens wurde Qodana gerade aus der Preview-Phase entlassen. Lesen Sie diesen Blogartikel, um mehr über das Release zu erfahren und eine Anleitung zur Nutzung von Qodana in Rider zu erhalten.

Arbeiten mit Datenbanken

Arbeiten mit Datenbanken

Wir haben in Rider 2023.2 den Datenbank-Verbindungsdialog überarbeitet. Dabei haben wir einige nachrangige Optionen, die für Verwirrung gesorgt hatten, entfernt und den Verbindungsworkflow vereinfacht. Eine der interessantesten Verbesserungen ist, dass Rider jetzt Ihre geöffnete Projektmappe nach Verbindungszeichenfolgen durchsucht und diese im Dialog vorschlägt.

Weitere wichtige Änderungen in Rider 2023.2:

  • Unterstützung für Redis Cluster.
  • Migrationsdialog mit überarbeiteter Bedienung.
  • Zeitzoneneinstellung im Dateneditor.
  • Unterstützung für externe Datenbanken/Datashares [Redshift].

Weitere Informationen zu den Verbesserungen für die Arbeit mit Datenbanken finden Sie auf dieser Seite.

F#-Unterstützung

F#-nach-C#-In-Memory-Verweise

F#-nach-C#-In-Memory-Verweise

Wir haben In-Memory-Verweise von F# nach C# implementiert, sodass Sie nicht erst einen Build Ihres C#-Projekts erstellen müssen, damit für den referenzierenden F#-Code die Änderungen sichtbar sind. Diese Änderung verbessert die sprachübergreifenden Refactorings und die Navigation, da zusätzlich zu den bereits funktionierenden In-Memory-Verweisen von C# nach F# jetzt auch der F#-Compilerservice immer den tatsächlichen C#-Quellcode berücksichtigt.

IntelliJ-Plattform-Unterstützung für Sprachinjektionen

Wir haben Unterstützung für Sprachinjektionen für die Sprachen der IntelliJ-Plattform implementiert, sodass Sie unter anderem verschiedene Frontend-Sprachen in F#-Literalen verwenden, auf Datenbanken zugreifen und Weblinks oder Tickets öffnen können.

Go to File Member

Go to File Member

Das neue Popup Go to File Member ist jetzt für F# verfügbar. Es erleichtert den Überblick über die Dateistruktur und die Navigation zu Membern von Basistypen.

Updates für Union-Case-Muster

Updates für Union-Case-Muster

Wir haben einige coole Verbesserungen eingeführt, um Ihnen die Arbeit mit Union-Case-Mustern zu erleichtern:

  • Eine neue Kontextaktion zur Konvertierung von Union-Case-Mustern in Muster mit benannten Feldern.
  • Neue Regeln für die Verwendung von Mustern mit benannten Feldern in Union-Cases.
  • Verbesserte Regeln für Union-Case-Muster, sodass das Dekonstruktions-Popup Sie nicht an der manuellen Eingabe des Musters hindert.

We also want to thank Florian Verdonck for contributing to this improvement.

Generierung von Overrides

Wir haben zahlreiche Probleme behoben, um eine korrektere Generierung von Overrides zu ermöglichen. Beispielsweise werden generierte Member jetzt immer an der richtigen Stelle eingefügt, und Typen werden jetzt bei Bedarf neu formatiert, wenn generierte Member dies erfordern. A huge thanks goes to David Schaefer for contributing to this improvement.

You can find the full list of F# updates and fixes available in Rider 2023.2 here.

Plugins

Settings Sync-Plugin

Settings Sync-Plugin

Lange Zeit gab es zwei voneinander unabhängige Plugins, deren Funktionalität sich überschnitt: IDE Settings Sync und Settings Repository.

Um die Verwirrung zu vermeiden, die durch zwei ähnliche, standardmäßig installierte Plugins entsteht, haben wir ihre Funktionen zu einer einzigen Lösung zusammengeführt – dem neuen Plugin Settings Sync.

LSP-Unterstützung für die Plugin-Entwicklung

Durch LSP-API-Unterstützung erleichtert Rider 2023.2 die Plugin-Entwicklung. Die LSP-API richtet sich hauptsächlich an Plugin-Entwickler*innen, die einen bestimmten LSP-Server für die Programmierunterstützung in der IDE verwenden möchten. Wenn Sie eine eigene Programmiersprache oder ein Framework entwickelt haben, können Sie dafür sorgen, dass diese von der IDE unterstützt werden, indem Sie einen LSP-Server und ein Plugin schreiben.

Unsere LSP-Unterstützung umfasst derzeit die Hervorhebung von Fehlern und Warnungen, Quick-Fixes, Code-Completion sowie Navigation zu Deklarationen. Weitere Informationen finden Sie in diesem Blogartikel des IntelliJ-IDEA-Teams.

Feature Trainer in Rider

Rider 2023.2 führt den Feature Trainer ein – ein neues interaktives Tool, das sowohl neuen als auch erfahrenen Rider-Benutzer*innen hilft, die umfangreichen Funktionen und Workflows der IDE zu entdecken. Der Feature Trainer ermöglicht praktisches Lernen und stellt Schritt-für-Schritt-Anleitungen und Codebeispiele zum Üben bereit. Zum Ausprobieren klicken Sie auf Help | Learn IDE Features. Der Feature Trainer ist nur in der neuen Bedienoberfläche verfügbar.

Verbesserte Barrierefreiheit

Bei JetBrains legen wir großen Wert auf die Barrierefreiheit unserer Produkte. Mit diesem Release nehmen wir eine Reihe von Verbesserungen vor, um sicherzustellen, dass auch Personen mit Sehbehinderungen Rider uneingeschränkt nutzen können. Die Verbesserungen umfassen folgende Punkte:

  • Aussagekräftige Beschriftung und Beschreibung der Bedienelemente.
  • Verbesserte Tastaturnavigation und Einstellmöglichkeiten unter Settings / Preferences.
  • Verbesserte Unterstützung für Screenreader wie NVDA, insbesondere auf dem Run-Tab.
  • Verbesserte Barrierefreiheit in der Dokumentation, den Hilfsressourcen und der NuGet-Paketverwaltung.
  • Verbesserte Barrierefreiheit im Windows-Forms-Designer.

Verschiedenes

ARM32-Unterstützung für den Remote-Debugger

Zusätzlich zur bestehenden Unterstützung für ARM64 unterstützt Rider 2023.2 das Hochladen von Remote-Debugger-Tools auf Remote-Systeme mit ARM32-Prozessor, z. B. Raspberry Pi. Um den Debugger an einen Remote-Prozess anzuhängen, verwenden Sie den Dialog Attach to Process.

Migration des Terminals zu ConPTY unter Windows

JetBrains Rider enthält einen integrierten Terminal-Emulator, um innerhalb der IDE eine Befehlszeilen-Shell nutzen zu können. In früheren Rider-Versionen wurde unter Windows die WinPTY-Bibliothek eines Drittanbieters als Terminal-Emulationsschicht verwendet. Ab Rider 2023.2 wechseln wir zum systemeigenen ConPTY, wenn die Windows-Version dieses unterstützt. Zwar sind keine sichtbaren Änderungen zu erwarten, der Wechsel eröffnet jedoch weitere Verbesserungsmöglichkeiten für das Terminal und die Ausführungskonsole.