RubyMine 2026.2 Help

代码洞察

基于符号的代码洞察引擎现在已默认启用。 它改变了 RubyMine 理解 Ruby 代码的方式,尤其是类、模块和常量。 在 RubyMine 2026.2 中,基于符号的建模已扩展到更多的代码洞察操作,提供更一致的导航、文档和搜索体验,同时不断提升性能。 未来版本计划支持方法。

用户体验

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

类、模块和常量的补全

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

新代码补全

功能

改进

跨命名空间的模糊搜索

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

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

命名空间感知补全

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

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

限定名称的自动缩写

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

缩短限定名称

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

补全展示

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

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

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

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

  • 异常

  • Rails 模型

  • Rails 控制器

  • Rails 邮件器

查找用法和重命名

新版查找用法结果视图

结果按更清晰的类别进行组织,使大型结果设置更易于导航。 非代码用法按用法类型分组,包括注释、字符串文字、符号文字和纯文本文件。

重命名重构

功能

改进

内联重命名

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

排除用法

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

快速文档和 Cmd/Ctrl+悬停提示

功能

改进

快速文档

快速文档现在能更清晰地展示符号定义。

类型信息会在可用处显示,相关声明以可导航链接的形式展示,方便探索陌生代码。

Cmd/Ctrl+悬停提示

Cmd/Ctrl+悬停提示现在为 Ruby 符号显示更多类型信息,包括常量和全局变量。

这有助于在不打开 快速文档 的情况下检查符号定义。

结构视图

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

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

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

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

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

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

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

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

新结构视图

导航

功能

改进

转到声明

转到声明 在类、模块和常量中表现更加一致。 当某个符号无法精确解析时,RubyMine 仍然可以通过回退符号匹配定位相关声明。

跳转到类型声明

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

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

参数定义

功能

改进

限定名称

限定名称的每个组件都被视为单独的引用。 例如 转到声明查找用法重命名补全 等代码洞察操作,会分别作用于如 Admin::User 这样的名称的每个组件。

补全和重命名

参数定义具备与整个基于符号引擎相同的补全和重命名能力,包括模糊匹配、限定名称自动缩短及支持时的原位重命名。

动态 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年 7月 14日