RubyMine 2017.3 EAP4: Code Intelligence Improved
RubyMine 2017.3 EAP 4 (build 173.2941.5) is now open and packed full of pleasant code intelligence and other improvements.
First of all, RubyMine is now better at mapping arguments declared and then given to a method. In particular, the IDE now correctly captures and counts keyword arguments:
Also, we have fixed a couple of incorrect inspections. For example, previously single-line `if/then/else` conditions could be in some cases inspected as multi-line ones, which led to incorrect suggestions to remove an excessive `then`:
While you won’t see this incorrect suggestion anymore, note that this particular piece of code could still be improved with our in-editor RuboCop autocorrections:
Likewise, we added a way to remove an excessive return in the case of an inline array (also available via RuboCop corrections), and fixed incorrectly identified “invalid” local variables for unused params.
So feel free to run inspections (Code | Run Inspection by Name) and apply proper quick-fixes for your whole project. To refresh your memory, here’s how you can quickly get rid of excessive return statements:
Another thing that used to misguide our users was the inability to run `bundle` actions due to its absence in the current SDK, which was unobvious. So now we added an option Install Bundler (Tools | Bundler) to make this process straightforward and avoid any misconceptions:
Moreover, you will notice that starting with this EAP the Double Quoted String inspection is OFF by default. But again, you’ll need to also exclude a similar offense in `rubocop.yml` so that RuboCop doesn’t bug you with the same.
Last month we introduced some debugger improvements, in particular a new Trace `to_s` evaluation option, which allows you to track time and memory limit during debugging (Preferences / Settings | Build, Execution, Deployment | Debugger):
It used to be that we set `10 megabytes` as a default memory limit, which caused overhead and slowed the debugger down for some users. This is why starting from this EAP the memory limit is set to `unlimited`, meaning that now by default, RubyMine doesn’t track memory consumption during the serialization. Though, if you are debugging objects requiring lots of memory during `to_s` operations, we encourage you to set a memory limit in order to avoid potential debugger failures.
These are almost all the improvements made for this EAP, but you are welcome to check out the rest in our release notes.
As usual, please report your issues to our bug tracker.
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…