What's New in RubyMine 2019.2

RubyMine 2019.2 adds support for Rails 6 and Ruby 2.7, improves YARD support and the debugger, and incorporates many platform improvements.


Debugger speed comparison v2019.1 v2019.2

Faster debugger

Our debugger used TracePoint :line to trace the program execution line by line. For v2019.2, we have designed a native extension for MRI that lets the debugger choose at which fragments of code the execution should be suspended, and free the rest of the code from overhead. As a result, we've been able to dramatically speed up the debugger and implement the new features below.

Smart Step Into

Smart Step Into

Previously, if you stumbled across a line with lots of methods in a debug session, RubyMine was only capable to step into the first method in a line. The newly added Smart Step Into lifts this restraint and allows you to step into and investigate every particular method or a block call located on the same line.

Block breakpoints

Block breakpoints

With the new version you can set breakpoints not only at lines but also at blocks. When you click the left gutter to set a breakpoint at a line that contains a block, RubyMine will ask if you want to set a breakpoint at a line, block, or both.

Read Debugging in RubyMine to learn in detail how to debug Ruby and Rails scripts in RubyMine.

Ruby 2.7

Pattern Matching

RubyMine 2019.2 supports Pattern Matching, which was introduced in the first preview of Ruby 2.7 as an experimental feature. The IDE identifies the new syntax and helps you navigate, find usages, and rename the objects.

More about Pattern Matching in Ruby

Numbered block parameters

Numbered block parameters

The new version of RubyMine recognizes the syntax of numbered parameters and shows/finds their usages. This is one more experimental feature of Ruby 2.7 which allows you to assign values in blocks using a parameter number as a default parameter, instead of defining a block variable.

Rails 6

Action Mailbox support

Action Mailbox

RubyMine 2019.2 supports Action Mailbox which will ship with Rails 6. The IDE suggests autocompleting routing methods and callbacks, and navigates between their implementations and usages.

Action Mailbox inspections

We’ve also added a couple of inspections that let you know if you’ve forgotten to add a routing call in ApplicationMailbox and a process method in your mailbox. The latter also offers a quick-fix.

Learn more about how to use Action Mailbox in this detailed GoRails episode.

Enum support

We've added proper code insight support for ActiveRecord::Enum. This includes code autocompletion, navigation, and finding usages for enums’ names and methods. Negative scopes for enums, introduced in Rails 6, are supported as well.


Improved YARD support

Improved YARD support

We’re gradually improving our support for YARD to help you create and manage YARD tags, and get better code autocompletion in RubyMine based on YARD annotations. The new version adds proper type annotation and inspections for @overload and @yieldparam tags.

Read YARD support in RubyMine for a detailed overview of RubyMine’s features and fresh improvements around YARD.

Factory Bot

Rename factories

Rename factories

With v2019.2 you can rename (Shift+F6) factories, sequences, and traits. The IDE finds their definitions and suggests renaming it and all usages, as well as the file name if it matches the factory name.

We've also added factories, sequences, and traits to the File Structure view (Alt+F7) and popup (Ctrl + F12), and added the ability to safely delete them (Refactor | Safe Delete).


Destructuring intentions

New intention actions

The new Propagate to destructuring intention ( Alt-Enter ) allows you to replace an extra variable if possible with another destructuring. To remove a destructuring completely, use the intention action called Replace destructuring with property or index access.

Dynamic usages in Refactoring Preview

Improved Rename refactoring

When you rename a symbol in a JavaScript or TypeScript file, the IDE now groups together dynamic usages and, by default, excludes them from the refactoring. This makes the refactoring more accurate and gives you more control over what exactly should be renamed in the Refactoring Preview tool window.

Vuetify props

Better support for Vue.js component libraries

Code completion for components and their props from Vuetify, BootstrapVue, Quasar, and some other Vue component libraries is now more precise. This was made possible by a new approach we’ve adopted to working with these libraries in the IDE.

Duplicate code inspection

Searching for duplicate code

The new Duplicate code fragment inspection checks your code on the fly and immediately highlights potential duplicates in the editor. It works for JavaScript, TypeScript, CSS, Sass, SCSS, and Less.

See what's new in WebStorm for more of the JavaScript improvements available in RubyMine 2019.2.

Code style

Edit code style configurations

Improved EditorConfig support

With v2019.2 you can maintain different code styles in different parts of your projects by adding multiple .editorconfig files. In addition to the standard EditorConfig options, which have been supported for a long time, you can now use IDE-specific properties that cover all available IDE code style options.

Shell scripts

Shell script editing

Edit Shell scripts

The new version adds support for shell scripts. This includes code completion, quick documentation, textual rename for .sh and .bash files, and run configurations for shell scripts. The IDE also integrates with ShellCheck for linting and shfmt for formatting the code.


.gitignore autocompletion

Autocompletion in .gitignore

In .gitignore files, the IDE now offers code completion suggestions for files and folders. Ctrl-click on the name to jump to this file or folder in the Project tool window. You can also quickly add files to .gitignore from the Project view and Local Changes tab – right-click on it and select Add to .gitignore.

Database tools

Improvements in Database tools – Full-text search

Find data with Full-text Search

Now you can search for data in your databases even if you don’t know where it is located. Right-click the data source that you want to search through and select Full-text Search (Ctrl+Alt+Shift+F). The results of your query will be filtered to show only those strings in which the data is found.

See what’s new in DataGrip for the other database improvements that are also available in RubyMine 2019.2.

Other improvements

  • Standard gem support
  • Support for Action Text
  • Support for Cucumber 4
  • Minor UI improvements in the Version Control tool window