New features for working with Ruby and RBS, better code completion, search and refactoring, improvements for the editor, VCS support, Space, Code With Me, and more.
Go to declaration, Find usages, and Rename refactoring all
now work more precisely for projects using RBS. RubyMine relies on .rbs
declarations to define how project entities relate to each other instead of showing
all potential usages.
You can now navigate between the corresponding .rb
and .rbs
files using new navigation actions. Right-click a project entity, like a class or
a method, and select Go to / Type Signature | Associated Declaration.
You can also use the Ctrl+Alt+Home shortcut.
RubyMine uses RBS signatures to determine the types of Ruby elements and to provide more relevant code completion. RubyMine now supports most of the existing RBS entities, including type variables, block parameters, tuple types, proc types, and more.
For parts of the code that do not have a related RBS type signature, RubyMine will still use its own type inference.
Access to information stored in .rbs
files enables RubyMine to
check Ruby code for more potential errors.
RubyMine will show a type error if there’s a mismatch between the RBS and Ruby code.
This version also adds new inspections for .rbs
files themselves,
including for incorrect code and unresolved references. RubyMine also supports
running Steep commands using Run anything.
This version comes with all the essential features that make RBS code easier to read: syntax highlighting, formatting, automatic indentation, code folding, structure view, and commenting with the Ctrl+/ shortcut.
RubyMine now provides code assistance for working with RBS files: code completion,
search for usages, code navigation, rename refactorings, and more. You can also
create .rbs
prototypes
and your own
live templates for RBS.
We have updated the descriptions for all the inspections and quick-fixes that RubyMine can perform. The updated descriptions explain what changes the inspection suggests and what's the reasoning for them. Some inspections come with examples of usage.
RubyMine now supports performing specific actions when changes are saved, like reformatting the code. You can find all the actions that will be triggered on save under Preferences / Settings | Tools | Actions on Save.
In scratch files, you can make notes or draft code outside of the project context. Starting with this release, you can select some code, press Alt+Enter, and choose Create new scratch file from the selection to quickly create a new scratch file containing that code.
Local History helps you constantly track all changes made to a project independent of version control. In this release, we’ve added search functionality to Local History. Now, if you can remember a couple of keywords from the change you are looking for, you can find it more easily.
You can now include both the project creation year and the current version year in a project’s copyright notice. The updated template that contains both dates is available in Preferences/Settings | Editor | Copyright | Copyright profile.
We’ve added a new node to Preferences | Settings – Advanced Settings. It contains some options for specific use cases conveniently grouped by IDE tool. For example, settings related to the Project View, Startup, Terminal, and so on.
The browsers now can automatically reload the pages when you save the changes you made to the corresponding HTML, CSS, and JavaScript files.
You can now drag and drop a tool window to the desired place within the main IDE window or in a separate window.
It is now possible to navigate back and forth between open sections in Preferences/Settings. To do so, use the arrows in the right-hand corner of the window.
The preview tab now works for files that open during debugging: these files will appear one by one in a single preview tab. To enable this feature, check the Enable preview tab checkbox in Preferences/Settings | Editor | General | Editor Tabs | Opening Policy.
We’ve improved our in-built terminal with two new options: the ability to select the cursor shape and the support for Use Option as Meta key. Both of them are located under Preferences/ Settings | Tools | Terminal.
We have added new actions that you can perform before a commit: Run Tests, Analyze code, and Cleanup. The progress and results of all the pre-commit checks appear in the Commit area without disturbing you with additional modal windows.
You can now sign your commits with a GPG key to secure them. You can enable this feature via Preferences / Settings | Version Control | Git. If it’s your first time using a GPG key, you’ll need to configure it. To use an existing preconfigured GPG key, you can select it from the drop-down list.
RubyMine now displays the difference between the initial and changed files in the editor. However you invoke the Show Diff action, the IDE will open the diff in the editor by default. If you prefer tracking changes in a separate window, you can drag the desired file from the editor. If you do, the IDE will remember this and will open future diffs in a separate window.
To help you quickly track a job’s progress by just looking at the commits list, we’ve added icons for Space job statuses in the Log tab of the Git tool window. Click on an icon to open a popup with the automation info for that job.
To turn this status information on and off click the eye icon in the Log, and select Show Columns | Space Automation.
You can now keep your teammates informed by quickly mentioning them in Space reviews right from RubyMine. Type @ followed by the person’s name in the timeline or code comments, and then select them from the list.
It is now possible to see the branches related to the selected code review. The Details tab now shows a list of branches that contain the commits made while working on the current issue.
While using Code With Me, you might want to explain a problem or show your team members different parts of your project. You can achieve this with Force Others to Follow You mode. Those who are following you can see the code completion suggestions that you are using.
require()
Did you know that your IDE can add missing import statements as you complete ES6
symbols? Now it can do the same for CommonJS modules – require
imports
will be inserted on code completion.
You will no longer need to waste time on refactoring useState
values
and functions one by one in React hooks – RubyMine can now rename them for you.
To try this out, place the caret on a state value and invoke the Rename
refactoring with Shift+F6 or by going to
Refactor | Rename from the right-click context menu.
.js
files.
classnames
and clsx
libraries, helping you deal
with your CSS class names more efficiently.
className
attribute values in your Tailwind CSS components.