RubyMine 2019.2 unterstützt jetzt auch Rails 6 und Ruby 2.7, optimiert die YARD-Unterstützung und den Debugger und implementiert zahlreiche Plattformverbesserungen. Sehen Sie sich nachfolgend alle Neuerungen an und aktualisieren Sie am besten noch heute. Außerdem laden wir Sie ein, uns über etwaige Probleme in Kenntnis zu setzen und RubyMine Slack beizutreten!
Unser Debugger verwendete bisher TracePoint :line, um die Programmausführung zeilenweise zu verfolgen. Für v2019.2 haben wir eine systemeigene MRI-Erweiterung entwickelt, so dass der Debugger jetzt auswählen kann, bei welchen Codefragmenten die Ausführung angehalten werden soll, und der Rest des Codes vom Overhead befreit wird. Infolgedessen konnten wir den Debugger erheblich beschleunigen und die folgenden neuen Funktionen implementieren.
Wenn Sie früher während einer Debug-Sitzung eine Zeile mit mehreren Methoden untersuchen wollten, konnte RubyMine nur die erste Methode der Zeile schrittweise ausführen. Die neue Funktion Smart Step Into hebt diese Beschränkung auf und ermöglicht Ihnen, jede einzelne Methode oder einen Blockaufruf in einer einzigen Zeile schrittweise auszuführen und zu untersuchen.
In der neuen Version können Sie Haltepunkte nicht nur an Zeilen setzen, sondern auch an Blöcken. Wenn Sie auf die linke Randleiste klicken, um einen Haltepunkt an einer Zeile mit einem Block zu setzen, fragt RubyMine, ob Sie den Haltepunkt an der Zeile, dem Block oder an beidem setzen möchten.
Lesen Sie sich den Artikel Debugging in RubyMine durch, um mehr über das Debuggen von Ruby- und Rails-Skripten in RubyMine zu erfahren.

RubyMine 2019.2 unterstützt den Mustervergleich (Pattern Matching), der in der ersten Vorschau auf Ruby 2.7 als experimentelles Feature vorgestellt wurde. Die IDE erkennt die neue Syntax und hilft Ihnen bei der Navigation, der Suche nach Verwendungen und dem Umbenennen von Objekten.
Die neue RubyMine-Version erkennt die Syntax von nummerierten Parametern und findet ihre Verwendungen. Das ist ein weiteres experimentelles Feature von Ruby 2.7, mit dem Sie Werte in Blöcken zuweisen können, indem Sie eine Parameternummer als Standardparameter verwenden, statt eine Blockvariable zu definieren.
RubyMine 2019.2 unterstützt das Framework Action Mailbox, das mit Rails 6 ausgeliefert wird. Die IDE macht Vorschläge zur Vervollständigung von Routingmethoden und Rückrufen und navigiert zwischen Implementierung und Verwendungen.
Wir haben außerdem einige Inspektionen hinzugefügt, die Sie daran erinnern, einen
routing-Aufruf in ApplicationMailbox und eine process-Methode in Ihrer
Mailbox hinzuzufügen. Für Letzteres gibt es auch einen Quick-Fix.
Erfahren Sie mehr über die Nutzung von Action Mailbox in dieser ausführlichen Episode zu GoRails.

Code-Insights für ActiveRecord::Enum werden jetzt unterstützt. Das umfasst
Autovervollständigung,
Navigation und die Suche nach Verwendungen für die Namen und Methoden von Enumeratoren. Auch negative enum-Bereiche (eingeführt in
Rails 6) werden unterstützt.
Wir optimieren kontinuierlich unsere Unterstützung für YARD, um Ihnen beim Erstellen und Verwalten von YARD-Tags zu helfen und
auf der Basis von YARD-Annotationen bessere Autovervollständigung von Code in RubyMine bereitstellen zu können. Die neue Version bietet Typannotationen und
Inspektionen für die Tags @overload und @yieldparam.
Lesen Sie sich den Artikel YARD support in RubyMine durch, um einen tieferen Einblick in die Features von RubyMine und die neuesten Verbesserungen in Bezug auf YARD zu erhalten.
In v2019.2 können Sie Factories, Sequences und Traits umbenennen (Umschalt+F6). Die IDE findet deren Definitionen und schlägt vor, diese samt aller Verwendungen umzubenennen. Falls der Dateiname mit dem Factory-Namen übereinstimmt, kann auch die Datei umbenannt werden.
Wir haben außerdem Factories, Sequences und Traits zur Dateistruktur-Ansicht (Cmd/Alt+F7) und zum Dateistruktur-Pop-up (Cmd/Strg+ F12) hinzugefügt und die Möglichkeit implementiert, diese auf sichere Weise zu löschen (Refactor | Safe Delete).
Mit der neuen Intention Propagate to destructuring (Alt-Enter) können Sie (sofern möglich) eine Extra-Variable durch eine weitere Destrukturierung ersetzen. Verwenden Sie die Intention-Aktion Replace destructuring with property or index access, um eine Destrukturierung vollständig zu entfernen.
Wenn Sie ein Symbol in einer JavaScript- oder TypeScript-Datei umbenennen, gruppiert die IDE jetzt dynamische Verwendungen und schließt sie standardmäßig von der Refaktorierung aus. Dies macht die Refaktorierung präziser und gibt Ihnen im Toolfenster Refactoring Preview mehr Kontrolle darüber, was genau umbenannt werden soll.
Die Codevervollständigung von Komponenten und deren Eigenschaften aus Vuetify, BootstrapVue, Quasar und einigen anderen Bibliotheken mit Vue-Komponenten ist jetzt präziser. Möglich wurde dies durch einen neuen Ansatz bei der Nutzung dieser Bibliotheken in der IDE.
Die neue Inspektion Duplicate code fragment überprüft Ihren Code in Echtzeit und hebt mögliche Duplikate sofort im Editor hervor. Die Funktion ist für JavaScript, TypeScript, CSS, Sass, SCSS und Less verfügbar.
Weitere Informationen zu JavaScript-Verbesserungen, die in RubyMine 2019.2 verfügbar sind, finden Sie in den Neuerungen für WebStorm.
In v2019.2 können Sie verschiedene Codestile in verschiedenen Teilen Ihres Projekts verwenden, indem Sie mehrere
.editorconfig-Dateien hinzufügen. Neben den EditorConfig-Standardoptionen, die seit langem unterstützt werden, können Sie jetzt auch IDE-spezifische Eigenschaften verwenden, die alle verfügbaren Codestil-Optionen der IDE abdecken.
Die neue Version unterstützt Shell-Skripte. Dies umfasst Codevervollständigung, die Dokumentations-Schnellansicht,
das Umbenennen von Textelementen für .sh- und .bash-Dateien und Run-Konfigurationen für
Shell-Skripte. Die IDE bietet
außerdem die Integration mit ShellCheck für Linting und
shfmt zum Formatieren von Code.
In .gitignore-Dateien kann die IDE jetzt Dateien und Ordner vervollständigen.
Klicken Sie bei gedrückter Cmd/Strg-Taste (Cmd/Strg-Klick) auf den Namen, um zur jeweiligen Datei oder dem Ordner im Toolfenster Project zu springen. Sie können
außerdem Dateien
aus der Ansicht Project und der Registerkarte Local Changes schnell zu .gitignore hinzufügen: Klicken Sie mit der rechten Maustaste
darauf und wählen Sie Add to .gitignore.
Jetzt können Sie nach Daten in Ihren Datenbanken suchen, selbst wenn Sie nicht genau wissen, wo sie sich befinden. Klicken Sie mit der rechten Maustaste auf die Datenquelle, die Sie durchsuchen möchten, und wählen Sie Full-text Search (Strg+Alt+Umschalt+F / Cmd+Alt+Umschalt+F). Die Ergebnisse Ihrer Suchanfrage werden so gefiltert, dass nur Strings angezeigt werden, in denen die Daten gefunden wurden.
Weitere Informationen zu Datenbank-Verbesserungen, die in RubyMine 2019.2 verfügbar sind, finden Sie in den Neuerungen für DataGrip.
docker-compose execRubyMine bietet Unterstützung für docker-compose exec. Einfach gesagt: Wenn dieser Befehl aktiviert
ist, werden das Ausführen und Debuggen von Anwendungen, die Installation von Gems und andere
Vorgänge während des
Entwicklungsprozesses beschleunigt.
Weitere Informationen finden Sie im Artikel How to work with Docker/Docker Compose from RubyMine.
Aktivieren Sie unter Experimental features
die Option ruby.docker.internal.via.exec, um RubyMine bei der Arbeit mit dem
Docker-SDK zu beschleunigen.
Jetzt können Sie Gems hinzufügen, rake-Tasks und rails-Befehle ausführen und andere Aktionen vornehmen, die Ihre Entwicklungsumgebung aktualisieren, ohne Docker-Images neu erstellen zu müssen.
Das neue Popup Recent Locations ermöglicht neue Wege, in Ihrer Codebasis zu navigieren. Dieses Popup hilft Ihnen dabei, Code zu finden, wenn Sie nicht mehr wissen, wo er sich genau befindet, sondern sich lediglich ungefähr an den Inhalt erinnern. Beginnen Sie mit der Eingabe, um die Ergebnisse zu filtern, und springen Sie direkt zum gewünschten Code.
Weitere Informationen finden Sie im Artikel RubyMine Navigation: Recent Locations Popup.
RubyMine 2019.1 bietet die Integration von rbspy und stellt einen nativen Profiler zur Verfügung, mit dem Sie Codefragmente identifizieren können, die Ihre Anwendung bzw. Ihre Tests ausbremsen.
Ein detailliertes Tutorial finden Sie unter Profile Ruby & Rails Apps With rbspy in RubyMine.
Sie können den Profiler an Ihre laufende Anwendung anfügen (Find action / Attach Profiler to Process), um diese in Echtzeit zu untersuchen.

Wenn Sie eine Factory hinzufügen, kann RubyMine ihre Attribute und, falls möglich, Werte automatisch vervollständigen. So wird die IDE z. B. bei einer Rails-Model-Factory die Felder automatisch mit deren Inhalt und sogar mit den entsprechenden Zuordnungen vervollständigen. Selbstverständlich können Sie auch zwischen den Definitionen und Verwendungen dieser Objekte navigieren.
Wenn Sie Tests schreiben, können Sie die Definitionen der Methoden zur Factory-Erstellung
wie
create, build, build_stubbed und andere automatisch vervollständigen und
zu ihnen navigieren.
Andere tolle Features von Factory Bot wie Sequences, Traits und Aliases werden ebenfalls vollständig unterstützt.


Darüber hinaus haben wir Factories zum Pop-up Related files (Navigate / Related symbol) hinzugefügt, und über eine Randleiste können Sie zu partiellen Factory-Deklarationen springen, falls diese existieren.
Die neue Aktion Call Hierarchy hilft Ihnen, die ganze Kette an Methoden ("Caller"), welche die von Ihnen untersuchte Methode aufrufen, bis zur gewünschten Tiefe schrittweise zu untersuchen.
Nähere Informationen dazu finden Sie in diesem Blogbeitrag.
RubyMine 2019.1 unterstützt jetzt TruffleRuby! Um Ihr aktuelles Ruby-SDK auf TruffleRuby umzustellen, stellen Sie sicher, dass Sie den Interpreter installiert haben, und wählen Sie ihn in den Ruby-SDK-Einstellungen aus.
Übrigens haben wir in dieser Version auch viele Probleme mit Ruby-Versionsmanagern behoben.
RubyMine verwendet jetzt für TypeScript-Code in .vue-Dateien den TypeScript-Sprachdienst zusammen mit seiner eigenen TypeScript-Unterstützung. Dadurch sind die Typüberprüfung und die Typinformationen jetzt noch präziser, Sie können die von diesem Dienst bereitgestellten Quick-Fixes nutzen, und sämtliche TypeScript-Fehler in der aktuellen Datei werden im TypeScript-Toolfenster angezeigt.
Wenn Sie Tests mit Jest, Karma, Mocha oder Protractor ausführen und einige Tests fehlschlagen, sehen Sie jetzt direkt im Editor, wo das Problem aufgetreten ist. Die IDE nutzt die Informationen aus dem Stack-Trace, um den fehlerhaften Code hervorzuheben. Wenn Sie den Mauszeiger darüber schweben lassen, sehen Sie die Fehlermeldung des Testrunners und können sofort mit dem Debugging des Tests beginnen.
Freuen Sie sich auf eine neue, verbesserte interaktive Debug-Konsole im Debug-Toolfenster für JavaScript und Node.js! Sie zeigt nun Objekte in einer Strukturansicht an und unterstützt die Gestaltung von Log-Meldungen mithilfe von CSS sowie deren Gruppierung mit console.group() und console.groupEnd(). Sie können zudem beliebige Typen von Logmeldungen herausfiltern.
Beim Hinzufügen neuer Skripte zur Datei package.json macht die IDE jetzt Vorschläge für mögliche Befehle, die von den installierten Paketen zur Verfügung gestellt werden. Nach der Eingabe von "node" schlägt die IDE Ordner- und Dateinamen vor. Nach Eingabe von "npm run" sehen Sie eine Liste mit Aufgaben, die in der aktuellen Datei definiert sind.
Weitere Informationen über JavaScript-Verbesserungen in RubyMine 2019.1 finden Sie unter Das ist neu in WebStorm.
Die Dokumentation (F1) der CSS-Eigenschaften und der HTML-Tags und -Attribute zeigt nun aktuelle Beschreibungen und Informationen zur Browser-Unterstützung aus dem MDN an und bietet Links zu den vollständigen MDN-Artikeln.
Sie können nun die neuen bunten UI-Designs in RubyMine verwenden, die als Plug-ins verfügbar sind. Wählen Sie ein Design: Dark Purple, Gray, oder Cyan Light – oder erstellen Sie ihr eigenes.
Unsere Kollegen vom DataGrip-Team haben uns geholfen, die Datenbank-Tools in RubyMine um ein paar coole Features zu erweitern:
Die IDE erkennt Rails-Scopes jetzt deutlich besser. Wenn Sie beispielsweise Ihrem Scope ein Assoziationsobjekt hinzufügen, schlägt RubyMine verfügbare Findermethoden vor. Darüber hinaus stehen für verbundene Scopes auch die automatische Codevervollständigung und die Navigation zur Verfügung.
RubyMine bietet eine vollständige Unterstützung für Struct. Jetzt können Sie für Objekte der Struct-Klasse die automatische Vervollständigung, Navigation und Refaktorierung genauso anwenden, wie Sie dies von jeglichen anderen Ruby-Klassen und deren Instanzen gewohnt sind.
Die neue Inspektion Nil dereference überprüft Ihren Code auf mögliche Null-Fehler im aktuellen Kontext. Beispielsweise, wenn Sie eine Methode für eine Variable aufrufen, die Null sein könnte.
Im neuen i18n-Dialog können Sie gleichzeitig für alle Ihre Wörterbücher Übersetzungen erstellen. Setzen Sie wie gewohnt den Mauszeiger auf einen String, drücken Sie Alt+Enter und wählen Sie i18n aus. Sobald die Generierung abgeschlossen ist, halten Sie die Taste cmd/Strg gedrückt und klicken Sie auf den erstellten Schlüssel, um zu einer beliebigen Übersetzung zu navigieren.
Auch Übersetzungen für Namespace-Schlüssel und Lazy-Lookups lassen sich ohne zusätzlichen Aufwand erstellen, da in der neuen Version von RubyMine Übersetzungen für derartige Schlüssel direkt im Editor erstellt werden können.
RubyMine kann anstelle der i18n-Schlüssel tatsächliche Übersetzungen anzeigen. Drücken Sie hierfür in einer Controller- oder View-Datei für einen beliebigen Schlüssel die Taste cmd/Strg. Sie können wählen, welches Verzeichnis für die Übersetzungsvorschau gewählt werden soll.
Informationen über weitere Verbesserungen der Internationalisierung in v2018.3 finden Sie unter i18n-Features in RubyMine.
Anhand des neuen Dialogs Parameter extrahieren (Refactor | Refactor this | Extract Parameter) können Sie Argumente nicht nur extrahieren, sondern für diese auch einen Standardwert festlegen, sie optional gestalten oder als Block übergeben.
Wir haben die Inline-Refaktorierung verbessert, damit Sie überschüssige Methoden und Variablen sicherer entfernen können. Genauer gesagt, ist die Inline-Methode bei Argumenten und Variablen mit String-Interpolation bedeutend robuster geworden.
Schließlich haben wir die äußerst nützliche Möglichkeit hinzugefügt, Teile von Strings in Variablen und Konstanten zu extrahieren.
Weitere Informationen über Refaktorierungsoptionen finden Sie unter RubyMine Refaktorierungen: Übersicht und Verbesserungen.
Die neuen Intention-Aktionen sorgen für eine verbesserte Lesbarkeit Ihres Codes. Beispielsweise können Sie jetzt die De Morgansche Intention anwenden, um unschöne Negationen zu vereinfachen und Block-Aufrufe von Methoden zu extrahieren. Setzen Sie einfach Ihren Mauszeiger auf einen sogenannten „Code Smell“ und drücken Sie Alt+Enter, um den entsprechenden Quick-Fix anzuwenden.
Weitere Informationen über Intentionen finden Sie unter Intention-Aktionen in RubyMine.
RubyMine 2018.3 bietet jetzt auch praktische Randleisten für jede Testmethode. Die Randleisten sind sichtbare Anker, die Ihnen jeden einzelnen Test anzeigen, der in einer Datei ausgeführt werden kann. Außerdem lassen sich Tests so schneller ausführen als über das Kontextmenü.
Informationen über weitere praktische Testfunktionen finden Sie unter Ausführen von Tests in RubyMine.
Jetzt können Sie GitHub-Pull-Requests direkt in RubyMine anzeigen lassen. Unter VCS | Git | View Pull Requests finden Sie Beschreibung, Label, Bearbeiter und die tatsächlichen Änderungen.
Zusätzlich stehen alle bekannten Funktionen der Git-Integration wie Projekt-Update, Commit der Änderungen, Diff-Ansicht und Lösung von Konflikten jetzt auch in Git-Submodulen zur Verfügung.
Das neue Darcula-Farbschema eliminiert kräftige Farben, ist angenehmer für die Augen und lässt sich besser mit ähnlichen Schemata integrieren, die für andere Programmiersprachen in JetBrains IDEs entwickelt wurden.
Die vorherige Darcula-Version ist jedoch weiterhin verfügbar. Wenn Sie diese gerne beibehalten möchten, gehen Sie zu Preferences/Settings | Editor | Color Scheme | Ruby, klicken Sie anschließend auf das Zahnradsymbol und wählen Sie Transform current scheme to Darcula 2018.2.
Die neue, komfortablere globale Suche, Search Everywhere (Shift+Shift), vereinfacht die Verwendung sämtlicher anderer Navigationsoptionen (Go to Class, File, Symbol und Action). Mit der Tabulatortaste können Sie zwischen den beiden Sucharten wechseln.
Der aktualisierte Plug-in-Bereich (Preferences/Settings | Plugins) vereinfacht das Verwalten, Installieren, Deinstallieren und Aktualisieren von Plug-ins. Sie können jetzt beispielsweise anhand von Tags nach Plug-ins suchen und die Ergebnisse nach Download, Name, Bewertung, Empfehlung oder Aktualisierung sortieren.
Für Ihre Arbeit mit Angular stehen Ihnen jetzt eine verbesserte automatische Codevervollständigung und Navigation für Variablen, Pipes und AsyncPipes sowie die Referenzvariablen des Templates zur Verfügung.
In React-Apps können nun alle Lifecycle-Methoden der Komponenten mittels Codevervollständigung eingefügt werden. Die Inspektion Unresolved variable warnt Sie, falls eine Komponente nicht definiert wurde.
In JavaScript-Dateien kann die IDE jetzt nicht nur Importe für Symbole, die in Ihrem Projekt definiert sind, sondern auch für Symbole der Projektabhängigkeiten automatisch hinzufügen. Dies ist möglich, wenn die Bibliothek ES-Module oder Dateien mit TypeScript-Typdefinitionen enthält.
Die neue Aktion Extract ruleset (Alt-Enter) lässt Sie CSS-Deklarationen schnell aus einem Regelsatz in einen neuen, spezifischeren extrahieren.
In den Einstellungen des Codestils für CSS und seine Präprozessoren kann nun auch die Verwendung von Leerzeilen festgelegt werden. Darüber hinaus können die CSS-Eigenschaften alphabetisch oder in einer benutzerdefinierten Reihenfolge in Blöcken sortiert werden.
Weitere Informationen über JavaScript-Verbesserungen in RubyMine 2018.3 finden Sie unter Das ist neu in WebStorm.
Die neue Aktion Introduce reference erleichtert die Erstellung von Referenzen für Inline-Links. Die IDE findet alle Link-Duplikate in der Datei und empfiehlt diese mit der neu erstellten Referenz zu ersetzen.
Zusätzlich kann Text jetzt durchgestrichen und die Header-Größe umgeschaltet werden. Diese neuen Aktionen finden Sie in der Symbolleiste.