What’s New in RubyMine 2022.2

Improved support for Rails, RBS, Debugger, YARD, and various new features.

Rails

Clickable links in Rails server logs

Rails developers can now click links for Controller#action, View, and Route references to navigate to the corresponding files.

Find, complete, and navigate Rails URLs

RubyMine now supports searching for Rails URLs. Simply type /url in the Search Everywhere dialog to find and navigate to a file that contains the desired URL. You can also use a keyboard shortcut: Ctrl+Shift+\.

We've introduced autocompletion for HTTP requests. This means you can autocomplete Rails URLs and navigate to their related Routes. The completion suggestions also display the types of available HTTP requests.

Endpoints toolwindow

The newly added Endpoints tool window provides an aggregated view of the client and server APIs used in your project. The tool window can assist you when developing microservices and for backend-frontend communication. You can refer to this help topic to learn more.

Better completion for HTML tags in ERB files

You no longer need to manually type opening HTML tags when you edit .html.erb files. Just start typing the name of an HTML tag, and RubyMine will provide the proper autocomplete suggestion. Press Tab to autocomplete the tag and continue editing things inside the tag.

RBS

Inline visibility modifiers

In this release, we’ve continued to improve our RBS support. Starting with this version, RubyMine’s code insight now checks inline public and private visibility modifiers to determine the visibility of attribute and method declarations. We’ve also added per-method visibility modifiers to the structure view.

Retrieve types from unknown classes

Previously, we only provided types for an object if its class had an RBS signature. If there was no corresponding RBS signature, we could only retrieve the types of methods from Object.

We’ve improved type inference for unknown classes, so RubyMine will now look up the types for methods from all known ancestors from Ruby, not just Object.

Debugger

We’ve improved RubyMine’s debugger to make it more robust for Ruby 3 or later. You should now be able to debug your code written in Ruby 3 or later without any major issues while using all of the features provided in the GUI, such as stepping through the code, evaluating expressions, and more. We also fixed issues in the previous debugger implementations, so if you are running a version of Ruby earlier than 3.0, you should be able to debug your code in RubyMine as well. No extra action is required, as the IDE will automatically suggest a suitable debugger implementation.

YARD

Code insight for YARD macros

Starting with v2022.2, RubyMine recognizes YARD macro extensions and provides general coding assistance for them.

  • Use the Go to declaration action on a macro reference to jump to the corresponding macro declaration.
  • Search for usages of a macro declaration by invoking the Find usages action.
  • Rename every usage of a macro by pressing Shift+F6.

Note that RubyMine does not support the “attach” macros due to possible performance issues.

Improved rendering of YARD docs

Check out the updated look and feel of YARD comments and tags when rendering them in the editor. We tidied up indentation and styles to make code documentation inside the IDE more uniform.

Various new features

Run current file

RubyMine uses run/debug configurations to run, debug, deploy, and test your code. In this release, we’ve introduced a new feature to run and debug the file that is currently open in the editor.

Code insight for pattern-matched local variables

Code insight features, such as navigation between entities, the Rename refactoring, and Find Usages, now work for pattern-matched local variables.

Exit line comment continuation

This version adds a new option to exit line comment continuation by pressing Enter. Use Shift+Enter to insert an empty comment line. You can toggle this option in Preferences / Settings | Advanced Settings | Ruby | Delete empty line comment with Enter checkbox.

Change the font size globally

We’ve recently introduced a keyboard shortcut that changes the font size across all editors. To increase the font size, press Alt+Shift+.. To decrease it, press Alt+Shift+,.

Edit interpreter names

If you use different Rubies for different projects, you can now edit interpreter names in the Ruby SDK settings. We’ve added this feature to help you make various SDKs human-readable and avoid confusion when choosing between them.

Open Gemfile from a RuboCop suggestion

Now you can open your Gemfile and add the RuboCop gem right from the Notifications tool window. When you see the Set up RuboCop suggestion in the Notifications tool window, click Add.

Manage auto-insertion of parentheses

Now you can choose whether you want RubyMine to automatically insert parentheses on code completion or not. To enable auto-insertion of parentheses, go to Settings/Preferences | Editor | General | Code Completion and toggle the Insert parentheses automatically when applicable checkbox.

JavaScript

Support for Angular standalone components

Support for Angular standalone components

We’ve been actively working on support for Angular 14 in RubyMine. The most important addition we’ve made in this release is support for Angular standalone components. RubyMine now properly recognizes components, directives, and pipes marked as standalone: true.

Updates for Vue

Updates for Vue

Our support for Vue 3 has lagged behind some of the latest Vue updates. We’ve shipped several improvements to address this, though some, such as Vite support, were already included in the minor updates for v2022.1. RubyMine 2022.2 also comes with a few fixes. For example, it understands type narrowing in v-if/else directives.

TypeScript 4.7 support

TypeScript 4.7 support

RubyMine 2022.2 comes bundled with TypeScript 4.7, supporting new language features like moduleSuffixes and ESM in Node.js. It will automatically insert the .js extension to the import statement if module is set to node16 or nodenext in your tsconfig.json file. Additionally, RubyMine supports the typesVersions field in package.json files.

Feature retirement plans

This release retires support for some older technologies and features, namely Rails 3, the RCov gem, the JRuby run configuration type as well as the Zeus, Spork, and Nailgun pre-load servers. For more details regarding these decisions, see this separate announcement.