What's new in RubyMine

2018.2 (July 26)

RubyMine 2018.2, the second major update for RubyMine this year, is now available for your review! Check out the new features below and give it a try. Don't forget to share your feedback!

Code Insight

Block element completion

Better code insight

The upgraded Ruby type inference makes the IDE significantly better at understanding types of elements in blocks, arrays, and hashes, which greatly improves the code autocompletion and navigation on the whole.

Find more details on the blog

Polymorphic associations

RubyMine now correctly recognizes and navigates (Ctrl/Cmd + Click) to definitions and usages of models that use polymorphic associations.

Autocompletion for abstract model names also becomes available if a polymorphic association is defined in the project.

Find more details on the blog

Version managers

Version managers

chruby, asdf, and remote version managers

The new release features chruby and asdf support. It makes all the version managers (RVM, rbenv, asdf, and chruby) available in WSL, Docker, as well as in SSH and other remote connections.

You will also discover that rbenv-vars and other plugins work correctly in the new version.

Find more details on the blog

Tests

Rerun failed tests

Now after you’ve run all tests in a file or directory, RubyMine provides an option to rerun the failed tests only, instead of rerunning all the tests. This frees you from manually picking up and investigating every failed test.

The new feature also works with presets like rake test and rake spec.

YAML

YAML code formatter

RubyMine now allows you to reformat YAML code. Select Code | Reformat Code, or press ⌥⌘L / Ctrl+Alt+L.

You can also choose how to fold and indent sequences, align values, and apply other code style options in Preferences / Settings | Editor | Code Style | YAML.

Find more details on the blog

Code insight for anchors and aliases

You can now autocomplete and find usages of aliases when an anchor is defined, as well as navigate to the anchor and back.

Inline renaming for aliases and anchors is also available now. The IDE will warn you if you try to provide a name that conflicts with another existing anchor. It will not let you rename anchors using characters that aren’t allowed by the standard.

A number of basic YAML code inspections were added as well.

Find more details on the blog

More YAML improvements

With this release you can autocomplete YAML data structures that have a JSON Schema file. The IDE automatically traces schemas from schemastore, but also provides a way to manually add and configure JSON schema files in the settings.

Finally, you can now quickly copy & paste a key path to a value in .yml files instead of typing out the full path.

Find more details on the blog

Debugger

Attach to remotely running processes

Attach to remote processes

Starting with this release you can attach the debugger to remotely running processes. Set up an SSH connection (Preferences/Settings | Ruby SDK and Gems | New Remote | SSH Credentials), and troubleshoot the app without restarting or any additional configurations.

Learn how to attach to remote processes with the debugger

JavaScript

JavaScript and Typescript

You will discover new intentions (Alt+Enter) for JavaScript and TypeScript, such as Implement interface, Create derived class, Iterate with 'for..of', and more.

Also, the IDE now supports all new features from TypeScript 2.9 and the upcoming TypeScript 3.0 releases.

Frameworks

You can now refactor React components with Refactor | Extract Component, and convert React class components into functional components and back.

In addition, code completion is now available for events and event modifiers in Vue templates.

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

Git

Better detection of merge conflicts

Better detection of merge conflicts

Now it’s easier to find files with merge conflicts as the IDE groups such files under a new Merge Conflicts node. Click the Resolve action link to open the Files Merged with Conflicts dialog.

Browse repository at revision

Browse repository at revision

There's a handy new Browse Repository at Revision action for exploring the state of the repository based on any given revision. Open the context menu in the Log or from the file history to access the required repository state in the Project Tool Window.

Skip the Push dialog

Skip the Push dialog

It is now possible to skip the Push dialog while using the Commit and Push action, or only show it when pushing to protected branches. Customize this behavior in Preferences / Settings | Version Control | Git.

Multiple GitHub accounts

Multiple GitHub accounts

You can configure as many GitHub accounts as you need (Preferences | Version Control | GitHub), and set the default GitHub account for each of your projects.

User Interface

Touch bar support

MacBook Touch Bar support

Run, build, and debug your app, commit changes, and update the project right from the Touch Bar.

All Touch Bar contexts can be customized in Preferences / Settings | Appearance & Behavior | Menus and Toolbars.

Dark window headers

Dark window headers and new icons

Make RubyMine title bars darker on macOS. Go to Preferences | Appearance & Behavior | Appearance and select Use dark window headers.

RubyMine 2018.2 also features a number of brand new icons, designed to provide a clearer and more consistent look & feel.

2018.1 (Apr 4)

Smarter and Faster

Speedy RubyMine

Speedy RubyMine

The new static analysis core engine makes the IDE significantly faster. You will discover that code autocompletion suggestions, code inspection (Code | Inspect Code), and other features related to code analysis now respond and complete faster.

Find more details on the blog

Run anything

Improved Code Insight

Parsing routines are now unified for arguments in method definitions and block calls. This improved Code Insight for block variables: for instance, a block passed as a parameter is now properly resolved from the receiver block’s body.

Find more details on the blog

Run anything

Run anything

Run anything

RubyMine 2018.1 introduces a new Run anything action (double-press Ctrl) — a unified and instant way to run any command in RubyMine, such as rake tasks, rails server, generators, configurations, or even terminal commands. Not only will the new action run a command or script, but it will also save and suggest it later in the Recent commands or Temporary Configurations dropdown.

Find more details on the blog

Debug anything

Debug anything

Moreover, you can fire up the debugger from within the same action. Just press Ctrl twice to call Run anything, and then hold Shift to run a debug configuration.

Postfix code completion

Postfix code completion

Postfix completion for Ruby and Rails

The newly added postfix code completion lets you transform an existing expression without the need to move your caret about in the code to reverse, alter, or supplement a statement.

As you’d expect, you can locate the whole list of postfix templates with examples in the settings (Preferences / Settings | Editor | General | Postfix Completion), and turn off the ones you don’t use.

Find more details on the blog

Markdown

Inline diagrams in Markdown

Inline diagrams in Markdown

Markdown preview now renders inline diagrams! Insert puml (a special code snippet used by the IDE) before your diagram code in an .md file and RubyMine will properly identify the syntax and display the diagram in the preview pane.

Find more details on the blog

Debugger

Exception breakpoints in Debugger

Exception breakpoints

RubyMine’s debugger now provides a more user-friendly way to set up exception breakpoints that will suspend execution when a certain type of exception is raised. Find and enable this option in Run | View Breakpoints.

ыегаа
Add an exception

Configure exceptions

If you don’t want the debugger to stop at every exception raised, hit a plus button and choose which types of exceptions should be triggered.

Find more details on the blog

JavaScript

TypeScript improvements

TypeScript improvements

The new version supports the latest TypeScript features, improves the Implement Members action, and adds a new Surround with type guard quick-fix for unresolved properties. The IDE also recognizes TypeScript configuration file names other than tsconfig.json.

Extract Vue component

Extract a Vue component

Create a new Vue component from an existing one, without copy and paste – select the part of the template and use Refactor | Extract or press Alt-Enter and select Extract Vue Component.

The IDE will create a new single-file component, add an import for it, and pass all the data and methods to it with props.

CSS improvements

CSS improvements

Cmd/Ctrl-click on the class name in HTML now suggests navigating not only to its declaration in the compiled CSS file linked in this HTML file, but also to the Sass, SCSS, or Less source.

In HTML, code completion suggests classes and ids from all of the style sheets if there are no matching symbols in the linked CSS file.

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

Version Control

Partial Git commits

Partial Git commits

The new release features the highly-desired partial git commits. This new option allows you to include code chunks into a commit using the check-boxes in the Diff pane of the Commit Changes dialog.

Moreover, you can associate the code chunks with a changelist, and track them separately.

Find more details on the blog

More Git actions

More Git actions

We've also added three new actions to make it easier to use the rebasing procedure from the IDE: Abort Rebase, Continue Rebase, and Skip Commit. Call the new actions from the handy Git Branches pop-up.

Find more details on the blog

Other improvements:

  • New Open in terminal action. Read more.
  • Navigate through identifier occurrences. Read more.
  • Comment out HTML and Ruby in .html.erb. Read more.
  • The navigation bar is now enabled dy default. Read more.
  • IDE Settings Sync plugin. Read more.
  • By default RubyMine now completes current statements on pressing Enter.
  • Improved documentation UI.
2017.3 (Nov 29)

A better IDE

Better performance

Better performance

This release has significant performance improvements that the team have been working on the whole year. To put it in a nutshell, the IDE has become faster, which is especially easy to see when RubyMine works at full blast. Go to Code | Inspect Code to run it for your whole project and see for yourself.

Find more details on the blog

Better
                                 resolution

Better resolution

Navigate to Declaration, one of RubyMine's most beloved and used features, has become even better! We've eliminated bottlenecks that might have prevented you from jumping to external keywords like callbacks and responders. Update now to see the rest of the resolution improvements no other editor can offer.

Better Code Insight

Better Code Insight

Code Insight features have been significantly reworked. In particular, RubyMine has become much better at mapping declared method arguments with the given ones.

Not only that, but some built-in Inspections and Intentions have been fixed, making the IDE even more robust.

Run v2017.3 and inspect any particular errors, and fix them in bulk across the whole project.

Find more details on the blog

Support
                                  for complex projects

Better support for complex projects

Another highlight of the new RubyMine improvements is that now there is better support for applications with nested projects, like Rails Event Store. For these types of applications, the IDE detects the projects located within the app and their own Gemfiles and allows you to install and resolve the required dependencies.

Please note, your feedback is indispensable for us to further improve the applications with complex architecture.

WSL

Windows subsystem for Linux

Linux subsystem for Windows

RubyMine 2017.3 features Windows Bash Support! We encourage our Windows users to try out WSL in RubyMine to get rid of any painful configs on Windows, and exploit the full power of the IDE.

Follow this tutorial to install WSL, and then add it as a remote SDK in RubyMine (Preferences / Settings | Languages & Frameworks | Ruby SDK and Gems | New remote).

Refactoring

Extract method to
                                      private

Extract methods to private and protected

Extracting methods with RubyMine is a piece of cake, but now it's even sweeter. With this release you can extract methods (Refactor | Extract) to a private, protected, or even public section if you want.

Find more details on the blog

RuboCop

Rubocop autocorrect
                                      options

Autocorrect by offense class or cop department

Starting from now, RubyMine's RuboCop in-editor autocorrections outperform any other alternative. With a simple Alt+Enter you can autocorrect the whole file or fix a specific cop department or an offense class.

Together with RubyMine's respect for your rubocop.yml configs, this makes the IDE your personal code style censor.

Find more details on the blog

Code style

Method indentation and spaces around operators

You asked us to add an ability to indent private and protected methods, and now you got it! Find these options in Editor | Code style | Ruby and reformat your methods' indentation the way you want (Code | Reformat code).

In addition, you can now choose which operators should be wrapped with space, and which kept as is. The formatter will follow your choice.

Find more details on the blog

Parameter
                            Name Hints

Parameter name hints improved

Parameter name hints have become much cannier: you can now configure them to be displayed for literals only, as well as turn them off for excessive cases, e.g. when the given arguments are self-explanatory.

Moreover, the new Show implicit param grouping option will wrap all the optional values into the improvised array for better visibility.

Find the new settings in Preferences / Settings | Editor | General | Appearance.

Find more details on the blog

Puppet

Embedded Puppet template syntax

DevOps is the future and Puppet doesn't rest on its laurels – nor does RubyMine! The new release brings support for the EPP template syntax.

Not only does the IDE now recognize the original EPP syntax, but it also correctly autocompletes and navigates from templates to manifests and back.

On top of that, Rename Refactoring works for variables and parameters, and you can Find Usages of your template files in seconds.

Debugger

Trace to_s eval
                                               with the debugger

Trace to_s evaluation

The new Trace to_s evaluation option detects costly operations and throws a timeout message, saving you time during the debugging session.

Find it in Preferences / Settings | Build, Execution, Deployment | Debugger and check it out for yourself.

REST Client

New REST Client

New REST client

This release introduces a new way to test APIs from the IDE. Now you can write HTTP requests in a .http file and then quickly run them with the icons on the editor gutter.

JavaScript

Better code completion,
documentation, CSS, and Vue.js

Code completion and parameter info for the standard JavaScript objects, methods, and Web APIs have all been improved, thanks to the TypeScript declaration files. Also, the documentation available via F1 now includes a brief description of the methods.

The Vue.js support features, completion and navigation to the definition, now work for Vue props, properties in the data object, computed properties, and methods. You will also find a collection of code snippets for Vue!

Code completion for CSS properties and values has become more precise, with the previously missing completion suggestions added for values with transform, transition, and pointer-events properties.

Version Control

Interactively Rebase from Here, workspaces for branches, and more

The Log viewer now offers an Interactively Rebase from Here action, which can help you pick, edit, skip, squash, reword, and fixup commits through a convenient UI dialog.

Now when you switch between branches, the IDE preserves your workspace: the opened files, the current run configuration, and the breakpoints.

Finally, RubyMine now shows the files which were changed by merge commits, even if they differ from one parent. Not only that, but the IDE also displays a 3-panel Diff for the merge conflicts.

Database tools

Managing schema, SQL generator, grouping data sources, and more

The Schemas node in the database tree has been replaced with a hover option, which shows the number of schemas currently displayed in the tree. Click on it to add or hide schemas.

You can now use the SQL generator to generate DDL scripts with options. Go to Context xmenu | SQL Scripts | SQL Generator and get the generated DDL of any type of object (table, schema, procedure) or even several objects simultaneously.

Also, we’ve added the following SSH improvements:

  • Reading OpenSSH config files (~/.ssh/config и /etc/ssh/ssh_config).
  • Showing dialogue for a One Time Password.
  • Using Ssh-agent and Pageant authentication.

Finally, the long-awaited ability to group data sources is available in this release.

Other improvements: