RubyMine 2023.2 EAP3: Updated RBS Support and Search Everywhere Functionality
We are actively developing RubyMine 2023.2 and have released our third Early Access Program (EAP) build. Here are the notable enhancements included in RubyMine 2023.2 EAP 3. We encourage you to try them and provide your feedback in the comments section or through our issue tracker.
You can download the latest build from our website or through the free Toolbox App.
Naming convention inspections in RBS
In this EAP version we’ve added naming convention inspections for interfaces, type aliases, and type variables.
Сode insight for RBS use syntax
RubyMine code insight functionality is now available for use syntax in RBS. Here are some of improvements that we’ve implemented:
- All namespaces used within a use clause now have reference support.
- The target of an imported use clause now has reference support.
- When resolving a simple name, we prioritize resolve targets in the following order: type variables first, followed by use clauses in reverse order. Use clauses that occur last have a higher priority, allowing you to shadow a use clause that comes earlier.
- Autocomplete for wildcard use clauses now includes a * character.
- An implicit reference is now provided for the * characters in wildcard use clauses.
- Use clause aliases are recognized as separate entities, and code insight actions such as Go to declaration, Find usages, and Rename are now available for them.
- When obtaining a type in Ruby from RBS (Ruby Signature), it will display the expected type that the use clause and/or alias targets.
- All RBS inspections are updated to work with use clause aliases.
- Completion inside use clauses functions correctly, now that updates have been made to handle insertions properly.
- When invoking completion inside a file, use clause aliases are included in the completion list.
- Use clause alias names now have spell checking support.
Annotations and inspections for use directives in RBS
We continue to support this new feature in RBS, while in this EAP build we’ve added some annotations and inspections for misused directives. Here is the list of improvements:
- RubyMine now annotates use clause aliases when their cases do not match
- We’ve added an inspection for an unconventional use alias name, which behaves the same as other naming convention inspections.
- We’ve added an inspection for unused use clauses with a quick fix to “optimize use clauses”, which removes the unused ones.
- We’ve added an inspection for Unnecessary qualifiers. Qualifiers are sometimes unnecessary when there is a namespace or use clause present that imports the actual name.
- We’ve added a quick fix for simple unresolved references (those with no qualifiers) that propose adding a use clause to import the name if there is one available.
- There is now support for the Optimize imports action, which only removes unused imports and behaves the same as the inspection.
Text search in Search Everywhere
The Search Everywhere (Double ⇧ / Double Shift) functionality, primarily utilized for searching through files, classes, methods, actions, and settings, now includes text search capabilities similar to Find in Files. With this enhancement, text search results are displayed when there are few or no other search results available for a given query. The feature is enabled by default and can be managed in Settings/Preferences | Advanced Settings | Search Everywhere.
The full list of improvements in this version is available in the release notes. To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.
We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss and answer your questions!
We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.
Happy developing!
The RubyMine team