RubyMine 2020.2 最新变化

检查代码中问题的新方式,27 个新意图操作,Liquid 支持,全面支持 GitHub Pull Request 以及适用于 Ruby、Rails、JS 和数据库工具的更多新功能。

代码洞察

采用一种新的方式来检查和修复代码中的问题

采用一种新的方式来检查和修复代码中的问题

我们添加了一个新微件,可显示当前文件中的问题数量。 点击它可以打开包含问题列表的工具窗口。 在这里,您可以跳到包含问题的代码,或者直接从工具窗口中修复问题。

了解详情

Liquid 模板语言

对 Liquid 模板语言提供基本支持

对 Liquid 模板语言提供基本支持

RubyMine 2020.2 包含对 Liquid 模板语言的基本支持。 IDE 会向您显示语法问题,提供用于插入常用结构的实时模板,并根据 Code Style 设置中指定的要求重新设置代码格式。

详细了解 Liquid 支持

新的智能意图操作

为您节省编码时间!

RubyMine 2020.2 提供了许多新意图操作,您可以使用它们 (Alt+Enter) 快速优化代码。

翻转三元运算符和 if-else 运算符

翻转三元运算符和 if-else 运算符

利用 Invert ‘if-else’ 操作,您可以翻转 if-else 运算符,以便对条件求反并切换分支。 对于三元运算符,可以使用 Flip ‘?:’ 意图操作,工作方式相同。

在嵌套的 ‘if’ 语句和布尔表达式之间切换

在嵌套的 ‘if’ 语句和布尔表达式之间切换

使用 Merge nested ‘if’ 操作可将嵌套语句合并到布尔表达式中。 要调用此操作,请将脱字符号放在表达式的 if 之外。

Split into multiple ‘ifs’ 执行相反的操作,需将脱字符号放在布尔运算符上。

了解详情

在 ‘else/if’ 和 ‘elsif’ 语句之间切换

在 ‘else/if’ 和 ‘elsif’ 语句之间切换

通过 Merge ‘else if’Split ‘elsif’ 意图操作,您可以将 elsif 语句拆分为嵌套的 else/if 分支,反之亦然。

Merge/split sequential ‘if’s

Merge/split sequential ‘if’s

Merge/split sequential ‘if’s 操作适用于 elsifif 关键字。 如果这些分支内的代码完全相同,它会建议合并两个分支。 RubyMine 随后会使用 || 运算符组合两个条件,并根据需要添加括号。 Split into multiple ‘if’s 操作会执行相反的工作。

展开或平展命名空间

展开或平展命名空间

这些意图操作会使用 :: 范围解析运算符将行展开为嵌套的模块,反之亦然。 请注意,Flatten namespace 操作会平展它上面的模块。

按哈希值的键对它们排序

按哈希值的键对它们排序

使用此意图操作可按哈希值的键以字母顺序对它们进行排序。 也适用于具有不同键类型的哈希。 在这种情况下,这些键按它们的类型进行分组,然后排序。

了解详情

添加/移除明确的括号

添加/移除明确的括号

Add clarifying parentheses 意图操作适用于二元和三元表达式。 它可以向依赖运算符优先级的复杂表达式添加括号,进而阐明如何计算表达式。 您还可以调用 Remove unnecessary parentheses

了解详情

添加/移除数字中的下划线

添加/移除数字中的下划线

Add underscores 操作可为较大数字添加下划线以提高可读性。 受支持的类型为整数/浮点数/八进制数字(每 3 个数字添加一个下划线)和十六进制/二进制数字(每 4 个字符/数字添加一个下划线)。

您可以对带有下划线的数字调用 Remove underscores 操作。

引入新的局部变量

引入新的局部变量

使用此意图操作可以在将脱字符号放在表达式上时引入新的局部变量。

内联局部变量

内联局部变量

重构时,如果您发现剩下一个只用过一次的变量,此意图操作将非常有用。

在块和行注释之间切换

在块和行注释之间切换

您现在可以将块注释转换为行注释,反之亦然。 请注意,这些操作仅适用于在行起始处开始的注释,块注释要求相同。

代码编辑器

折叠 if/while/for 语句的可读性提升

提升了折叠 if/while/for 语句的可读性

对于折叠结构,如 ifwhilefor,RubyMine 现在会显示第一行中使用的条件或变量。 这种方法让您可以更轻松了解是否需要展开结构并查看。

编辑器内 RDoc/YARD 文档注释渲染

在编辑器中阅读 RDoc 或 YARD 文档可能令人不胜其烦。此类文本中充斥着各种标记,在需要与参考链接和图像进行交互时,更是雪上加霜。 正因如此,我们增加了一种直接在编辑器中渲染文档的方法。

可以通过 Preferences/Settings | Editor | General | Appearance | Render documentation comments 启用此功能。

Heredoc 注入

Heredoc 注入

RubyMine 现在支持 heredoc 注入,这样您就可以在保持原来格式设置和缩进的同时定义多行字符串。 使用它可以嵌入代码段,如 HTML 或 SQL。

了解详情

改进了方法之间的导航

改进了方法之间的导航

您现在可以通过调用意图操作或点击装订区域中的图标在 super 方法和重写方法之间导航。

Ruby

支持无始范围

支持无始范围

RubyMine 一如既往地支持最新版的 Ruby。 例如,RubyMine v2020.2 支持无始范围,此功能在 Ruby 2.7 中引入。

改进的标准库方法补全

改进了标准库方法的补全

RubyMine 现在会为多种标准库方法(包括 Array#sort_byHash#each 等)建议更准确的补全。

将命名参数转换为数字参数,反之亦然

将命名参数转换为数字参数,反之亦然

您现在可以轻松地将命名参数转换为数字参数,此功能在 Ruby 2.7 中引入。 将脱字符号放到任意命名参数上,按 Alt+Enter,然后选择 Convert named parameters to numbered 意图操作。 Convert numbered parameters to named 操作会执行相反的工作。

了解详情

为实例变量添加 attr_accessor/reader/writer

为实例变量添加 attr_accessor/reader/writer

通过新的意图操作,您可以轻松地为实例变量添加特性 accessor、reader 或 writer。 要执行此操作,请将脱字符号放在变量上,然后按 Alt+Enter

Rails

展开延迟键

展开延迟键

在使用延迟键(延迟查询)的 Rails 应用程序中,此意图操作会自动将键展开为其完整形式。 如果控制器中有延迟键,该意图可能会询问要展开为哪个延迟键(会有多个选项)。

Git

全面支持 GitHub PR

您无需在浏览器和 IDE 之间切换。 整个 PR 工作流现在可以在 RubyMine 内完成!

使用 v2020.2,您可以浏览、分配、管理,甚至合并 PR,查看时间线和内联评论,提交评论和审查并接受更改。

详细了解 GitHub Pull Request 支持

改进了 Git 操作对话框

Merge、Pull 和 Rebase Git 对话框现在视觉一致性更好且减少了视觉混乱。 使用新设计,您可以快速查看要执行哪个 Git 命令。

我们还将 –rebase 选项添加到 Pull 对话框中,将 –no-verify 选项添加到 Merge 对话框中。

JavaScript 和 TypeScript

适用于 JavaScript 的新智能意图

适用于 JavaScript 的新智能意图

新智能意图 (Alt+Enter) 会帮助您更快地执行一些操作。 例如,您现在可以将带有数字索引的 for 循环快速转换为 forEach 数组方法。 浏览 JavaScript 和 TypeScript 文件中的文档注释也变得更容易,因为您现在可以在编辑器中直接呈现它们,这将最大程度地减少分心。

使 Prettier 成为 JavaScript 项目中的默认格式化程序

使 Prettier 成为 JavaScript 项目中的默认格式化程序

想要使用 Prettier 而不是内置的格式化程序来整理代码? 借助此更新,这会变得比以前更容易。 只需勾选新的 On code reformat 复选框,IDE 就会在您重新格式化 .js.ts.jsx.tsx 文件时使用 Prettier。 也可以轻松添加其他文件类型。

了解详情

享受一流的 Vue 支持

享受一流的 Vue 支持

在过去一年中,我们添加了 Nuxt.js 支持、Vue 特定的代码样式设置、TypeScript 项目中围绕 Vue 的改进以及许多其他功能。 RubyMine 中的 Vue 支持从未如此先进!

了解详情

数据库工具

单独的单元格值编辑器

单独的单元格值编辑器

现在,如果您的单元格中有一个巨大的值,可以在单独的面板中进行查看或编辑。 您还可以使用右侧工具栏切换自动换行模式。

布尔值的新 UI

为布尔值提供新 UI

现在提供了一种更方便用户查看和编辑布尔值的方法。 True 值现在用一个圆点标记,以区别于其他所有值。

编辑:

  • 空格键可以像以前一样对值进行切换。
  • 键入 ftdngc 将输入相应的值:falsetruedefaultnullgeneratedcomputed
  • 键入任何其他内容将打开包含所有可能值的下拉列表。

其他更改

  • v2020.1 中引入的 ML 辅助补全已证实在改进代码补全建议的相关性方面十分有效。 我们已决定在 v2020.2 中默认启用它。
  • Search Everywhere 中的搜索结果有了新的显示方法,可以按照搜索查询的相关性对项进行排序。
  • RubyMine 2020.2 支持 WSL2 中安装的 Git,适用于处理 Linux 或 Windows 文件系统中的项目。
  • 您现在可为多个套件生成代码覆盖率报告并将它们导出为 HTML。
  • 对 SQL 方言 Google BigQuery 提供基本支持。 如果您使用 Google BigQuery,RubyMine 可以正确高亮显示您的查询并为查询提供编码辅助。
  • 代码补全现在会为重写父类或模块的其他方法的方法显示完整的类型名称。 这样,就更容易了解建议的方法来自何处。
  • 您现在可以使用 Ruby 2.7 从 Run Anything 启动 IRB 控制台。
  • Gemfile 中的补全现在仅会显示最新本地版本的 gem。
  • 如果您想要将数量不正确的参数(如 Array.to_h()Dir.each() 等)传递到存根方法,RubyMine 现在会显示警告。
  • 我们为数字参数中的所有 lambda 用例添加了“ordinary parameter is defined”警告。
  • 我们为活跃记录关系链中的 not 调用添加了类型支持。 现在,如果没有为 where 方法提供参数,RubyMine 将提供 not 作为补全。
  • 我们改进了无障碍功能,如果用户已启用屏幕阅读器,RubyMine 现在将自动启用无障碍功能。