What’s New in RubyMine 2024.2

Download

Free 30-day trial available

Rails

Completion for Kamal configuration files

RubyMine now provides code completion for Kamal configuration files. When editing deploy.yaml and .env files, you’ll see completion suggestions for Kamal-specific properties.

Code insight for rate limiting

Rails 8 introduces the rate_limit function for use with controllers. To allow you to take advantage of this new feature, we’ve implemented code insight for it, including code highlighting and completion.

Code insight for browser guards

In RubyMine 2024.2, we’ve added code insight for the browser guard method. This includes highlighting for the allow_browser function, as well as completion for browser names and only arguments.

Model validations and callbacks in the Rails Structure view

You can view model validations and callbacks in the Structure view and hide them if needed. Additionally, callbacks are shown for certain syntax, such as uses of the after_create keyword or method.

Stimulus

RubyMine 2024.2 offers built-in support for Stimulus, a JavaScript framework that integrates with static HTML and DOM elements. The support includes code completion, navigation, and the Rename refactoring. The Stimulus plugin is bundled with RubyMine and works in .erb files. The stimulus-rails gem is shipped by default with Rails starting from version 7.

Ruby

Suggestion to switch the Ruby SDK on project opening

When you open your project, RubyMine checks that the configured Ruby SDK matches the configuration files – .rvmrc for RVM SDKs; .ruby-version, .ruby-gemset, or .rbenv-version for rbenv SDKs; .tool-versions for asdf SDKs; or .versions.conf for RVM SDKs.

RubyMine suggests selecting a relevant SDK if one that matches the module configuration files is already installed.

Ruby installation from the SDK not found notification

If you are using rbenv, rvm, or asdf to manage your Ruby versions, RubyMine will suggest installing the appropriate version of the Ruby SDK based on the configuration files in your project (for example, .rvmrc, .ruby-version, or .rbenv-version). RubyMine checks the selected Ruby SDK and configuration files on project opening.

AI Assistant

Inline AI-based completion at the end of lines

AI Assistant’s completion feature can now be activated at the end of lines with content, meaning it works after . , ::, and after binary expressions.

Better multiline code completion

The prompts for multiline code completion now request specific technical details, allowing it to provide more relevant suggestions. These details include the Ruby version in use, whether you’re working in a Rails or Gem project, the test framework in use, the name of the current file, and the five most popular gems in the project.

Improved Rails context

AI Assistant works more effectively with the context of Rails applications. For example, when you request a code explanation for a controller, AI Assistant now takes the corresponding model and routes into account.

Features and improvements

Completion for Ruby-related commands in the new terminal

The new terminal provides automatic completion for commands, options, subcommands, arguments, and more. In RubyMine 2024.2, we’ve added completion for the following commands: ruby, rails, rake, bundle, rbenv, irb, pry, rbs, and rspec.

Markdown rendering in reader mode and quick documentation

Because Rails 8 uses Markdown documentation instead of RDoc, we’ve made Markdown rendering available in reader mode and quick documentation popups. This functionality will work if a file has the # :markup: markdown directive at the beginning, or if the project root has an .rdoc_options file with the line markup: markdown in it.

Custom RuboCop configurations

In Settings | Tools | RuboCop, you can now select a custom RuboCop configuration file. RubyMine passes the path to your configuration file as a RuboCop command argument with the --config option, which ensures it even works with remote SDKs.

If you don’t specify a file, RubyMine will use either .rubocop.yaml or the default settings if .rubocop.yaml is not found in your project.

Option to adjust the spaces inside array literals

A new formatter setting in RubyMine allows you to control the spaces inside array literals. This new setting is designed to align RubyMine with the behavior of RuboCop and can be accessed from Settings | Editor | Code Style | Ruby | Spaces | Within array literals.

Bun as a JavaScript framework for Rails projects

When creating a new Rails application, you can now specify Bun as the JavaScript framework. Please note that this feature is available only if your Rails version is 7.1.0.beta1 or later.

Support for RBS function types with the untyped parameter

With the introduction of RBS 3.5, RubyMine now supports the declaration of methods with untyped parameters. It doesn't return redundant syntax errors for such methods; instead, it correctly provides inlay hints for them.

RBS optional record keys

RubyMine now parses and recognizes optional fields with different types of keys. Additionally, we’ve improved subtype checks.

New UI as the default

We enabled the new UI for all RubyMine users in version 2024.2. The new UI reduces visual clutter, ensuring easy access to essential features while gradually revealing more advanced functionality as needed. It is clean and modern, providing bigger, easier-to-use controls, a consistent color palette, light and legible icons, increased contrast, and better accents.

Localization

Chinese, Korean, and Japanese languages out of the box

You no longer need to install language support plugins if you use your IDE in Chinese, Korean, or Japanese, as these language packages come bundled in RubyMine 2024.2.

To update your IDE language, navigate to Settings | Appearance & Behavior | System Settings | Language and Region and select your preferred language from the Language list.

Download

Free 30-day trial available