RubyMine 2019.2 添加了对 Rails 6 和 Ruby 2.7 的支持,改进了 YARD 支持和调试器,并整合了许多平台改进。 立刻查看以下所有新功能和更新。 我们还鼓励您告知我们任何问题并加入 RubyMine Slack!
我们的调试器使用跟踪点:逐行跟踪程序执行的代码行。 对于
v2019.2,我们设计了 MRI 的原生扩展,使调试器可以选择
执行到什么代码段的时候应该暂停,并且从头释放
剩余代码。 因此,我们能够大大加快调试器的速度并实现
以下新功能。
之前,如果您在调试会话中偶然发现一行包含许多方法的代码,RubyMine 只能单步调试该行中的第一个方法。 新添加的 Smart Step Into 消除了这种限制并允许您单步调试和调查同一行中的每一个特定方法或块调用。
借助新版本,您不仅可以在行级别还能在块级别设置断点。 当您点击左间距在包含块的行中设置断点时,RubyMine 将询问您想要在行、块还是两者中设置断点。
阅读在 RubyMine 中进行调试,详细了解如何在 RubyMine 中调试 Ruby 和 Rails 脚本。

RubyMine 2019.2 支持模式匹配,此功能在 Ruby 2.7 的第一个预览版中作为一项实验性功能引入。 IDE 可以识别新语法并帮助您导航、查找用例和重命名对象。
新版本的 RubyMine 可以识别编号参数的语法并显示/查找其用例。 这是 Ruby 2.7 中的另一项实验性功能,允许您通过将参数编号用作默认参数来分配值,无需定义块变量。
RubyMine 2019.2 支持将随 Rails 6 一起提供的 Action Mailbox 功能。 IDE 可以提供路由方法与回调的自动补全建议并在其实现与用例之间导航。
我们还添加了一些检查,这些检查有助于您了解是否忘记在 ApplicationMailbox 中添加 routing 调用和在您的邮箱中添加 process 方法。 在后一种情况下还提供快速修复。
在此详细的 GoRails 剧集中详细了解如何使用 Action Mailbox。

我们为 ActiveRecord::Enum 添加了适当的代码洞察支持。 其中包括代码自动补全、导航以及查找枚举的名称和方法的用例。 也支持 Rails 6 中引入的枚举否定作用域。
我们还在逐步改进对 YARD 的支持,旨在帮助您创建和管理 YARD 标记,并基于 YARD 注释在 RubyMine 中获得更出色的代码自动补全。 新版本为 @overload 和 @yieldparam 标记添加了适当的类型注释和检查。
阅读 RubyMine 中的 YARD 支持,了解 RubyMine 围绕 YARD 的功能和改进的概览。
借助 v2019.2,您可以重命名 (Shift+F6) 工厂、序列和特征。 IDE 可以查找其定义并提供对相关元素和所有用例以及文件名(如果与工厂名称匹配)进行重命名的建议。
我们还向 File Structure 视图 (Cmd/Alt+F7) 和弹出窗口 (Cmd/Ctrl + F12) 添加了工厂、序列和特征,并添加了安全删除它们的功能 (Refactor | Safe Delete)。
借助新的 Propagate to destructuring 意图 (Alt+Enter),您可以将一个额外变量替换为另一个解构(如果可行)。 要完全移除解构,请使用名为 Replace destructuring with property or index access 的意图操作。
当您重命名 JavaScript 或 TypeScript 文件中的符号时,IDE 现在会将动态用例组合在一起,并且默认会从重构中排除它们。 这使重构更准确,并且让您可以更严格地控制应当在 Refactoring Preview 工具窗口中重命名的内容。
从 Vuetify、BootstrapVue、Quasar 和其他某些 Vue 组件库对组件及其属性的代码补全现在更加准确。 这得益于我们在 IDE 中使用这些库的新方式。
全新的 Duplicate code fragment 检查可以实时检查您的代码并立即在编辑器中高亮显示潜在的重复项。 可用于 JavaScript、TypeScript、CSS、Sass、SCSS 和 Less。
请参阅 WebStorm 最新变化,了解 RubyMine 2019.2 中的更多 JavaScript 改进。
借助 v2019.2,您可以添加多个 .editorconfig 文件,在项目的不同部分中维护不同的代码样式。 除了标准的 EditorConfig 选项(获得支持已有很长时间)外,您现在还可以使用覆盖所有可用的 IDE 代码样式选项的 IDE 特定属性。
新版本添加了对 shell 脚本的支持。 其中包括适用于 .sh 和 .bash 文件的代码补全、快速文档和文本重命名,以及适用于 shell 脚本的运行配置。 IDE 还与用于 lint 的 ShellCheck 和用于格式化代码的 shfmt 集成。
在 .gitignore 文件中,IDE 现在可为文件和文件夹提供代码补全建议。
在名称上按 Cmd/Ctrl-click,即可在 Project 工具窗口中跳到此文件或文件夹。 您还可以从 Project 视图和 Local Changes 选项卡中快速地向 .gitignore 添加文件 - 右键点击文件,然后选择 Add to .gitignore。
现在,即使您不知道数据在数据库中的确切位置,也可以搜索需要的数据。 右键点击您想要搜索的数据源,然后选择 Full-text Search (Ctrl+Alt+Shift+F / Cmd+Alt+Shift+F)。 查询结果将进行筛选,仅向您显示在其中找到数据的字符串。
请参阅 DataGrip 最新变化,了解 RubyMine 2019.2 中的其他数据库改进。
docker-compose exec 重新认识 DockerRubyMine 增加对 docker-compose exec 的支持。 简而言之,如果启用此命令,您可以更快运行和调试应用程序,安装 gem 并进行其他开发任务。
阅读如何在 RubyMine 中使用 Docker/Docker Compose,了解更多详情。
在 Experimental features 中启用 ruby.docker.internal.via.exec,以便在使用 Docker SDK 时加快 RubyMine。
现在无需重新构建 Docker 映像,即可添加 gem,运行 rake 任务、rails 命令以及其他会更新环境的元素。
新弹出窗口 Recent Locations 重塑导航代码库的方式。 当您只记得代码的相关信息,但不记得在哪里见过时,此弹出窗口可以帮您找到实际的代码。 开始输入以筛选结果并跳转到需要的代码。
阅读 RubyMine 导航:Recent Locations 弹出窗口,了解详细信息。
RubyMine 2019.1 集成了 rbspy,并提供一个原生分析器来帮助您发现减慢应用程序和/或测试的代码。
如果需要详细的教程,请参考在 RubyMine 中使用 rbspy 分析 Ruby 和 Rails。
请注意,您可以将分析器附加到运行中的应用程序 (Find action / Attach Profiler to Process),并对应用程序进行实时分析!

当您添加工厂时,RubyMine 自动补全其属性,而且如有可能,还会补全其值。 例如,对于 Rails 模型工厂,IDE 将使用字段的内容甚至关联自动补全字段。 当然,您可以在这些对象的定义和用例之间导航。
在编写测试时,您可以自动补全并导航到工厂创建方法(例如 create、build、build_stubbed 等)的定义。
也完全支持 Factory Bot 的其他优秀功能,例如序列、特征和别名。


我们还在 Related files 弹出窗口 (Navigate / Related symbol) 中添加了工厂,并且添加了间距,允许您转到部分工厂声明(如果存在)。
新操作 Call Hierarchy 可以帮助您深入研究使用您正在调查的方法的方法(“调用者”),调用这些调用者的方法,并且可到达您需要的深度。
要了解更多信息,请参阅此博文。
RubyMine 2019.1 增加对 TruffleRuby 的支持! 要将当前的 Ruby SDK 切换为 TruffleRuby,请确保您已安装解释器,并在 Ruby SDK 设置中选择它。
此外,在这个版本中,我们还修复了很多 Ruby 版本管理器的问题。
对于 .vue 文件中的任何 TypeScript 代码,RubyMine 现在使用 TypeScript 语言服务并且还使用其自身的 TypeScript 支持。 这意味着您现在将获得更准确的类型检查和类型信息,您将能够使用该服务提供的快速修复,并在 TypeScript 工具窗口中查看当前文件中的所有 TypeScript 错误。
当您使用 Jest、Karma、Mocha 或 Protractor 运行测试,并且某些测试失败时,您现在可以直接在编辑器中查看问题发生在什么地方。 IDE 将使用堆栈跟踪中的信息并且高亮显示失败的代码。 鼠标悬停时,您将看到来自测试运行程序的错误消息,并且可以立即开始调试测试。
了解 JavaScript 和 Node.js 调试工具窗口中新的、改进的交互式调试器控制台! 它现在使用树形视图显示对象,支持使用 CSS 设置日志消息样式,并使用 console.group() 和 console.groupEnd() 对其分组。 您还可以筛选任何类型的日志消息。
向 package.json 文件新增脚本时,IDE 现在可为安装程序包中的可用命令提供建议。 输入节点后,IDE 将提供文件夹和文件名建议。 输入 npm run 后,您将看到在当前文件中定义的任务列表。
请参阅 WebStorm 最新变化,了解 RubyMine 2019.1 中的更多 JavaScript 改进。
CSS 属性以及 HTML 标记和属性的文档 (F1) 现在可以显示来自 MDN 的关于浏览器支持的最新描述和信息,以及 MDN 全文的链接。
DataGrip 团队的同事对 RubyMine 中的数据库工具进行了一些优异的改进:
IDE 现在能够更好地理解 Rails 范围。 例如,在您将关联对象添加到范围时,RubyMine 会为您建议可用的查找器方法。 您还会发现适合链式范围的代码补全和导航。
RubyMine 添加了对 Struct 的全面支持。 现在,您可以使用与处理任何其他 Ruby 类及其实例相同的方式自动补全、导航和重构 Struct 类的对象。
新的 Nil 取消引用检查会在当前上下文中(例如,当您在可能为 nil 的变量上调用方法时)检查您的代码是否存在可能的 nil 错误。
使用新的 I18n 对话框一次性为您的所有字典创建翻译。 与之前一样,将脱字符号放置在字符串上,按 Alt+Enter,然后选择将它国际化。 生成后,按住 Cmd/Ctrl 并点击创建的键可以导航到任何现有的翻译。
您还可以轻松地为命名空间键和延迟查询创建翻译,新版本的 RubyMine 让您能够直接从编辑器为这些键创建翻译。
RubyMine 可向您显示实际翻译,而不是 I18n 键 - 只需在控制器或视图文件中的任何键上按 Cmd./Ctrl. 即可。 您甚至可以选择应将哪个字典用作翻译预览。
请参阅 RubyMine 中的 i18n 功能,了解 v2018.3 中的其他国际化改进。
新的 Extract Parameter 对话框 (Refactor | Refactor this | Extract Parameter) 让您不仅能够提取参数,还可为它提供默认值、将其设为可选或将其作为块传递。
我们已经改进了 Inline 重构,让您能够更安全地移除多余的方法和变量。 特别是,使用字符串内插来内联包含参数和变量的方法现在更加可靠。
我们终于添加了一个非常方便的功能,可以将部分字符串提取到变量和常量中。
阅读 RubyMine 重构:概述与改进,详细了解重构选项。
新的意图操作将帮助您让代码更易读。 例如,您现在可以使用德摩根定律意图来简化不良的否定并将块调用提取到方法中。 只需将您的脱字符号放置在代码异味处,然后按 Alt+Enter 应用合适的快速修复。
阅读 RubyMine 中的意图操作,了解其他新意图。
RubyMine 2018.3 还在每个测试方法中添加了方便的间距。 这些间距为视觉锚点,会为您显示可在文件中运行的每个特定测试。 与使用上下文菜单相比,间距还能够更快速地运行测试。
请参阅在 RubyMine 中运行测试,了解其他方便的测试功能。
现在,您可以直接在 RubyMine 中查看 GitHub 拉取请求。 转到 VCS | Git | View Pull Requests,查看拉取请求的描述、标签、被指派者和实际变更。
此外,Git 集成中的所有熟悉功能(例如更新项目、提交变更、查看差异和解决冲突)现在都支持 Git 子模块。
新的 Darcula 皮肤除去了杂乱的颜色,视觉效果更简洁,并且能够更好地与 JetBrains IDE 中用于其他编程语言的类似配色方案契合。
以前的 Darcula 还可以使用。 如果您想使用旧版本,请转到 Preferences / Settings | Editor | Color Scheme | Ruby,点击齿轮图标,然后选择 Transform current scheme to Darcula 2018.2。
您还会发现更方便的新 Search Everywhere 对话框 (Shift+Shift)。 您可以更方便地使用所有其他导航对话框 - Go to Class、File、Symbol 和 Action。 只需按 Tab 即可在搜索类型之间切换。
更新的 Plugins 部分 (Preferences / Settings | Plugins) 让您能够更轻松地管理、安装、卸载和更新插件。 例如,您现在可以按标记搜索插件,然后按下载次数、名称、评分、精选或更新对结果进行排序。
使用 Angular 时,改进的代码自动补全和导航让您可以更轻松地处理变量、管道、异步管道和模板引用变量。
在 React 应用中,代码补全现在可以建议所有组件生命周期方法。 Unresolved variable 检查可警告您注意可能未定义的组件。
在 JavaScript 文件中,IDE 现在不仅可以为项目中定义的符号,还可以为项目依赖项中的符号自动添加导入。 只要库包含编写为 ES 模块的源代码或 TypeScript 类型定义文件即可。
新的 Extract ruleset 操作 (Alt-Enter) 可以帮助您将 CSS 声明从一个规则集快速提取到另一个新的、更具体的规则集。
CSS 及其预处理程序的代码样式现在有一个针对使用空行的配置。 此外,您现在还可以在代码块中对 CSS 属性排序 – 按字母顺序或任何自定义顺序。
请参阅 WebStorm 最新变化,了解 RubyMine 2018.3 中的更多 JavaScript 改进。
新的 Introduce reference 操作可以帮助您为内联链接创建引用。 IDE 将在文件中查找所有链接重复项,并建议将其替换为新建的引用。
此外,您现在还可为文本添加删除线和更改标题大小。 在工具栏中查找这些新操作。