RubyMine 2022.1 最新变化

对新 Ruby 和 RBS 语言功能的支持、新的检查和快速修复、UX 改进等。

Ruby

对新语言功能的支持

RubyMine 2022.1 添加了对 Ruby 3.1 中引入的新 Ruby 和 RBS 功能的支持。 这包括对有界泛型、RBS 集合、匿名块实参转发、泛型类型别名等内容的支持。

新检查

此版本为 RBS 中类型变量的用法增加了多个新检查。 报告内容包括缺少类型签名、无效类型实参用法、冲突的类型变量差异、不正确的类型实参差异等等

Quick Documentation(快速文档)中的重载

RubyMine 现在可以在 Quick Documentation(快速文档)查找 (Ctrl+Q) 中显示重载。 在方法上调用 Quick Documentation(快速文档)时,它将显示当前匹配的重载。

基于 RBS 针对 Ruby 方法的嵌入提示

RubyMine 现在可以根据相应 RBS 文件的类型签名为 Ruby 代码显示嵌入提示。 点击提示即可转到相应的类型签名。

不匹配类型签名的快速修复

RubyMine 会报告 Ruby 代码中的推断类型与 RBS 中的预期类型不匹配。 从 v2022.1 开始,您可以在这种情况下快速导航到相应的 RBS 文件。

改进了 YARD @overload 标记的自动补全

RubyMine 能够理解 @overload 标记,并在显示形参信息时建议所有声明的重载。 从这个版本开始,@overload 标记的自动补全会添加您所描述的方法的名称。

用户体验

重新设计了 New Project(新建项目)对话框

我们重做New Project(新建项目)对话框界面,为新手和有经验的用户简化了新项目的创建。

针对新 Rails 7 generate 选项的支持

此版本添加了对 Rails 7 中新增的用于项目生成的新 JavaScript 框架选项的支持。 您可以在使用 New Project(新建项目)对话框创建新项目时进行选择。

新的 Notifications(通知)工具窗口

我们用新的 Notifications(通知)工具窗口替换了 Event Log(事件日志)。 这可以帮助您更好地概括了解 IDE 的通知,确保您不会错过任何重要信息。 工具窗口中显示的通知分为两种类别:Suggestions(建议)和 Timeline(时间线)。

更新了 Open File or Project(打开文件或项目)对话框

我们已经从 Open File or Project(打开文件或项目)对话框中删除了树,IDE 在打开时不再计算所有中间目录节点。 此更改能够防止死胡同路径计算导致的持续挂起,提高 IDE 的整体性能。

调试器中的隐藏标签页标签

为了最大化 Debugger(调试器)工具窗口中的可用空间,我们默认隐藏了标签页标签。

更新了 Structural Search and Replace(结构化搜索和替换)对话框

重新设计的 Structural Search and Replace(结构化搜索和替换)对话框包含所有模板的列表,可以实现更轻松的导航。

编辑器

用于缩进可见性修饰符的新格式设置选项

您现在能够为可见性修饰符(publicprotectedprivate)和其中的代码设置缩进。 您可以在 Preferences/Settings | Editor | Code Style | Ruby | Tabs and Indents(偏好设置 / 设置 | 编辑器 | 代码样式 | Ruby | 制表符和缩进)下找到此设置,切换 Indent visibility modifiers(缩进可见性修饰符)复选框即可。

LightEdit 模式下的代码重新格式化

LightEdit 模式下可以直接编辑文件,无需创建或加载项目。 您现在可以在 LightEdit 模式下重新设置代码格式。 按 Ctrl+Alt+L 或在主菜单中转到 Code | Reformat Code(代码 | 重新设置代码格式)即可。

从 Markdown 文件运行命令

我们在 shell 命令旁边为 Markdown 文件添加了一个新的装订区域图标。 点击即可在 RubyMine 的内置终端中运行命令。 遵循 README 文件等通常包含 shell 命令的手册时,这会很有用。

Markdown 的 Copy code snippet(复制代码段)

使用新的 Copy code snippet(复制代码段)操作可将块内容复制到剪贴板。

Markdown 编辑器工具栏中的更多操作

编辑 Markdown 文件时,文本选区上的浮动工具栏将显示新选项。 使用此工具栏可以快速选择标题样式并创建列表。

测试

导航到 RSpec 中的共享上下文和示例

您可以从规范导航到共享上下文以及其中使用的共享示例。 Ctrl+点击添加共享资源的语句:include_contextinclude_examplesit_behaves_likeit_should_behave_like

Docker

新的 Services(服务)视图 UI

我们在 Services(服务)工具窗口中重做了 Docker UI。 重做已经覆盖容器、镜像、网络和卷。

Docker Registry V2 支持

我们添加了对 Docker Registry HTTP API V2 的支持,配合 Docker 1.6+。 您可以创建简单的或受密码保护的 Docker V2 注册表并执行查看、推送和拉取镜像等常规操作。

版本控制

更新了 Annotate with Git Blame(使用 Git 追溯注解)

我们改进了 Annotate with Git Blame(使用 Git 追溯注解)功能,使引入的更改更易于调查。 将鼠标悬停在注解上时,RubyMine 会在编辑器中高亮显示行间差异,点击注解将打开 Git Log(Git 日志)工具窗口。

Git File History(Git 文件历史记录):没有索引的新 UI

Git File History(Git 文件历史记录)工具窗口的新 UI 现在独立于索引进程。 即使 Log(日志)索引关闭,数据也会在新界面中表示。

Web 和框架

更好的 Next.js 支持

得益于针对 React 的内置支持,所有关键功能都应该已经可以在 Next.js 项目中运行。 RubyMine 2022.1 添加了对页面等特定于框架的对象的支持。 IDE 将解析 Link 组件的 href 属性以及 form 和其他标记中使用的路径。 代码补全、导航和重构也将可以运行。

对 Volta 的支持

在此版本中,我们添加了与 JavaScript 工具管理器 Volta 的妥善集成。 RubyMine 将自动识别使用 Volta 安装的 Yarn 和 npm。

其他改进

  • 为了改进 Log(日志)标签页中的导航,屏幕阅读器现在会读出分支树的名称和描述。
  • 为 macOS 用户提供的无障碍功能支持也得到了改进。 我们解决了导致列表元素多次不必要重复的 VoiceOver 问题。 另外,VoiceOver 现在可以读取组合框列表,我们修正了在外接显示器上工作时 VoiceOver 光标位置不正确的问题。
  • 现在,可以更轻松地处理建议更改。 我们添加了直接在 IDE 中本地应用或提交更改的功能。
  • 使用数据库时,您现在可以选择多个表并将其复制到另一个架构
  • 我们为处理数据库查询引入了一个新意图:Convert To Subquery(转换为子查询)。 现在甚至不需要选择查询 – 只需按 Alt+Enter | Convert To Subquery(转换为子查询)。
  • 我们添加了对 RBS 超类解析逻辑的支持,解析逻辑已更新以与 Ruby 保持一致:RUBY-29164
  • 我们移除了对 Rails 3 的支持。
  • extend 关键字可以将方法添加到单例类,它不应该访问类型变量。 尝试使用带有 extend 的类型变量时,RubyMine 现在会显示错误:RUBY-29099
  • 我们更新了 Git 工具窗口中的 Commit Details(提交详细信息)窗格。 它现在包含有关 GPG 签名和构建状态的信息。 以前,此数据仅在 Git Log(Git 日志)中显示为一列。
  • 我们添加了对 Corepack 的支持,这是一个实验性的 Node.js 工具,让您无需安装即可使用 Yarn 和 pnpm。 如果您想尝试,请在内置终端中运行 corepack enable,该功能默认关闭。
  • Tailwind CSS 补全现在可以在 FreeMarker 模板中运行。
  • 我们移除了未被广泛使用的 HTML4 和 XHTML 文件模板。
  • Webpack 编码辅助现在支持 webpack.config.js 文件中的 ES 模块。
  • 命令行格式化程序现在支持以 dry run 模式验证项目文件。
  • 您现在可以将拆分标签页配置为相同的宽度。 请转到 Preferences / Settings | Advanced Settings(偏好设置 / 设置 | 高级设置),勾选新的 Equalize proportions in nested splits(均衡嵌套拆分中的比例)选项。
  • UML 图表现在可以导出为 yEd .graphml、JGraph .drawio、Graphviz .dot、带有位置的 Graphviz .dot、Mermaid .md、Plantuml 和 IDEA .uml 文件,从而与第三方工具兼容。 要导出,请使用右键上下文菜单中的相应操作。