RubyMine 2026.1 Help

代码洞察

RubyMine 2026.1 引入了全新的 基于符号的语言建模引擎 用于 Ruby。

此实验性引擎改变了 RubyMine 理解 Ruby 代码的方式,尤其是 模块常量。 未来版本计划支持方法。

新引擎带来了三个主要改进:

新代码洞察工具

代码洞察功能的用户体验改进

多项代码洞察功能已优化,使跨命名空间处理 Ruby 符号更加轻松和可预测。

类、模块和常量的补全

代码补全得到了显著提升,尤其是在 限定常量 方面。

新代码补全

功能

改进

跨命名空间的模糊搜索

补全现在支持跨命名空间的模糊搜索,即使只输入部分限定名称片段,也能定位到符号。

此行为类似于 全域搜索 ,无需输入完整命名空间即可查找符号。

命名空间感知补全

当已输入命名空间前缀时,补全只会显示该命名空间中的元素。

例如,RubyMine 只会建议在 Foo 内部声明的元素。 该命名空间内的模糊匹配仍然有效。

限定名称的自动缩写

插入补全结果时,RubyMine 会判断名称能否在不影响解析的情况下缩写。

缩短限定名称

如果选中了 Foo::Bar ,当短名称能正确解析时,RubyMine 将插入 柱状图 ,而不是完全限定名称。

补全展示

补全弹窗现在能更清楚地显示所建议元素的信息。

  • 每项右侧显示完全限定名称

  • 补全项包含上下文专属图标

支持的图标类型示例如下:

  • 异常

  • Rails 模型

  • Rails 控制器

  • Rails 邮件器

查找用法

查找用法 结果视图已更新,更便于浏览结果。

新版查找用法结果视图

功能

改进

更清晰的结果分组

用法现在被组织成不同章节: 用法可能用法文本出现

将可能用法与已确认结果分离,能减少大型项目中的干扰。

文本出现

查找用法 现在可以检测注释和字符串中的出现位置。

这些内容会显示在单独的 文本出现 章节。 符号文字也会分组显示。

重命名重构

功能

改进

内联重命名

现在可以直接在编辑器中重命名符号,无需打开模式对话框。

排除用法

在应用重命名重构前,可以从结果列表中排除特定用法,从而精确指定要重命名的引用。

快速文档和悬停提示

功能

改进

快速文档

当某符号有多个声明时,快速文档将分别以不同页面显示,而非合并为单一视图。

悬停提示

悬停提示现在会提供:

  • 语法高亮

  • 更清晰的格式设置

  • 当存在多个声明时,导航目标更准确

结构视图

结构 视图在展示上有多项改进:

  • 当容器节点没有子节点时将不会显示展开箭头。

  • 嵌套声明会显示完整名称(如: Bar1::Baz1)。

  • 定义为 class << self 的单例类将显示为 << self

  • 绝对引用现在会显示 :: 前缀。

  • 具有相同简单名称的条目不再被隐藏。

  • 单例类现在会使用匿名类图标。

  • 继承成员,包括单例类,现在能正确且自然地显示,同时位置格式设置得到改进。

新结构视图

导航

功能

改进

转到声明

新实现取代了旧的引用机制,并为其他代码洞察功能(如 查找用法重命名快速文档 )提供基础。 限定名称解析也更快,因为 RubyMine 现在只加载相关符号,而不是整个模型。

跳转到类型声明

导航现在可用于以前无法工作的情况,如类和模块常量、RBS 类型以及如 union 这样的复杂类型。

在类或模块上调用时,导航现在会优先进入单例类(如果存在);否则将导航到常规类或模块定义。

改进对动态 Ruby 构造的处理

新引擎还提升了对未在 Ruby 源文件中显式声明符号的代码洞察能力。

这包括通过框架约定、类型定义和动态 Ruby 构造引入的符号。 这些符号现在能够被代码洞察识别,并在整个 IDE 中更加一致地工作。

从项目结构推断 Rails 命名空间

由 Rails 项目结构推断的模块现在会被识别为命名空间。

# app/models/admin/user.rb class Admin::User < ApplicationRecord end

在本示例中, Admin 命名空间会被检测并作为常规模块处理。

由于该模块源自目录结构而非显式 Ruby 声明,所以不支持重命名重构。

来自 RBS 类型签名的符号

RBS 类型签名文件中定义的符号现已纳入代码洞察。

# main.rb Book.new.read # book.rbs class Book include Readable end module Readable def read: -> untyped end

BookReadable 等符号会从 RBS 被识别并加入模型。

类和模块别名

IDE 现在会跟踪指向动态创建类和模块的别名。

ClassAlias = Class.new do; end ModuleAlias = Module.new do; end class Example < ClassAlias include ModuleAlias end

这些别名作为类和模块符号在相关上下文中被识别和使用,包括超类声明和 include 调用。

性能改进

新的建模引擎让代码洞察更快、更有响应性,尤其是在大型项目和复杂代码库中。

可以发现代码补全、导航和 查找用法 等方面的改善,结果现在计算得更加高效。

在内部基准测试中,我们观察到如下提升:

  • 限定首元素常量补全:大约 快 40%

  • 常量补全总用时:约 快 50%

  • 类型匹配补全(异常类):大约 快 95%

  • 查找用法 :在大型项目中约 快 60% ,在典型情况下约 快 15%

2026年 3月 24日