Hello, Habr! The other day we released
RubyMine 2017.2 , a new version of our IDE for Ruby and Rails, and we hasten to tell you about the new product.

- Docker compose
- Debugging Applications in Docker Compose
- RuboCop Auto Corrections
- “Breadcrumbs” for Ruby
- Javascript support improvements
- New to VCS
- User interface
- Other improvements
And now in order:
')
Docker compose
In the last release,
we announced Docker support. However, users did not have enough support for Docker Compose, which we successfully added to the new version. Open the Docker project in RubyMine, and in the settings, install Docker Compose as the remote SDK (Preferences / Settings | Languages ​​& Frameworks | Ruby SDK and Gems | New remote | Docker Compose). Now you can work with applications in containers, using all the functionality of the IDE from code completion to debugging. Learn more about installing on a
blog .

Debugging Applications in Docker Compose
Debugging deserves a separate announcement, as it was very much awaited. The RubyMine debugger can now be used for applications in containers through Docker and Docker Compose. To do this, after setting up Docker / Compose in the
Gemfile
you need to add the
ruby-debug-ide
and
debase
and install them via the
docker-compose build
, launched directly from the
Gemfile
editor instead of
bundle install
. This is also more in the
blog .

RuboCop Auto Corrections
In the previous version, RubyMine learned how to analyze code using RuboCop. We expanded this functionality by adding the ability to quickly fix the code through RuboCop right in the editor. It is quite convenient:

Find the code highlighted by the rubocop inspection as an error, press
Alt + Enter , and voila, the errors are fixed in the entire file.
“Breadcrumbs” for Ruby
We've added Ruby's bread crumbs. A small but quite useful detail. Shows the current context such as modules, classes, methods, blocks, and in RSpec files the names of groups and examples.

By the way, you'll also find bread crumbs in the javascript files. And for HTML, XML and YAML we updated their design.
Javascript support improvements
Among the improvements for JavaScript are the following:
- New refactoring Move symbol allows you to accurately transfer classes, global functions and variables in ES6 modules from one JavaScript / TypeScript file to another.
- Auto-completion and navigation in JavaScript code now takes into account the project configuration (for example, aliases), described in
webpack.config.js
.
- The code inside the classes in JavaScript and TypeScript files is now easy to organize using the new action Rearrange code and the Code Style settings - Arrangement and Blank lines.
- If you use ESLint to check the code formatting, RubyMine will offer to import some rules from
.eslintrc
into the formatting settings in the IDE and will apply them automatically when formatting.
- For Sass and SCSS selectors created via an ampersand (&), autocompletion in HTML files and navigation to the selector itself now works.
New to VCS
Two new actions appeared in the Git-log: Revert and Reword.
Revert - the implementation of
git revert
to IDE, which allows you to
git revert
selected commits.

Reword simply allows you to rename any commits for which Push has not yet been made (not just the last ones).

We have refined the settings of the Commit dialog and moved them to a separate tab, Commit Dialog (Preferences / Settings | Version Control | Commit Dialog). Now it is possible to control the separation of the header and the contents of the commit with an empty string, as well as specify the maximum length of the string.

If you use JetBrains IDE, then you know about the possibility to temporarily postpone the current changes, Shelve. This is useful when, for example, you urgently need to switch to another task, and put the current changes “on the shelf” so that they do not interfere with the implementation of an urgent task.
In this release, a preview appeared in the Shelf tab, a preview showing the changes made to the selected file, as well as the ability to compare the “delayed” version with the current one.

User interface
Last time we added a preview in Find in Path. Now there is also Gutter, the panel to the left of the editor, containing line numbers, navigation icons, and indicators of changes made to the file.

By the way, we also removed duplicate rows from the search results. Now all repetitive matching results are highlighted on one line at once.
Other improvements
- Improvements in database tools.
- Code analysis and autocorrection of RuboCop in scratch files.
- A number of fixes to improve IDE performance.
- Ability to create patches in the clipboard.
Download the new version from the
What's new page. For new users there is a 30-day free trial period. For companies, we are also ready to provide an
extended trial period (90 days).
Share your thoughts with us in the comments, report bugs to the
tracker and join us on
Slack !