Releases RubyMine

RubyMine 2023.1: Rails 7 and Ruby 3.2 Support, Improved Performance, Refreshed New UI, and More!

The release of RubyMine 2023.1 is now available!

You can get the new build from our website or via the free Toolbox App.

The Ruby and Rails IDE has been upgraded to support Rails 7 and Ruby 3.2 with additional improvements, including a refreshed new UI, faster code completion, decreased memory usage, better gem synchronization on WSL, simpler navigation, and enhanced integration with Docker. Moreover, users can now effortlessly work with shared contexts and examples in RSpec, and much more.

Here are some highlights of the key features. For a detailed description of this update, please visit our What’s New page.

Ruby and Rails

Support for turbo-rails completion in Rails 7

Are you currently using or planning to upgrade to Rails 7? With the latest release, RubyMine’s autocomplete feature now supports Rails 7’s turbo-rails methods, enabling you to write Ruby code faster and more efficiently.

Completion of field parameters in ActiveRecord methods

We’ve included code completion support options for certain CRUD methods of the ActiveRecord class. RubyMine will now provide suggestions for argument completion for the following ActiveRecord methods:

  • Class ActiveRecord::Inheritance::ClassMethods
    Methods: new
  • Class ActiveRecord::Persistence::ClassMethods
    Methods: create, create!, update, update!
  • Class ActiveRecord::Persistence
    Methods: update, update!, update_columns, update_attributes, update_attributes!
  • Class ActiveRecord::Associations::CollectionAssociation
    Methods: build
  • Class ActiveRecord::Associations::CollectionProxy
    Methods: build, create, create!
  • Class ActiveRecord::Relation

Methods: new, create, create!, first_or_create, first_or_create!, first_or_initialize, create_or_find_by, create_or_find_by!, update, update!, build

Please note that some of these methods may not be defined in certain versions of Rails.

Performance

Code completion speed

We analyzed a great deal of anonymous user data and fixed a major performance issue following the analysis results. This almost doubled RubyMine’s code completion speed.

Memory consumption decreased

We fixed several issues that caused excessive memory consumption in RubyMine. When working with larger projects, the IDE memory footprint is now significantly smaller.

Gem synchronization on WSL

The new version of RubyMine comes with a built-in syncing tool optimized for working on WSL. This tool replaced rsync, previously used for file transferring during gem synchronization. The new solution is almost 10 times faster than the previous implementation.

New UI updates

Editor window zoom

You can now zoom into and out of the RubyMine editor window entirely, adjusting the size of all UI elements at once. This can be done by selecting View from the main menu, then choosing Appearance and adjusting the IDE’s scaling. Alternatively, if you have a touchpad or touchscreen, you can zoom in and out directly in the editor window.

To simplify the process of calling these actions, you can assign custom shortcuts to them in the Keymap section of the Settings menu. Simply navigate to the Main Menu, then View, and finally Appearance.

Configuration option to set up Actions on Save for new projects

In RubyMine 2023.1, there is a new configuration setting that allows you to define which Actions on Save for new projects. 
To access this setting, go to File/ New Projects Setup / Preferences For New Projects / Tools / Actions on Save. From there, you can specify which actions should be automatically executed when changes are saved in your projects.

Hidden toolbar in Zen and Distraction Free modes in the new UI

The appearance and user interface of the IDE have been improved with the latest update. When the Zen and Distraction Free modes are activated, the top toolbar is hidden.

Vertical split for tool windows

With the updated UI, you can easily organize your workspace by splitting the tool window area. To move a tool window to the lower section, drag its icon from the sidebar and drop it below the separator. Alternatively, you can right-click on the icon to access the context menu and then select the Move to option to relocate it.

Search Everywhere is enabled with ML-powered search for classes

We’re making ongoing efforts to incorporate machine-learning ranking into the Search Everywhere (Double ⇧ / Double Shift) functionality to deliver more precise and relevant search outcomes. The machine learning-powered sorting algorithm is now enabled by default in the Classes tab, as well as in the Actions and Files tabs.

Configure Tailwind CSS

In this build, we’ve added support for all configuration options, such as configuring custom class name completions under the `classAttributes` option and even experimental ones like tailwindCSS.experimental.configFile.

You can find and set up these configuration options under Preferences / Settings | Languages & Frameworks | Style Sheets | Tailwind CSS.

RSpec

Improved navigation from subject to subject definition in RSpec

We’ve enhanced navigation within RSpec to enable easy access to in-scope value definitions. You can now navigate to the nearest in-scope value definition by using ⌘Click (macOS) or Ctrl+Click (Windows) on a subject reference.

Run shared_examples_for and shared_context from the gutter

From this release onwards, utilizing shared_examples_for and shared_contexts has become simpler – it is now possible to execute them using gutter icons.

Fluent interface descriptions formatting for RSpec 3

The built-in RubyMine formatter now supports fluent interface descriptions for RSpec 3. While the tests are running, they will still have the default placeholder description. As soon as the tests are finished, these descriptions are replaced with the actual example names.

Docker

Merged logs from all Docker-compose containers

The Dashboard tab in the Docker-compose node has been enhanced to consolidate logs from all Docker-compose containers into a centralized location, allowing for real-time updates.

Support for Azure Container Registry

Connecting to Azure Container Registry is now much simpler. 
To set it up, navigate to the Docker Registry section under Settings/Preferences | Build, Execution, Deployment | Docker. Then, in the Docker Registry input field, select the Docker V2 option.

New setting to apply the :z mount option to bind volumes on SELinux

You can add the :z configuration flag to Docker bind mounts. This allows you to connect volumes to Docker containers on SELinux workstations.

These are the most notable updates introduced in RubyMine 2023.1. Check out the What’s New page or refer to the release notes for more comprehensive details about the new version.

You can download RubyMine 2023.1 from our website or via the Toolbox App.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss and answer your questions!

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 invite you to share your thoughts in the comments below and suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

image description