RubyMine 2019.1 EAP (build 191.4738.18) has just been updated. The new build features an ability to view a Call Hierarchy of Ruby methods, and adds support for TruffleRuby.
Call Hierarchy [RUBY-16165]
This build features a very handy ability to view a call hierarchy of methods (Navigate | Call Hierarchy), which expands the potential of the Find Usages action.
Not only does the Call Hierachy show you all the methods (“callers”) that use the method you are investigating, but it also shows you callers of the callers. Take a look at the following steps to escape this verbal abracadabra and get a grasp of this feature:
- Put the caret at the method you want to investigate and choose Navigate | Call Hierarchy (Ctrl+Alt+H). The resulting popup will show you the list of methods that call this method.
- If you expand any node, you will see which methods call the methods that use the original method you are investigating:
- As you would expect, double-clicking on any of the method names will move you to that exact piece of code:
That’s not all though.
If you choose Callee Methods Hierarchy on the top pane of the popup, RubyMine will show you which methods (“callees”) are used by the method you are investigating:
Take a look around the top pane to notice the additional handy options such as scoping, sorting, pinning, and others.
Note that this feature requires some polishing, so if you face any issues, feel free to report them to our bug tracker.
TruffleRuby, “a high performance implementation of Ruby”, as its official GitHub repo states, is now supported in RubyMine.
Switching your current Ruby SDK to TruffleRuby is a no–brainer: go to Preferences / Settings | Languages & Frameworks | Ruby SDK and Gems, and choose truffleruby from the list of available version managers and rubies:
Note that the current support for TruffleRuby is limited to running scripts and other basic scenarios. Feel free to submit your feature requests.
Visit TruffleRuby’s GitHub page for more information and installation guides.
If you’ve never used RubyMine before, and you don’t understand how to configure it, jump to our Get Started Guide.
As usual, check out our release notes for the full list of improvements inside this build.
Your RubyMine Team