RubyMine 2022.2 EAP is Open!
The Early Access Program for the upcoming version 2022.2 of RubyMine is now available. As always, you are welcome to try the new features before the official release, and we are looking forward to hearing your feedback.
Here are the main highlights of the first EAP build:
We’ve improved RubyMine’s debugger to make it more robust for Ruby 3 and onward. Starting with this EAP, you should be able to debug your Ruby 3 and up code without any major issues while using all the fancy features provided in the GUI, such as stepping through the code, evaluating expressions, and so on. We also fixed issues in the previous debugger implementations, so if you are running an older version of Ruby (below 3.0), you should be able to debug your code in RubyMine just fine as well. No extra action is required, as the IDE will automatically suggest a suitable debugger implementation.
We ran some internal tests to learn how well the new RubyMine debugger performs when running a simple Rails script in debug mode. We found out that its performance is close to the native Ruby 3 debugger, which our new debugger is based on. The results vary insignificantly depending on the OS, machine CPU, and the number of breakpoints set.
The important thing is that, when debugging setups that have two breakpoints or more, the new RubyMine debugger is about 5 times faster than the previous one for Ruby 3, which used an open-source implementation:
According to our stats and surveys, RubyMine’s debugger is one of the most used features among our experienced users. If you aren’t using it yet, we strongly suggest you check out one of the following tutorials:
In this release, we’ve continued to improve our RBS support. Starting with this version, RubyMine’s code insight now checks inline
private visibility modifiers to determine the visibility of attribute and method declarations. We’ve also added per-method visibility modifiers to the structure view:
As for other changes related to RBS, we’ve added a way to exit line comment continuation in RBS by pressing
Enter, or continue commenting by pressing
Shift+Enter. You can find details about this improvement in the related ticket: RUBY-28211.
Code insight for rightward assignments
You will discover that code insight features, such as navigation between entities, the Rename refactoring, and Find Usages, now work for pattern-matched local variables:
Clickable links in server development logs
Rails developers will appreciate that they can finally click links for
View references to navigate to the corresponding files. The same feature will be added for
Routes very soon (RUBY-29488).
New Project dialog
When you create a new project in RubyMine 2022.2, you will see that the New Project dialog looks a bit different. We’ve moved a couple fields around in project types, put Name and Location in separate fields, and added extra icons to follow the latest design patterns of JetBrains tools:
Edit interpreter names
If you use different Rubies for different projects, you will like the fact that 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 not get confused when choosing between them:
Feature deprecation plans
This release marks the beginning of the safe deprecation of some older technologies and features, namely Rails 3, the Rails View, the RCov gem, the Zeus, Spark, Nailgun pre-load servers, and the JRuby run configuration type. For more details regarding these decisions, see this separate announcement.
As always, we’ve fixed a number of issues, such as:
- Performance issues when typing in large files (RUBY-29542).
- The problem causing the built-in Rails console to generate odd characters and crash (RUBY-29509).
letvariables in RSpec (RUBY-25222).
- The absence of gutter mark icons in minitest specs (RUBY-24745).
Join the Early Access Program
To learn about the newest features as they come out, please follow RubyMine on Twitter. We post product news and tips several times a week.
We encourage you to share your thoughts in the comments below and to create and vote for features in the issue tracker.
The RubyMine team