What’s New in RubyMine 2020.3

Git staging support, improved tab management in the editor, interactive hints and inline watches in the debugger, and many more new features for the latest version of Ruby, Rails, the terminal, code coverage, and database tools.

Code Editor

Split the editor, drag and drop tabs

We’ve made it more convenient to work with multiple tabs side by side. You can now split the editor when opening your file by pressing Shift+Enter. This works for files in the Project view and in the Search Everywhere popup. You can also drag and drop file tabs to split the editor vertically or horizontally, and move tabs between the splits.

Pinned tabs improvements

Pinned tabs improvements

Pinned tabs now stick to the left side of the tab bar. You can also keep all your pinned tabs in one row. To do so, go to Preferences / Settings | Editor | General | Editor Tabs and check the Show pinned tabs in a separate row option. There’s also a new icon to indicate when a tab is pinned. Clicking on it unpins the file.

Improved Markdown editing and preview

Improved Markdown editing and preview

With the Markdown tool, you can now format your Markdown files using Ctrl+Alt+L.

To customize the Markdown format, go to Preferences / Settings | Editor | Code Style | Markdown. The Auto-Scroll Preview button in the top-right corner of the editor allows you to synchronize scrolling of the preview pane and the editor. We’ve also added support for Mermaid.js.

User experience

New Welcome screen

New Welcome screen

RubyMine 2020.3 comes with a redesigned Welcome screen. Now you can access and arrange your projects in the Projects tab, set up the IDE interface in the Customize tab, manage plugins in the Plugins tab, and access learning resources in the Learn RubyMine tab.

IDE theme synced with OS settings

IDE theme synced with OS settings

RubyMine can now synchronize its theme with your OS. Select the Sync with OS option in Preferences / Settings | Appearance & Behavior | Appearance | Theme, and click the gear to select your preferred theme. Your IDE will automatically switch to the light or dark theme, depending on your OS preferences.

Reader mode

Reader mode

This mode renders read-only files and files from external libraries into a more readable format. You can turn it on and off by clicking on the book icon in the top right corner of the editor. To customize the Reader mode settings, go to Preferences / Settings | Editor | Reader Mode.

LightEdit improvements

LightEdit improvements

We’ve added the -e (--edit) option to open files in LightEdit mode from the command line. When you open RubyMine from the command line, type -e followed by the name of the file you want to open, or just run -e without a file name to reopen your previous session.

Learn more

Quick-fixes for typos

Quick-fixes for typos

RubyMine 2020.3 makes it easier to keep your text free from typos. Suggested fixes are now shown directly in the Alt+Enter menu, just like quick-fixes for code.

We’ve also added a new Transpose action that flips the current character with the one that follows it.

Search Everywhere updates

Search Everywhere updates

The Search Everywhere dialog now has a new Git tab. You can now look up branches, commit hashes and messages, and tags. You can also perform simple mathematical calculations right in the search field.

Preview files

Preview files

To quickly find files you are looking for, you can now use file preview. To preview a file, select it in the Project view and press Space. Alternatively, you can set up the IDE to immediately show a preview when a file is selected. To enable this feature, click the gear icon in the Project view and select both Enable Preview Tab and Open Files with Single Click.

Ruby

Support for the upcoming Ruby 3.0 release

Support for the upcoming Ruby 3.0 release

RubyMine 2020.3 features basic support for the new syntax that comes with Ruby 3.0 preview. You can already try out most of the new language features, for example, endless method definitions.

Please note that support for Ruby 3.0 is still a work in progress. Features like code assistance and RBS support will be properly implemented after the Ruby 3.0 release version is out. We are keeping a close eye on its state, and plan to fully support it in our 2021 releases.

Terminal uses the Ruby version specified for the project

Terminal uses the Ruby version specified for the project

When you work on multiple projects, they might be using different versions of Ruby. RubyMine’s built-in Terminal emulator now uses the version of Ruby that is selected for the current project. It also specifies which exact version is being used when you launch a terminal instance.

Support for interpreters with custom environment

Support for interpreters with custom environment

RubyMine now allows you to configure custom environments for your projects using tools like shadowenv or direnv. This comes in handy when you have multiple projects that each need different environment variables. Any Ruby commands run with RubyMine will be executed using the environment variables provided.

Learn more

Pry console support

Pry console support

You can now use Pry instead of IRB in RubyMine. Make sure that you have the pry gem installed in your project, then go to Tools | Run Pry to launch the console.

Rails

Improved support for Rails routing

Improved support for Rails routing

We’ve made working with routes.rb effortless.
Use Ctrl+Alt+Home to quickly navigate between a route in routes.rb and its related models, views, and controllers. Ctrl+click on a method in routes.rb to jump to the related method in a controller.

We’ve improved completion for routes.rb. For example, it now works for all Match and HTTP helpers (such as get, post, put, etc.), resources, namespace, and scope.

Support for structure.sql

Support for structure.sql

RubyMine 2020.3 adds structure.sql support for projects that use it instead of a schema.rb file. Now you can use autocompletion for models that rely on structure.sql. You can also navigate between your Rails entities and structure.sql using Ctrl+Alt+Home.

Version control

Git staging support

Git staging support

RubyMine now supports staging changes directly from the IDE. You can stage and unstage files by clicking the + and - icons in the Commit view. You can also stage changes from the gutter or in the Diff view.

To enable this feature, go to Preferences / Settings | Version Control | Git and select the Enable staging area checkbox.

Learn more

Rearranged VCS menu

Rearranged VCS menu

We have renamed and rearranged the version control actions in the main menu to make the most common VCS operations easier to access. For example, if your project only uses Git, the VCS menu will look like this:

Run Configurations

Store and share run/debug configuration templates

Store and share run/debug configuration templates

You can now share run configurations with your teammates using a version control system.

Run configurations can now be saved as XML files and added to a VCS. To do this, go to Run | Edit Configurations, select the configuration you want to share, check the Store as a project file option, and click Apply.

Learn more

Tests

Сode coverage for branches and subprocesses

In projects that use simplecov for code coverage analysis, RubyMine now shows information about the coverage of branches and subprocesses.

Learn more

FactoryBot improvements

You can now navigate between a factory and its related entities with Ctrl+Alt+Home. Code completion now suggests model attributes for Factory Bot strategies like build and create.

Debugger

Interactive hints

Interactive hints

Debug mode now has interactive inline hints for variables. You can click these hints to change the value of a variable field. To do so, click Set Value, change the value of the field, and press Enter.

Inline watches

Inline watches

RubyMine 2020.3 adds a new type of watch expression. These expressions will be associated with a particular context and shown right inside the editor. You can add them using the inline hint: open a hint, and click Add Inline Watch. You can manage your inline watches in a new Inline Watches node in the Variables tab of the Debug tool window.

Database tools

Couchbase support

Couchbase support

RubyMine 2020.3 supports one more database: Couchbase! Please note that this includes support for the Couchbase Query service, not the Couchbase Analytics service.

SQL for MongoDB

SQL for MongoDB

You can now use SQL to query MongoDB databases.

Code With Me

Support for remote collaborative development and pair programming

Support for remote collaborative development and pair programming

RubyMine 2020.3 supports Code With Me (EAP), the new tool from JetBrains for remote collaborative development and pair programming. With it, you can share the project you currently have open in your IDE with others and work on it together in real time.

Please note that Code With Me is still in active development, and has known issues. Feel free to report any issues you encounter, and vote for fixes and features you want to have!

Learn more

Other improvements

  • We’ve updated several of RubyMine’s code style settings to match the default style of RuboCop.
  • When you open a file from the Project view, the focus is automatically placed on the Editor to allow you to start working with your code right away.
  • The two most popular buttons – Commit and Commit and Push… – are now displayed on the Commit screen.
  • Patches are now created in Git format by default, instead of the format of the VCS that is used in the project.
  • RubyMine will automatically correct disallowed symbols in branch names.
  • You can now see all the actions related to the current branch in its context menu.
  • You can now configure a custom template that creates several files simultaneously.
  • You can now export an HTTP request to cURL.
  • We’ve updated the format of HTTP requests. To convert existing HTTP requests to the new format, select an HTTP request in the Project view, then in the context menu select Convert Legacy REST Client File to New Format.
  • Improved Swagger support, including support for Swagger Hub, external references, and various code insight improvements.
  • Improved Kubernetes support .