RubyMine 2021.3 最新变化

捆绑的 RBS 类型签名、类型检查和 RBS 文件的新检查、支持远程开发工作流、用户体验改进等。

Ruby 与 RBS

捆绑的 RBS 类型签名

此版本捆绑了 RBS 签名。 得益于 RBS 签名,RubyMine 能够提供更好的代码辅助,例如实时类型检查、更精确的导航、搜索和重构等。

RBS 文件的新检查

在此版本中,我们为 RBS 文件增加了 12 项新检查。 RubyMine 将检查 RBS 代码的样式问题、未使用的实体、继承问题、部分声明中的不匹配等。

RubyMine 的内置拼写检查器现在也适用于 RBS 文件

基于 RBS 的参数信息

Parameter Info(参数信息)弹出菜单 (Ctrl+P) 显示方法参数的名称和类型。 它现在可以使用来自相应 RBS 签名(如果存在)的类型信息。

RBS 文件的版权

您的项目可能包含您希望受版权保护的 RBS 文件。 现在,可以自动将版权信息添加到 RBS 文件的开头,而不必分别为每个文件添加版权声明。

在保存时运行 RuboCop

现在可以将 RuboCop 配置为在文件每次更改时重新格式化文件,并自动或手动保存更改。 要启用此功能,在 Preferences / Settings(偏好设置/设置)中搜索 rubocop 并选中 Run ‘rubocop -a’ on save(保存时运行 ‘rubocop -a’)复选框。

类型检查

基于 RBS 的类型检查的更多检查

我们增加了许多新检查,用于检测分配值与从 RBS 获取的预期类型之间的不匹配。

这些检查可以检查常量、实例和类变量、方法和块参数、返回值、传递给 yield 调用的实参和全局变量的类型。 您可以在 Preferences / Settings | Editor | Inspections | Ruby(偏好设置/设置 | 编辑器 | 检查 | Ruby)下找到它们。

对 Sorbet 的初步支持

RubyMine 现在可以识别 Sorbet 类型签名,包括来自 .rbi 文件的签名。 方法实参和返回值的类型不匹配检查现在可以基于 Sorbet。

您可以使用上下文菜单中的 Go To | Type Signature / Associated Declaration( 转到 | 类型签名 / 关联声明)操作,在相应的 Ruby 和 RBI 文件之间导航。 您还可以使用 Ctrl+Alt+Home 快捷键。

远程开发

支持远程开发工作流

RubyMine 现在支持早期版本的远程开发工作流。 它让您可以从世界任何地方连接到运行 RubyMine 后端的远程计算机。 所有处理都将在这台强大的远程计算机上进行,您将能够像在本地计算机上一样无缝地处理项目。

用户体验

性能改进

在此版本中,我们一直致力于代码编辑器的性能改进。 现在,打开文件、输入、调用代码补全和应用快速修复等操作的速度更快。

这在一般大小的项目文件中只是稍微明显一点,但在处理大型文件(2,000 行或更多代码)时就明显得多。

Bookmarks(书签)工具窗口

在此版本中,我们重新设计了书签功能。 您可以使用自定义名称创建书签并将它们分组到各个节点。 所有书签现在均位于新的 Bookmarks(书签)工具窗口 (Alt+2) 中。

拆分 Run(运行)工具窗口

现在,可以水平或垂直拆分 Run(运行)工具窗口。 当您运行多个配置并想要同时查看它们的结果时,这会很有用。

只需将所需标签页拖放到高亮显示的区域。 您可以拖回标签页以取消拆分工具窗口,或右键点击顶部窗格并从上下文菜单中选择 Unsplit(取消拆分)。

Show Usages(显示用法)的源代码预览

现在,可以在 Show Usages(显示用法)窗口 (Ctrl+Alt+F7) 中点击方形图标,打开源代码预览。

VCS

远程分支的 Checkout and Rebase onto Current(签出并变基到当前分支)

Checkout and Rebase onto Current(签出并变基到当前分支)操作可用于签出所选分支并将其变基到当前签出分支的顶部。 在此之前,这只适用于本地分支。 从此版本开始,我们还增加了将此操作应用于远程分支的功能。

Changes(更改)工具窗口

从此版本开始,RubyMine 将在位于编辑器左侧的单独的 Changes(更改)工具窗口中显示提交数据和每次提交的数据之间的差异。

要打开新的工具窗口,请转到版本控制系统的 Log(日志)标签页,右键点击一个修订,然后从上下文菜单中选择 Compare with local(与本地版本比较)。

新的 Push All up to Here(推送此前所有提交)操作

我们增加了一项新操作,可让您将所有提交向上推送到您选择的提交。 当您有多个准备交付的提交而其他提交仍在进行时,这会很有用。

Web 和框架

改进的 HTML 代码补全

我们改进了代码补全在 HTML 文件中的工作方式。 以前,HTML 文件中的补全建议只有在您输入 < 字符时才会显示。 从此版本开始,您还可以在输入标记名称或缩写时看到 HTML 文件的补全建议。

从编辑器更新 npm 软件包

现在,可以直接从编辑器将 npm 软件包更新到最新版本。 打开 package.json 文件,将文本光标放在要更新的软件包版本上,按 Alt+Enter,然后选择 Update ‘package name’ to the latest version(将“软件包名称”更新到最新版本)。

HTTP 客户端增强

我们增加了对二进制响应、gRPC 请求、输出重定向到自定义文件或目录的支持、对文本和 JSON 流的支持以及对 HTTP 请求标识符的支持。

Space

来自 IDE 的合并请求和代码审查

对于位于 Space 中的项目,现在可以直接从 IDE 创建合并请求和代码审查。 要调用这些操作,请点击 Code Reviews(代码审查)工具窗口顶部工具栏上的 + 图标。

将文件标记为已查看

在代码审查中,尚未审查的文件将用蓝点标记。 这有助于您确保在执行代码审查时不会错过 Space 项目中的任何更改。

在您打开标记的条目后,这些点将自动消失。 如果要稍后查看更改,可以从上下文菜单中选择 Mark as Not Viewed(标记为未查看)。

数据库工具

版本控制系统中的数据库

现在可以从真实数据源生成 DDL 数据源,使用 DDL 数据源映射真实数据源,以及在任意方向上比较和同步它们。

聚合

我们增加了显示一系列单元的 Aggregate(聚合)视图的功能。 只需选择要查看视图的单元范围,然后点击鼠标右键并选择 Show Aggregate View(显示聚合视图)即可。

新的数据库差异窗口

现在可以使用新的数据库差异窗口来比较两个架构或对象:只需选中它们并按 Ctrl+D

First row is header(第一行是标题)自动检测

从此版本开始,当您打开或导入 CSV 文件时,RubyMine 会自动检测第一行是否为标题以及是否包含列名称。

其他改进

  • 现在可以使用屏幕阅读器创建项目 (IDEA-185260)。
  • 禁用了过去在鼠标悬停时出现的工具窗口微件弹出窗口 (IDEA-278151) 和快速文档弹出窗口 (IDEA-274143)。
  • 修正了调用 Go To Declaration or Usages(转到声明或用法)弹出窗口时出现的问题 (IDEA-272536)。
  • 解决了 VoiceOver 焦点存在的几个问题 (IDEA-273021)。
  • 类型检查、不匹配的实参检查和参数信息操作现在适用于重写方法中的 super 调用。
  • 增加了对其他参数之间的 RBS rest 参数(即可变长度参数)的支持。
  • 现在可以使用新的装订区域图标在 RBS 文件中的不同重载方法之间导航
  • 创建新的 RBS 文件时,可以在文件名中使用 :: 符号来创建包含周围模块的文件。
  • 现在可以使用 Class#method 格式通过 Search | Symbols(搜索 | 符号)查找方法。
  • RubyMine 现在支持单例实例变量和特性,并且能够为此类情况提供类型检查和提示。
  • VCS 设置结构更加清晰。
  • 修正了一系列与映射 .js.d.ts 文件相关的问题,增加了用于在它们之间导航的装订区域图标。
  • 增加了 Node.js 远程解释器对 npm、ESLint、Mocha 和 Jest 的支持。
  • JavaScript 文件的索引时间减少了 20%。
  • 现在可以从编辑器下载远程 ES6 模块:将文本光标放在导入路径上,然后按 Alt+Enter 并选择 Download module(下载模块)。
  • 现在,内置终端支持 Windows 上的新 ConPTY API。 使用它作为终端的后端可以帮助我们解决用户在基于 winpty 的旧实现中遇到的多种问题。 它还在终端中增加了对 24 位颜色的支持。
  • 在此版本中,我们增加了内置终端对 typeahead 的支持。 现在,终端可以预测文本修改,并立即以稍微不同的字体显示它们。 在远程计算机上工作时这会很有用,因为 IDE 能够像在本地计算机上一样快速显示字符,即使有延迟。