RubyMine 2018.1 EAP is Open: Run Anything Action, Better Debugger, and More!
We are happy to announce that the Early Access Preview program for RubyMine 2018.1 is now open.
For our next release, which is planned for the end of March, we’ve been focusing on polishing and improving the editing and Code Insight capabilities. These changes will primarily cover go to definition, find usages, code completion, as well as accuracy and speed of other actions.
We are still working on the Code Insight core, but this RubyMine version already has some new tricks up its sleeve (and more to come!)
- Run Anything Action
- Inline diagrams in Markdown
- Debugger Improvements
- Navigation Bar
- Ruby Parsing improvements
- Future plans
Run Anything Action
RubyMine has a great number of helpful tools for running rake tasks, various rails server configurations, and generators. All these actions require different shortcuts and different kinds of configuration.
A couple of months ago, a discussion in our slack channel led to a feature request for providing a unified way to run completely different stuff in RubyMine. We already have the universal and easy to use search everywhere, and now we’ve created a similar kind of action for running and debugging stuff (where possible). Meet Run Anything:
The action combines all our run configuration types and tries to match the input with known actions. For example, typing `rake` will render a list of available rake actions in the suggestion list. Typing `install` will suggest running bundle install and so on. If the command does not match any actions provided by RubyMine, you can still run it right from the popup:
IMPORTANT NOTE: due to a bug, on OS X systems RubyMine has to be run from the terminal in order to be able to run several “unknown” commands like rvm, brew, and others.
As you know, RubyMine has a great built-in debugger, so you can seamlessly debug matched configurations right from the same popup. Hold the Shift button when selecting an existing configuration (or creating a new one) to debug the command:
As of EAP1, it is not possible to debug commands unknown to RubyMine. However, we are already polishing this capability, so stay tuned for more juicy cases which are to be delivered next week!
Inline Diagrams in Markdown
It is now possible to render UML diagrams and DOT right in the markdown documents [RUBY-19041].
Please make sure you have Graphviz installed to use this feature. This page describes the expected configuration on different OSs.
Several important improvements and bugfixes come with this EAP build:
RubyMine now allows for proper debugging of multiprocess applications. By design, our debugger allows you to explore all the application processes, their threads, and variables during stepping. However, due to this bug, RubyMine had only been gaining control over the process where a breakpoint was hit. Now that it is fixed, you have proper control over the whole application.
Live variables refresh
Now RubyMine updates the variables lists after using an action which changes them, e.g. evaluating expressions or running stuff in the debugger console.
Native conditional breakpoints support
The conditional breakpoints are now implemented right on the interpreter side which means less communicating between the debugged process and IDE, and, hence, an increased running speed.
For a long time, RubyMine has been capable of setting up exception breakpoints which suspend execution when a certain kind of Exception is raised. However, this feature has not really been discoverable. Now in the exceptions list dialog you can enable catching every exception raised:
To add some specific type of Exceptions to be considered, add a new one with a plus button:
Another important feature which has been made more visible is Navigation bar. Now it is enabled by default:
Ruby Parsing Improvements
We have unified parsing routines for arguments in method definitions and block calls. This has improved Code Insight features provided for block variables: for example, now a block passed as a parameter is properly resolved from the receiver block’s body, and the parameter inspections like “unused parameter” apply to them as well:
Our work is far from finished. If you are interested in our plans, you may skim through our roadmap in YouTrack. If you feel like sharing your ideas on our new features, feel free to comment on the issues you find interesting, or just ping us in the comments to this post.
Your RubyMine Team.
Subscribe to Blog updates
Thanks, we've got you!
The RubyMine 2023.3 Early Access Program Is Open!
Hello everyone, The third RubyMine Early Access Program of 2023 is underway! The key change in the first EAP build is an important indexing optimization. By refactoring our code base, we’ve doubled RubyMine’s indexing speed compared to v2023.1. This is particularly noticeable when working wi…
Performance Improvements in RubyMine 2023.1
Hello everybody, The new release is fast approaching, so it’s time to unveil the performance enhancements you can expect from RubyMine 2023.1. Faster code completion When developing and supporting RubyMine, we analyze a great load of anonymized usage data. A lot of recent data pointed to the fact t…
RubyMine 2023.1 EAP5 Is Out!
Hello everyone, RubyMine 2023.1 EAP5 is now available! Below you can find the most notable features in this build. We encourage you to try them out and share your feedback in the comments or in our issue tracker. Migration of Ruby code to the Symbol API In order to improve code insight actions such…
The RubyMine 2023.1 EAP2 Is Out!
The RubyMine 2023.1 Early Access Program recently started and EAP2 is already here! You can get the new build from our website or via the free Toolbox App. In this post, we’ll highlight some of the most important updates included in the new EAP version. Rails 7: support for turbo-rails complet…