RubyMine 2019.1 features major Docker updates, Ruby profiler, full Factory Bot support, custom themes, and more.
RubyMine adds support for
docker-compose exec. Simply put, this command
when enabled allows you to run and debug applications, install gems and do other development
tasks faster than before.
Read How to work with Docker/Docker Compose from RubyMine for details.
In Experimental features, enable
ruby.docker.internal.via.exec to speed
up RubyMine when you're working with a
Now you can add gems, run rake tasks, rails commands and other things that update your environment, without rebuilding Docker images.
The new Recent Locations popup reinvents the way you navigate your codebase. This popup helps you find the actual code when you only remember what it was about, but don’t have any idea where you have seen it. Start typing to filter the results and jump to the code you need.
Read RubyMine Navigation: Recent Locations Popup for details.
RubyMine 2019.1 integrates rbspy and provides a native profiler to help you discover parts of code that slow down your application and/or tests.
For a detailed tutorial, read Profile Ruby & Rails Apps With rbspy in RubyMine.
Note that you can attach the profiler (Find action / Attach Profiler to Process) to your running application and investigate it in real time!
When you are adding a factory, RubyMine autocompletes its attributes and, if possible, their values too. For instance, for a Rails model factory, the IDE will autocomplete its fields with their content, and even associations. And of course you can navigate between the definitions and usages of those objects.
When you are writing tests, you can autocomplete and navigate to the definitions of factory
creation methods, such as
build_stubbed, and others.
Other cool features of Factory Bot, such as sequences, traits, and aliases are also fully supported.
We also added factories to the Related files popup (Navigate / Related symbol), and added a gutter that allows you to go to partial factory declarations if they exist.
The new Call Hierarchy action helps you dig into methods (“callers”) that use the method you are investigating, the methods that call these callers, and further as deep as you need.
For more information, refer to this blog post.
RubyMine 2019.1 adds support for TruffleRuby! To switch your current Ruby SDK to TruffleRuby, make sure you have the interpreter installed, and choose it in the Ruby SDK settings.
By the way, in this release we also fixed many issues with Ruby version managers.
RubyMine now uses the TypeScript language service together with its own TypeScript support for any TypeScript code in .vue files. This means that you’ll now get more accurate type checking and type info, you will be able to use the quick-fixes provided by the service, and see all the TypeScript errors in the current file in the TypeScript tool window.
When you run tests with Jest, Karma, Mocha, or Protractor and some tests fail, you can now see right in the editor where the problem happened. The IDE will use the information from the stack trace and highlight the failed code. On hover, you’ll see the error message from the test runner and you can immediately start debugging the test.
When adding new scripts to the package.json file, the IDE now provides suggestions for available commands provided by the installed packages. After typing node, the IDE will suggest folder and file names. And after typing npm run, you’ll see a list of tasks defined in the current file.
The documentation (F1) for CSS properties and HTML tags and attributes now shows up-to-date descriptions and information about the browser support from MDN as well as links to the full MDN articles.
You can now use the new colorful UI themes in RubyMine that are available as plugins. Choose between the Dark Purple, Gray, and Cyan Light themes, or create your own.
The database tools in RubyMine have got some cool improvements thanks to our colleagues on the DataGrip team: