What’s New in RubyMine 2023.1

RubyMine 2023.1 provides Rails 7 and Ruby 3.2 support, new UI updates, faster code completion, decreased memory consumption, improved gem synchronization on WSL, easier navigation and working with shared contexts and examples in RSpec, and enhanced Docker integration.

Ruby and Rails

Rails 7: support for turbo-rails completion

RubyMine now supports the basic Rails 7 turbo-rails methods that allow you to write Ruby code faster than ever before.

Completion of field parameters in ActiveRecord methods

Completion of field parameters in ActiveRecord methods

We’ve added code completion support options for some CRUD methods of the ActiveRecord class. RubyMine now suggests completion options for arguments of ActiveRecord methods.

New gutter icons for navigating from create_table calls to models

We’ve added new gutter icons for navigating from models to their corresponding create_table calls in the schema. It is now possible to navigate from create_table calls in schema.rb to related models that use these tables. Open your schema.rb file and use the gutter icons on the left-hand side of the editor to navigate to the related models.

Support for Data.define in Ruby 3.2

Support for Data.define in Ruby 3.2

RubyMine supports work with the define method of the Data class, which was introduced in Ruby 3.2. The IDE now recognizes reader methods generated with Data.define.

Creation of Data instances with square brackets

Creation of Data instances with square brackets

Data.define now allows you to create instances of the Data class using square brackets. RubyMine recognizes these types of instances and displays them when invoking the Type Info action.

Separate settings for spaces around exponents and other operators

Separate settings for spaces around exponents and other operators

The new Pow operators option allows you to set spaces for exponentiation operators and other operators separately. You can configure it from the Spaces tab via Preferences | Editor | Code Style | Ruby.

Minitest “describe” and “it” blocks in the Structure Tool Window

Minitest “describe” and “it” blocks in the Structure Tool Window

Now, in the Structure tool window, you can see your test structure nested under the corresponding method, making it easier to navigate large tests.

New Features and Improvements

Astro language support

Astro language support

Astro support has arrived!

It’s accessible through a new plugin that offers a range of basic features, including syntax highlighting, code completion with automatic imports, refactorings, navigation, intentions, code folding, support for Emmet, and proper formatting.

Tailwind CSS support

Tailwind CSS support

Highly anticipated improvements for Tailwind CSS include support for Tailwind CSS configuration options, such as configuring custom class name completions under the classAttributes option, and even experimental ones like tailwindCSS.experimental.configFile. We’ve also added autocompletion of arbitrary values when using square bracket notations.

New UI

Editor window zoom

Zoom into and out of the RubyMine editor window entirely, increasing or decreasing the size of all UI elements at once. From the main menu, select View | Appearance and adjust the IDE’s scaling. You can also zoom into and out of the editor window using a touchpad or touchscreen.

New Remember size option for each tool window setting

The new layout option allows you to unify the width of the side tool windows or retain the ability to freely adjust their sizes as you customize your layout.

Hidden toolbar in Zen and Distraction Free modes

Hidden toolbar in Zen and Distraction Free modes

The top toolbar is no longer visible in Zen and Distraction Free modes.

Vertical split for tool windows

You can split the tool window area for easy organization. To place a tool window in the lower section, simply drag its icon from the sidebar and drop it below the separator.

Compact Mode

Compact Mode

For a more streamlined experience on smaller screens, RubyMine’s new UI now features Compact Mode. This mode offers a more condensed look with smaller toolbars and window headers, reduced spacing and padding, and smaller icons and buttons.

Project tabs on macOS

Project tabs on macOS

You can now easily switch between projects on macOS using the project tabs displayed under the main toolbar.

Revamped Run widget

Revamped Run widget

We’ve given the Run widget, located at the top of the IDE window, a complete overhaul. The icons are now green, making for a more subdued and visually pleasing appearance, as opposed to the previous design, where the area around the icons was blocked out in color.

Configuration option to set up Actions on Save for new projects

The new configuration setting defines Actions on Save for new projects. You can now specify which actions should be executed upon saving changes in your projects.

Search Improvements

Custom regex-based search and replace inspections

Custom regex-based search and replace inspections

You can now use regular expressions to create your own search and replace inspections. These inspections can be especially useful for highlighting style-based or formatting-based problems.

Search Everywhere is enabled with ML-powered search for classes

Search Everywhere is enabled with ML-powered search for classes

The sorting algorithm powered by machine learning is now the default in the Classes tab, as well as in the Actions and Files tabs. The new, powerful sorting algorithm delivers more precise and relevant search outcomes.

RBS

Display of usage types when renaming RBS symbols

Display of usage types when renaming RBS symbols

RubyMine now shows the usage types of RBS symbols when you rename them.

RSpec

Improved navigation from subject to subject definition

Improved navigation from subject to subject definition

We’ve improved navigation within RSpec.

Using Ctrl+Click on a subject reference navigates you to the closest in-scope value definition.

Run shared_examples_for and shared_context from the gutter

Starting from this release, it’s even easier to work with shared_examples_for and shared_contexts. You can now run them using gutter icons.

Support for running configurations by unique IDs

Support for running configurations by unique IDs

A new option for RSpec configurations allows running tests by line numbers or unique example IDs. For this purpose, we’ve added the new Example IDs/Line number field to the Run/Debug Configuration window.

The field accepts either a single line number or one or more RSpec example IDs.

Fluent interface descriptions formatting for RSpec 3

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

Merged logs from all Docker-compose containers

The Docker-compose node’s Dashboard tab now brings together logs from all of the Docker-compose containers and displays them in a single, centralized location with updates appearing in real time.

Support for Azure Container Registry

Support for Azure Container Registry

Connecting to Azure Container Registry is 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

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.