RubyMine 2022.1 EAP3: Improvements for Ruby, RBS, and Rails
The third build of 2022.1 EAP is out! Here are the highlights:
- Ruby and RBS
- Other notable features
Ruby and RBS
Inlay hints for Ruby methods based on RBS
RubyMine now shows inlay hints for Ruby code, based on type signatures from corresponding RBS files. This includes inlay hints for:
- Method parameter types and return types.
- Block parameter types.
- Constant declarations.
- Global variable declarations.
- Attribute accessors, readers, and writers.
- Type variable declarations next to main containers.
- Numbered parameters.
Clicking on a hint will take you to the corresponding type signature:
You can specify which Ruby code entities to show hints for under Preferences/Settings | Editor | Inline hints.
Overloads in Quick documentation
RubyMine can now show overloads in the Quick documentation look-up (F1 / Ctrl+Q). When you invoke Quick documentation on a method, it will show the current matching overload.
Support for new language features
This build adds support for more new Ruby and RBS features introduced in Ruby 3.1:
- Support for bounded generics:
- Actions like resolve, find usages, and rename now work for upper bound references.
- The Incorrect type argument count and Unresolved references inspections have been updated to work with upper bounds.
- We’ve added a new Bad type argument type inspection. It reports type arguments passed to generic types that do not subtype the expected upper bound.
- Support for RBS Collection: Similar to how the bundler manages gems, RBS Collection manages the RBS files of third-party gems. RubyMine can now understand its configuration files, and will only use the type signatures that are explicitly specified there in its code insight (completion, type provision, inspections, etc.): RUBY-28899.
- Support for generic type alias covariance/contravariance in RBS: RUBY-29263.
Support for new Rails 7 generate options
Other notable features
Here are some more notable changes available in this build:
- Removed the Restart IDE… action from the File group under the main menu because it wasn’t actively used. You can still invoke it using the ⇧⌘A / Ctrl+Shift+A shortcut (IDEA-279530).
- Fixed several known issues with Tailwind CSS (WEB-52237, WEB-48964, WEB-54277, WEB-54445, and WEB-49734).
- Introduced new Enum and Enum member options in Preferences / Settings | Editor | Color Scheme | TypeScript. Their default values are inherited from Class for Enum and from Static member variables for Enum members (WEB-44897).
Join the Early Access Program
To learn about the newest features as they come out, please follow RubyMine on Twitter. We post product news and tips several times a week.
We encourage you to share your thoughts in the comments below and to create and vote for features in the issue tracker.
The RubyMine team
Subscribe to Blog updates
RubyMine 2024.1 Early Access Program is Open!
The RubyMine 2024.1 Early Access Program has now started! In this blog post, we’ll share our plans for the upcoming release and the areas we’re currently focusing on. The first EAP build includes performance and usability improvements, bug fixes, and updates to RBS language support.Now, you c…
RubyMine 2023.3 EAP Update
Hello everyone! We’re back with an update on the state of the 2023.3 Early Access Program. You can download the latest EAP build from our website, via the free Toolbox App, or by using snaps for Ubuntu. Here are the biggest highlights of this release: Performance improvements As we me…
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…
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…