Support for new Ruby and RBS language features, new inspections and quick-fixes, UX improvements, and more.
RubyMine 2022.1 adds support for new Ruby and RBS features introduced in Ruby 3.1. This includes support for bounded generics, RBS collection, anonymous block argument forwarding, generic type aliases, and more.
This version adds several new inspections which check the usage of type variables in RBS. They report missing type signatures, invalid type argument usage, conflicting type variable variances, incorrect type argument variance, and more.
RubyMine can now show overloads in the Quick Documentation look-up (Ctrl+Q). When you invoke Quick Documentation on a method, it will show the current matching overload.
RubyMine now shows inlay hints for Ruby code, based on type signatures from corresponding RBS files. Clicking on a hint will take you to the corresponding type signature.
RubyMine reports inferred types in Ruby code that don’t match the expected type from RBS. Starting with v2022.1, you can quickly navigate to the corresponding RBS file in such cases.
@overload tag and will
suggest all of the declared overloads when showing parameter information.
Starting with this version, autocompletion for the
tag adds the name of a method that you are describing.
We reworked the New Project dialog interface to streamline new project creation for both newcomers and experienced users.
We’ve replaced the Event Log with a new Notifications tool window. This will help you maintain a better overview of notifications from the IDE so you don’t miss anything important. All notifications that appear in the tool window are now divided into two categories: Suggestions and Timeline.
We’ve eliminated the tree from the Open File or Project dialog, which means that the IDE no longer calculates all intermediate directory nodes on opening. This change improves the IDE’s overall performance by preventing lasting hangs caused by dead-end path calculations.
To maximize the usable space in the Debugger tool window, we’ve hidden the tab labels by default.
We’ve redesigned the Structural Search and Replace dialog to feature a list of all templates to make it easier to navigate between them.
You can now set up indentation for visibility modifiers (
private) and the code inside them. You
can find this setting under
Preferences/Settings | Editor | Code Style | Ruby | Tabs and Indents
and toggle the Indent visibility modifiers checkbox.
LightEdit mode allows you to edit your files without creating or loading a whole project. You can now reformat your code while in LightEdit mode. To do this, press Ctrl+Alt+L or go to Code | Reformat Code in the main menu.
We’ve added a new gutter icon for Markdown files, next to shell commands. Click on it to run a command in RubyMine’s built-in terminal. This can be useful when you follow manuals like README files, which often contain shell commands.
You can now use the new Copy code snippet action to copy block contents to the clipboard.
New options for the floating toolbar will appear on text selection when you edit Markdown files. Using this toolbar, you can now quickly select header styles and create lists.
You can now navigate from your specs to shared contexts and the shared
examples used in them. To do so, Ctrl+click a statement
that adds a shared resource:
We have significantly reworked Docker’s UI in the Services tool window. The makeover has been implemented for containers, images, networks, and volumes.
We’ve added support for Docker Registry HTTP API V2 to use with Docker 1.6+. You can create simple or password-protected Docker V2 registries and perform all of the usual actions like viewing, pushing, and pulling images.
We’ve improved the functionality of Annotate with Git Blame to make investigating introduced changes easier. RubyMine highlights the differences between the lines in the editor when you hover over an annotation, and you can open the Git Log tool window by clicking on the annotation.
The new UI for the Git File History tool window is now independent of the indexing process. The data is represented with a new interface, even if the Log index is off.
Thanks to the built-in support for React, all of the key features should have
already been working in your Next.js projects. RubyMine 2022.1 adds support
for some framework-specific things, such as pages. The IDE will resolve paths
used in the
href property of your
Link components as well as in
form and other tags. Code completion, navigation, and refactorings work now, too.
extendkeyword adds methods to a singleton class, and it shouldn't have access to type variables. RubyMine now shows an error when one tries to use type variables with
corepack enablein the built-in terminal – the feature isn’t turned on by default.