Das ist neu in RubyMine 2022.1

Unterstützung für neue Ruby- und RBS-Sprachmerkmale, neue Inspektionen und Quick-Fixes, verbesserte Benutzererfahrung und einiges mehr.

Ruby

Unterstützung für neue Sprachmerkmale

RubyMine 2022.1 bietet Unterstützung für neue Ruby- und RBS-Sprachmerkmale, die in Ruby 3.1 eingeführt wurden. Die Unterstützung umfasst Bounded Generics, RBS Collection, Weiterleitung von anonymen Blockargumenten, generische Typ-Aliasnamen und noch einiges mehr.

Neue Inspektionen

Diese Version enthält mehrere neue Inspektionen, die die Verwendung von Typvariablen in RBS prüfen. Sie melden fehlende Typsignaturen, ungültige Verwendungen von Typargumenten, Varianzkonflikte bei Typvariablen, falsche Typargument-Varianzen und vieles mehr.

Überladungen in der Schnelldokumentation

RubyMine kann jetzt Überladungen in der Schnelldokumentation nachschlagen (Strg+Q). Wenn Sie die Schnelldokumentation für eine Methode aufrufen, wird die entsprechende Überladung angezeigt.

Inlay-Hinweise auf RBS-Basis für Ruby-Methoden

RubyMine zeigt jetzt für Ihren Ruby-Code Inlay-Hinweise an, die auf den Typsignaturen in den entsprechenden RBS-Dateien basieren. Wenn Sie auf einen Hinweis klicken, werden Sie zur entsprechenden Signatur geführt.

Quick-Fix für Typsignaturkonflikte

RubyMine weist Sie auf abgeleitete Typen in Ihrem Ruby-Code hin, die nicht mit dem anhand der RBS-Daten erwarteten Typ übereinstimmen. Ab v2022.1 können Sie in solchen Fällen mühelos zu der entsprechenden RBS-Datei navigieren.

Verbesserte Auto-Completion für das YARD-Tag @overload

RubyMine versteht das @overload-Tag und schlägt bei der Anzeige der Parameterinformationen alle deklarierten Überladungen vor. Ab dieser Version fügt die Auto-Completion für das @overload-Tag den Namen der beschriebenen Methode hinzu.

Benutzererfahrung

Überarbeiteter Projekterstellungsdialog

Wir haben den Dialog New Project überarbeitet, um die Erstellung neuer Projekte sowohl für neue als auch für erfahrene Benutzer*innen zu vereinfachen.

Unterstützung für neue generate-Optionen in Rails 7

Dieser Build bietet Unterstützung für die in Rails 7 hinzugekommenen JavaScript-Framework-Optionen für die Projektgenerierung. Wenn Sie im Dialog New Project ein neues Projekt anlegen, können Sie jetzt diese Optionen auswählen.

Neues Notifications-Toolfenster

Wir haben das Event Log durch das neue Toolfenster Notifications ersetzt. Wir bieten Ihnen damit einen besseren Überblick über die Benachrichtigungen der IDE, damit Sie nichts Wichtiges verpassen. Alle Benachrichtigungen im Toolfenster sind jetzt in zwei Kategorien unterteilt: Suggestions (Empfehlungen) und Timeline (Zeitleiste).

Aktualisierter Öffnungsdialog für Dateien und Projekte

Wir haben die Baumstruktur aus dem Dialog Open File oder Project entfernt. Dadurch muss die IDE beim Öffnen nicht mehr alle zwischenliegenden Verzeichnisknoten berechnen. Diese Änderung verbessert die Gesamtleistung der IDE, indem längere Hänger aufgrund von Pfadberechnungen verhindert werden.

Ausgeblendete Tab-Beschriftungen im Debugger

Um den nutzbaren Bereich im Debugger-Toolfenster zu maximieren, werden die Tab-Beschriftungen standardmäßig ausgeblendet.

Überarbeiteter Dialog für strukturelles Suchen und Ersetzen

Der Dialog Structural Search und Replace wurde überarbeitet und enthält jetzt eine Liste aller Vorlagen, um die Navigation zwischen ihnen zu vereinfachen.

Editor

Neue Formatierungsoption zum Einrücken von Sichtbarkeitsmodifizierern

Sie können jetzt Einrückungen für Sichtbarkeitsmodifizierer (public, protected, private) und den darin enthaltenen Code einrichten. Sie können diese Einstellung unter Preferences/Settings | Editor | Code Style | Ruby | Tabs and Indents mit dem Kontrollkästchen Indent visibility modifiers anpassen.

Code-Neuformatierung im LightEdit-Modus

Im LightEdit-Modus können Sie Ihre Dateien bearbeiten, ohne ein ganzes Projekt zu erstellen oder zu laden. Jetzt können Sie Ihren Code auch im LightEdit-Modus neu formatieren. Drücken Sie dazu Strg+Alt+L oder klicken Sie im Hauptmenü auf Code | Reformat Code.

Ausführung von Befehlen in Markdown-Dateien

In Markdown-Dateien wird neben Shell-Befehlen ein neues Randleistensymbol angezeigt. Klicken Sie darauf, um einen Befehl im integrierten Terminal von RubyMine auszuführen. Dies kann zum Beispiel nützlich sein, wenn Sie die Anweisungen in README-Dateien befolgen möchten, die oft Shell-Befehle enthalten.

Codeabschnitt in Markdown kopieren

Jetzt haben Sie die Möglichkeit, mit der neuen Aktion Copy code snippet den Inhalt eines Abschnitts in die Zwischenablage zu kopieren.

Mehr Aktionen in der Symbolleiste des Markdown-Editors

Die schwebende Symbolleiste, die bei der Textauswahl in Markdown-Dateien angezeigt wird, bietet neue Optionen. Mithilfe dieser Symbolleiste können Sie jetzt mühelos Überschriftenstile auswählen und Listen anlegen.

Tests

Navigation zu gemeinsamen Kontexten und Beispielen in RSpec

Sie können jetzt von Ihren Spezifikationen zu gemeinsamen Kontexten und den darin verwendeten Beispielen navigieren. Klicken Sie dazu mit gedrückter Strg-Taste auf eine Anweisung, die eine gemeinsame Ressource hinzufügt: include_context, include_examples, it_behaves_like oder it_should_behave_like.

Docker

Überarbeitete Services-Ansicht

Im Toolfenster Services wurde die Docker-UI erheblich überarbeitet. Die Überarbeitung erstreckt sich auf Container, Images, Netzwerke und Volumes.

Unterstützung für Docker Registry V2

Bei Verwendung von Docker 1.6+ wird die Docker Registry HTTP API V2 unterstützt. Sie können einfache oder passwortgeschützte Docker-V2-Registries anlegen und alle üblichen Aktionen ausführen, z. B. Anzeige, Push und Pull von Images.

Versionsverwaltung

Annotate with Git Blame aktualisiert

Wir haben die Funktionalität von Annotate with Git Blame verbessert, um die Untersuchung von Änderungen zu erleichtern. RubyMine färbt die Unterschiede in den Zeilen im Editor ein, wenn sich die Maus über einer Annotation befindet, und beim Anklicken wird das Git Log-Toolfenster geöffnet.

Git File History: neue Bedienoberfläche ohne Index

Die neue Bedienoberfläche für das Toolfenster Git File History ist jetzt unabhängig vom Indizierungsprozess. Die Daten werden in einer neuen Oberfläche dargestellt, auch wenn der Log-Index ausgeschaltet ist.

Web und Frameworks

Erweiterte Next.js-Unterstützung

Dank der integrierten React-Unterstützung konnten Sie in Ihren Next.js-Projekten alle wichtigen Funktionalitäten bisher schon nutzen. RubyMine 2022.1 fügt Unterstützung für einige Framework-spezifische Aspekte hinzu – z. B. Seiten. Die IDE löst jetzt Pfade auf, die in der href-Eigenschaft von Link-Komponenten, in form oder anderen Tags verwendet werden. Die Code-Completion, die Navigation im Code und das Refactoring funktionieren jetzt ebenfalls.

Volta-Unterstützung

In diesem Release haben wir die Integration mit dem JavaScript-Toolmanager Volta verbessert. RubyMine erkennt jetzt automatisch Yarn und npm, wenn sie mit Volta installiert wurden.

Weitere Verbesserungen

  • Um die Navigation im Log-Tab zu erleichtern, liest der Screenreader jetzt die Namen und Beschreibungen der Baumstrukturen der Branches vor.
  • Die Barrierefreiheit unter macOS wurde verbessert. Wir haben das VoiceOver-Problem behoben, das zur unnötigen Wiederholung von Listenelementen geführt hat. Außerdem kann VoiceOver jetzt Combobox-Listen vorlesen, und wir haben die falsche Positionierung des VoiceOver-Cursors beim Arbeiten auf einem externen Bildschirm behoben.
  • Das Arbeiten mit Änderungsvorschlägen ist einfacher geworden. Wir haben die Möglichkeit hinzugefügt, direkt in der IDE Änderungen lokal oder als Commit anzuwenden.
  • Beim Arbeiten mit Datenbanken können Sie jetzt mehrere Tabellen auswählen und in ein anderes Schema kopieren.
  • Wir haben eine neue Intention-Aktion für die Arbeit mit Datenbankabfragen eingeführt: Convert To Subquery. Jetzt müssen Sie nicht einmal eine Abfrage auswählen – drücken Sie einfach Alt+Enter | Convert To Subquery.
  • Die Auflösungslogik für RBS-Superklassen wurde aktualisiert und an Ruby angepasst (RUBY 29164).
  • Die Unterstützung für Rails 3 wurde eingestellt.
  • Das Schlüsselwort extend fügt einer Singleton-Klasse Methoden hinzu, und sie sollte keinen Zugriff auf Typvariablen haben. RubyMine zeigt jetzt einen Fehler an, wenn man versucht, Typvariablen mit extend zu verwenden (RUBY 29099).
  • Wir haben den Bereich Commit Details im Git-Toolfenster aktualisiert. Die angezeigten Informationen umfassen jetzt GPG-Signaturen und Build-Status. Zuvor wurden diese Daten nur in einer Spalte des Git-Logs angezeigt.
  • Die IDE unterstützt jetzt Corepack, ein experimentelles Node.js-Tool, mit dem Sie Yarn und pnpm ohne Installation verwenden können. Wenn Sie es ausprobieren möchten, führen Sie unbedingt corepack enable im integrierten Terminal aus, denn die Funktionalität ist standardmäßig nicht aktiviert.
  • Die Completion für Tailwind CSS funktioniert jetzt in FreeMarker-Vorlagen.
  • Wir haben die HTML4- und XHTML-Dateivorlagen entfernt, da sie kaum verwendet wurden.
  • Die Webpack-Programmierunterstützung funktioniert jetzt mit den ES-Modulen in Ihren webpack.config.js-Dateien.
  • Der Befehlszeilen-Formatierer unterstützt jetzt den Probelaufmodus zur Validierung von Projektdateien.
  • Jetzt haben Sie die Möglichkeit, geteilte Tabs so zu konfigurieren, dass sie die gleiche Breite haben. Aktivieren Sie dazu die neue Option Equalize proportions in nested splits unter Preferences / Settings | Advanced Settings.
  • UML-Diagramme können jetzt in den Formaten yEd (.graphml), JGraph (.drawio), Graphviz bzw. Graphviz mit Positionen (.dot), Mermaid (.md), Plantuml und IDEA (.uml) exportiert werden, um die Kompatibilität mit Drittanbieter-Tools zu gewährleisten. Die Exportaktion ist im Kontextmenü zugänglich, das Sie mit einem Rechtsklick öffnen können.