What’s New in RubyMine 2023.2

RubyMine 2023.2 includes our new AI Assistant feature, increased Turbo-Rails and Import Maps support, improved performance, LSP API support for plugin developers, and increased functionality for RBS and Vue.

Ruby and Rails

Turbo-Rails support

This release brings updates to Turbo code completion in Ruby on Rails projects. It is now possible to use code completion for Turbo streams in controllers and views and for broadcasting Turbo streams from models. Completion for Turbo frames in views is also available.

Import Maps support

Users can now use importmap commands in Run Anything, autocomplete module specifiers and file paths in the pin and pin_all_from methods, and navigate between imported modules and their usages.

Syntax highlighting in inspection descriptions

Syntax highlighting in inspection descriptions

Now you can enjoy syntax highlighting for code samples, making it easier to understand the purpose of each inspection.

Code insight for Rails store accessors

Code insight for Rails store accessors

We have added code insight for ActiveRecord::Store accessors. Enjoy code completion and navigation for accessors, dirty tracking methods, methods to access the changes made during the last save, and validations on accessors.

Custom type renderers in the debugger

Custom type renderers in the debugger

You can customize the display formats of different objects in the Debug tool window. This functionality is achieved through the use of renderers, which are unique configurations associated with specific types that dictate how instances of those types are presented in the Debug tool window. By utilizing custom expressions, these renderers offer a high level of flexibility for displaying data.

AI Assistant Limited access

AI Chat

You can ask questions, discuss tasks, or collaborate with our AI Assistant. The IDE will provide information that is relevant to your project, including details specific to the programming languages and technologies used in it. Once you’re satisfied with the results, you can insert the AI-generated code into the editor using the Insert Snippet at Caret function or by simply copying and pasting it.

Commit message generation

Commit message generation

The Commit Changes dialog now has a Generate Commit Message with AI Assistant button. Click it to send your change differentials to the LLM, which will then generate a descriptive commit message summarizing your modifications.

Documentation generation with AI Assistant

To generate documentation for a declaration using an LLM, simply access the AI Actions submenu and choose the Write documentation action. By selecting this option, the IDE will generate the static portion of the comment, while the AI will take care of generating the actual documentation text on your behalf.

New UI

New hamburger menu for Windows and Linux

New hamburger menu for Windows and Linux

We’ve refined the behavior of the hamburger menu in the main toolbar for Windows and Linux. The menu elements will appear horizontally over the toolbar and the menu can be converted into a separate toolbar.

Updated window controls on macOS

Window controls are now displayed right in the main toolbar and not in the floating bar as before.

Single-click navigation between project directories

In the Project view, you can now use the Open Directories with Single Click option, enhancing the speed and responsiveness of expanding and collapsing project folders. To access this option, simply click on the three dots icon and select it from the drop-down menu.

Light theme with light header in the new UI

Light theme with light header in the new UI

A new option called Light with Light Header provides a consistent and cohesive visual experience. This option ensures that window headers, tooltips, and notification balloons all have matching light colors, further refining the overall aesthetic.

Colored project headers in the new UI

Colored project headers in the new UI

Сolored project headers are designed to streamline navigation among multiple open projects. You can now assign a distinct color and icon to each project, providing a visual aid for distinguishing them within your workspace.

RBS

Support for renaming typos

Support for renaming typos

We have implemented a new quick-fix action that allows you to replace typos in symbol names with suggested corrections.

Class and module aliases formatting

Class and module aliases formatting

Formatting functionality is now available for class and module aliases.

Naming convention inspections

Naming convention inspections

Naming convention inspections for interfaces, type aliases, and type variables are now available.

Сode insight for use syntax

Сode insight for use syntax

Code insight functionality is now available for use syntax in RBS.

Annotations and inspections for use directives

Annotations and inspections for use directives

We’ve added annotations and inspections for directives when they are misused.

Use directives formatting

Use directives formatting

RubyMine ensures that formatting of use directives is consistent and follows established standards.

Code insight for RBS class and module aliases

Code insight for RBS class and module aliases

Code insight, navigation, type inference, and rename refactoring are now available for class and module aliases.

Performance

Improved gem sync for Docker and docker-compose SDKs

Improved gem sync for Docker and docker-compose SDKs

We’ve optimized gem synchronization for Docker and docker-compose SDKs. We now only use the Docker Engine API to copy gems from both an image and a running container.

Updated lexer

We gave the RubyMine lexer a major overhaul, which dramatically increased its lexing and parsing speed.

Features and Improvements

LSP API support for plugin developers

LSP API support encompasses functionalities such as error and warning highlighting, quick-fixes, code completion, and navigation to declarations. We also plan to introduce additional features in the near future.

Updated code folding settings

We’ve updated the default code folding options. Now they are:

  • Code fences
  • Front matter
  • Link destinations
  • Table of Contents
  • Tables
Vue Language Server support

Vue Language Server support

Initial Vue Language Server (Volar) support has landed in RubyMine to provide more accurate error detection. By default, Volar will be used for TypeScript v5.0 and higher, with our own implementation used for earlier versions.

User Experience

Pinned run configurations in the Run widget

Pinned run configurations in the Run widget

To enhance the experience of managing multiple run configurations, we have made it possible to pin your preferred configurations in the Run widget.

File sorting by modification time in the Project view

File sorting by modification time in the Project view

You can now arrange files by modification time in the Project view. RubyMine will now automatically arrange your files based on their modification time.

Improved main toolbar customization

Improved main toolbar customization

You can now conveniently add actions to the toolbar using a drop-down menu.

New live templates for React hooks

New live templates for React hooks

Explore the new collection of live templates and enjoy a more efficient development experience with React hooks.