Features

RubyMine is an integrated development environment that helps you be more productive in every aspect of Ruby/Rails projects development – from writing and debugging code to testing and deploying a completed application. This section will give you a brief overview of some of the most essential features available in RubyMine.

Smart editor

Write error-free code faster with smart, type-aware code completion, intelligent code inspections, live templates, and intention actions.

Code completion

Code completion

Code faster with autocompletion. It works as you type, suggesting a list of matching variables, methods, and keywords.

Completion works for Ruby and Rails, JavaScript and CoffeeScript, ERB, HAML, CSS, and Sass.

Learn more

Refactoring

Refactoring

Refactor your code with the fast and safe rename and delete refactoring. You can perform all kinds of refactorings: extract variables, parameters, methods or superclasses, introduce constants, and more.

All the refactorings are Ruby on Rails aware, and renaming a controller will also rename the related helper, views, and tests.

Learn more

Code styling and formatting

Code styling and formatting

Configure and use a consistent code style for any language. Set the formatting for indents, spaces, aligning rules, and so forth, and share it with your teammates.

RubyMine automatically applies the configured code style as you write, or it can reformat whole files all at once.

Learn more

Documenting code

Documenting code

View documentation in a popup, create missing YARD tags using intention actions, and check their validity.

RubyMine utilizes YARD annotations for better code insight, allowing it to suggest relevant results in code completion and parameter hints for methods.

Learn more

Live templates

Live templates

Live templates (aka Code snippets) allow you to type less when you use the most common pattern structures in your code. Customize the existing templates and create your own.

Learn more

Code inspections and quick-fixes

Code inspections and quick-fixes

You’ll always see when there are any errors and code smells, such as unreachable code, incorrect call argument count, unused variables, and so on.

Resolve these problems automatically by applying quick-fixes suggested by the IDE.

Learn more

Navigation and search

Quickly identify how everything in a project works, with powerful navigation and search capabilities.

Go to declaration

Go to declaration

With just one click you can navigate to declarations, super methods, tests, usages, implementations, and more. You can not only jump to project entities but also to definitions within external gems.

Learn more

Find usages

Find usages

Quickly see all the places that use a class, method, variable, or symbol.

Learn more

Search everywhere

Search everywhere

RubyMine can help you find what you’re looking for, be it an item in the source code, a user action, or a UI element. Press Shift twice and start typing the name of what you need.

Learn more

Structure view

Structure view

Easily navigate your code structure: switch between class methods (including inherited ones), or jump between HTML tags.

Learn more

Ruby on Rails

RubyMine enhances your productivity with Rails and natively supports all major web development practices.

Rails-aware code maintenance

Rails-aware code maintenance

RubyMine recognizes Rails concepts and enhances code insight features. For example:

  • Autocompletion works for DB fields, associations, and methods defined by named and resource routes
  • The Rails-aware rename refactoring takes into account names of controllers, views, tests, and helpers
ERB/HAML/Slim/Liquid editor

ERB/HAML/Slim/Liquid editor

RubyMine offers support for editing ERB views, with braces, folding, syntax highlighting, code completion, and more. If you use HAML or Slim views, you'll find syntax highlighting for the injected Ruby code as well as coding assistance for HTML code inside.

MVC-based navigation

MVC-based navigation

You can quickly navigate between Rails controllers, actions, views, models, database schemas, and tests using the Navigate | Related Symbol command.

Learn more

Rails generators

Rails generators

Add new Rails entities, such as models, controllers, and migrations, to your project with a UI that provides quick and context-sensitive access to Rails generators.

  • Run anything with completion
  • Specific UIs for generating Rails entities

Learn more

Rails internationalization (i18n) support

Rails internationalization (i18n) support

Create or edit local properties using intention actions right in the editor, run an inspection to find missing keys, preview localized values, and so on.

Learn more

Model dependency diagram

Model dependency diagram

Take a bird's-eye view of your project models with their attributes to analyze the project structure and navigate to the code you need.

Learn more

Ruby tools

RubyMine has tight integration with all the popular Ruby tools, including Rubocop, Bundler, Rake, and many more.

Bundler integration

Bundler integration

Handle gem dependencies for your application right inside the IDE using the Bundler integration. You can run Bundler commands right from the Run Anything popup.

Learn more

Version managers and gemsets support

Version managers and gemsets support

Quickly switch between the different Ruby versions installed using version managers, such as RVM, rbenv, asdf, and chruby. You can also work with RVM and rbenv gemsets in the IDE.

Learn more

Rake support

Rake support

Run any Rake task in your project using the Run Anything popup (double Ctrl). You can also run tasks right from the editor using gutter icons.

Learn more

Rubocop integration

Rubocop integration

Fix Rubocop offenses right inside the IDE, or check the entire project and display all RuboCop warnings in a single report.

Learn more

Built-in IRB and Rails consoles

Built-in IRB and Rails consoles

Interact with your application using the IRB and Rails consoles without ever leaving the IDE.

Learn more

Integrated Ruby profiler

Integrated Ruby profiler

RubyMine’s integration with the rbspy sampling profiler allows you to profile Ruby and Rails applications easily.

Learn more

Testing

Generate, run, and manage your tests with ease. RubyMine supports all popular frameworks.

Gui-based test runner

Gui-based test runner

Run and debug RSpec, Minitest, Shoulda, and Cucumber tests right from the IDE. The runner will show you the progress using a tree view for all running tests, including information about the status and duration of a particular test.

Learn more

Generate tests from templates

Generate tests from templates

Generate tests from predefined customizable templates. You can even create a test when navigating to it from a class, replicating the directory structure based on the path to the test subject.

Learn more

Navigate between tests and test subjects

Navigate between tests and test subjects

In RubyMine, you can quickly navigate between a test and the test subject. If you are using FactoryBot, you can even navigate from models to factories and vice-versa.

Learn more

View code coverage

View code coverage

Measure how much of your code is covered with tests using integration with SimpleCov. You can analyze the percentage of covered files and lines in a separate tool window and editor, generate HTML reports, and so on.

Learn more

Debugging

RubyMine has a clever debugger with a graphical UI for Ruby, JS, and CoffeeScript.

Debugger with a graphical UI

Debugger with a graphical UI

RubyMine provides a visual debugger for Ruby. Run your code step by step with all the information available there at your fingertips.

Learn more

Configurable breakpoints

Configurable breakpoints

Place a breakpoint on a line of code and define the hit conditions – a set of Boolean expressions that are evaluated to determine whether to stop executing the code.

Learn more

Smart stepping

Smart stepping

Descend into any method call or block on the current line. If there are multiple method calls or blocks, you can choose the desired target.

Learn more

Interactive debug console

Interactive debug console

Examine the state of a suspended program using an interactive IRB-like console. In this console, you can check variable values, examine complex objects, call methods, and so on.

Learn more

Debugging JavaScript and Node.js

Debugging JavaScript and Node.js

Debug client-side JavaScript code in your application, and debug Node.js applications.

Learn more

Remote debugging

Remote debugging

Debug your program with a remote interpreter, such as Docker, Vagrant, SSH, or WSL. You can even attach to remote processes and debug them.

Learn more

VCS

Use popular version control systems without leaving your IDE: browse the change history, manage branches, merge conflicts, and much more. Even without VCS, you can use the local history to find and restore any changes made between commits.

Support for all major Version Control Systems

Support for all major Version Control Systems

Work with Git and GitHub, Mercurial, Subversion, Perforce, and others from the IDE.

Learn more

Pre-commit code checks

Pre-commit code checks

The Commit tool window allows you to perform code analysis, check for TODOs left in your code, and reformat the code.

Learn more

Built-in Diff and Merge tool

Built-in Diff and Merge tool

A built-in visual merge tool helps resolve conflicts quickly and intuitively.

Learn more

Full-featured VCS history support

Full-featured VCS history support

Keep track of the changes made in the source code: quickly switch between branches, filter by a user, choose the desired date, and so on.

Learn more

VCS-independent Local History

VCS-independent Local History

Restore deleted files, bring back separate changes, or roll back to any state of a file, even if a version control system has not yet been enabled.

Learn more

GitHub pull request support

GitHub pull request support

Manage incoming pull requests in RubyMine. You can complete the entire pull request workflow, from viewing pull requests to submitting comments and accepting changes, without leaving the IDE.

Learn more

Customizable environment

Set up everything the way you like it with customizable shortcuts, interface themes, and plugins.

Themes

Themes

RubyMine comes with several editor color schemes bundled and it’s even possible to create your own custom schemes or modify existing ones.

Learn more

Keyboard schemes

Keyboard schemes

For higher productivity, use the keyboard for all your tasks. You can choose from predefined keyboard layouts or create your own.

Learn more

Switch between viewing modes

Switch between viewing modes

RubyMine provides viewing modes for specific usage patterns. For example, you can turn off all distractions by hiding all UI elements except the code.

Learn more

Fine-tune the IDE with plugins

Fine-tune the IDE with plugins

Extend RubyMine with plugins and get support for additional VCS, integration with various tools and frameworks, and editor enhancements. Use the Marketplace tab to browse and install plugins from the JetBrains Plugins Repository.

Learn more

Built-in developer tools

Streamline your workflow right from the start with a database plugin, a terminal emulator, Capistrano support, and much more.

Embedded Terminal emulator

Embedded Terminal emulator

Use an embedded terminal emulator for working with a command-line shell from inside the IDE. Use it to work with the Ruby environment, run Git commands, and perform other command-line tasks without switching to a dedicated terminal application.

Learn more

Work with Databases within the IDE

Work with Databases within the IDE

Explore and edit databases with the bundled Database Tools and SQL plugin. The plugin supports database management systems, including MySQL, PostgreSQL, SQLite, and others.

Learn more

HTTP client in the code editor

HTTP client in the code editor

Test the API inside the IDE with the integrated HTTP client. You can compose and run HTTP requests right in the editor.

Learn more

Remote development

Remote development

Run, debug, and test your code in a remote environment using Docker, WSL, Vagrant, or SSH. All you need to do is configure a remote interpreter.

Learn more

Deployment tools

Deployment tools

RubyMine helps you work with deployment tools. You can run Capistrano tasks right from the IDE, work with Kubernetes configuration files in YAML, and so on.

Configuration management

Configuration management

RubyMine helps you work with infrastructure automation and configuration management tools, such as Chef and Puppet.