GoLand 2019.3 新功能

GoLand 2019.3 消耗更少的 CPU 并且执行速度更快,提升了其 Go Modules 支持,添加了一组新的快速修复并增强了重构。 它可以通过 Evaluate Expression 调用嵌入式字段的方法,并使用 Mozilla rr 远程调试应用程序。

您还可以为每个新项目启用全局文件观察程序,使用 MongoDB,等等!

性能

GoLand 2019.3 在不同操作系统上的启动时间测量图

自从今年夏天发布 GoLand 2019.2 以来,我们一直致力于使 GoLand 执行速度更快并消耗更少的 CPU。 其中一个主要性能改进是缩短启动时间,IDE 在后台准备全部工作、显示欢迎界面并为项目编制索引。

请注意,结果可能会根据您项目的大小、设备的年限、RAM 和磁盘空间不同而有所不同。 我们还会继续努力,您可以期待在未来版本中获得更快的启动速度。

Go 模块改进

从 go.mod 文件导航到 Project 视图

GoLand 2019.3 为 go.mod 文件提供了语法高亮显示和导航。 在特定的依赖项导入路径上按 ⌘+B (macOS) 或 Ctrl+B (Windows/Linux),GoLand 会将您导航到 Project View 中的源。

而且在 Project View 中,Go 模块还会显示它们完整的导入路径,而不是仅显示最后部分。 每个 Go 模块的版本不仅会显示在导入路径中,还会以更柔和的字体颜色显示,以帮助您轻松地区分它们。

调试器更新

包含调用结果的 Evaluate Expression 对话框

嵌入式字段的调用方法

现在,您可以使用调试器中的 Evaluate Expression 直接调用嵌入式字段的方法。

使用Mozilla rr调试

使用 Mozilla rr 远程调试

Linux 和 Mozilla rr 上运行的以 Go 编写的许多产品服务都可以帮助调查难以重现的错误。 Mozilla rr 调试从 GoLand 2018.3 开始受到支持,但仅可以在运行 Linux 的开发者计算机上使用。 现在,可以在 Linux 计算机上启动调试服务器,并直接从 macOS 和 Windows 远程调试跟踪。 按照以下步骤操作:

  • 收集远程计算机上的 rr 跟踪。
  • 在类似于下面所示的远程计算机上启动调试器:dlv --headless --api-version 2 -l localhost:2345 replay /path/to/trace/dir /path/to/binary
  • 通过 Go Remote 配置连接到远程计算机。

请注意,Mozilla rr 仅可以在 Linux 计算机上使用。

新的快速修复

通过 Alt+Enter 从表达式中删除未使用的参数名称

处理未使用的参数

对于未使用的参数,如果可以移除它的名称和类型,GoLand 会高亮显示两者;如果类型用于实现方法规范,则仅会显示名称。

如果是后者,IDE 为您提供了两种可以选择的快速修复:Delete parameter namesRename to_。 为用作函数类型的函数提供了同样的行为。

而且,现在可以一次性移除所有未使用的参数。 按 Alt+Enter,然后使用 Delete all unused parameters 快速修复。

创建缺失的函数

创建缺失的方法或函数

GoLand 提供了一种快速修复,帮助创建用于函数类型的缺失函数或方法。 只需按 Alt+Enter,然后选择 Create method/function

GoLand 建议导入包

對软件包別名的處理增强

当您在项目的任何文件中按 Alt+Enter 时,GoLand 现在会基于使用的别名提供软件包导入建议。

重构

在 Parameters 和 Result parameters 标签页中显示参数类型

Change Signature

Change Signature 现在始终会在 ParametersResult parameters 标签页中显示参数的类型。 勾选新的 Reuse types 复选框可以在 Signature Preview 和结果中折叠结果类型。

另外,您会发现两个新的意图操作:可以将参数定义合并到单个声明中的 Reuse signature types,以及可以通过按 Alt+Enter 将类型添加到每个参数的 Expand signature types

Extract Variable 建议使用 err 表示类型错误

提取变量与重命名

Extract VariableRename 现在可以更好地建议名称。 例如,对于类型错误的表达式,建议使用 err;对于 context.Context,建议使用 ctx,等等。

改进了代码检查的行为

2019.2 与 2019.3 版本之间的代码检查行为比较

GoLand 代码检查的焦点现在更明确。 我们缩小了检测到的问题在代码编辑器中的高亮显示范围,在您通过 Alt+Enter 调用上下文菜单时帮助为特定代码段显示最相关的快速修复和意图操作。

代码编辑

rune 文字错误消息的示例

改进了 rune 文字词法

我们以多种方式改进了 rune 文字词法:

  • GoLand 提供了更清晰和更准确的错误消息,用于解释表达式不正确的原因。
  • GoLand 不会在编辑之后将有效的 rune 文字高亮显示为错误。
  • 解析无效的 rune 文字更加稳定。
GoLand 在声明的左侧高亮显示重新赋值

重新赋值的高亮显示

Go 允许在短变量声明左侧使用现有变量。 因此,看起来相同的两个结构可以具有不同的含义。 为了更容易发现,我们为此类重新赋值添加了语法高亮显示。

组合文字代码折叠的示例

组合文字的代码折叠

GoLand 2019.3 为组合文字提供了代码折叠。 使用代码折叠开关折叠或展开代码段,或者在 Windows 上按 Ctrl+NumPad Minus/Ctrl+NumPad Plus 或在 macOS 上按 ⌘+NumPad Minus/⌘+NumPad Plus。 要配置默认的代码折叠行为,请转到 Settings/Preferences | Editor | General | Code Folding

增强了实时模板

for 实时模板建议将行作为值

实时模板 forforr 现在可以建议相关的变量名称。 例如,会为索引建议 iindex 之类的名称;为值建议 sstringline

实时模板 meth 现在可以为接收器名称提供代码建议。

导航

仅在选定区域内搜索

仅在选定区域内搜索

使用 Find(在 macOS 上为 ⌘+F,在 Windows/Linux 上为 Ctrl+F)时,仅在选定区域内搜索。 只需在编辑器中选择您需要的代码段,然后调用 Find - IDE 随后仅会在选定区域内执行搜索。 要轻松地切换为在整个文件中搜索,请按 ⌘+F/ Ctrl+F 一秒钟,或者在栏中切换 In Selection 选项。

在操作中通过文件掩码选项使用“Find in Path”进行搜索

通过文件掩码选项使用“Find in Path”

现在,当您使用文件掩码在 Find in Path 对话框中搜索时,GoLand 会在搜索结果中相应地显示文件扩展名。 这让您可以轻松地区分名称相同但文件扩展名不同的文件。

为所有新项目启用全局文件观察程序

为所有新项目启用 golangci-lint

在 GoLand 2018.2 中,我们添加了一个选项,用于通过 ProjectGlobal 选项在不同项目之间共享文件观察程序配置 - 此选项称为全局文件观察程序

不过,您仍需要在每个新项目中启用此观察程序。 现在,您可以在创建或打开的所有新项目中默认启用此观察程序。

File 菜单中,选择 Other Settings | Settings for new projects,然后转到 Tools | File Watchers,添加新的全局观察程序,选中它旁边的复选框,以便在所有新项目中启用。

教程

Extract Variable 重构的新特性练习

当您需要完成项目和如期完成任务时,通常没有足够的时间阅读与使用的产品有关的“最新变化”页面、版本说明以及博文。 因此,我们添加了教程来帮助您了解 GoLand 功能。

您可以在项目列表上的欢迎界面上找到教程。 当您将 IDE 升级到新版本时,会有一个课次介绍新版本中的功能。 或者,您也可以在任何项目中通过相应的工具窗口访问教程

更多更改

在 Hierarchy 工具窗口中的调用者和被调用者之间切换

Hierarchy 工具窗口

Hierarchy 工具窗口中提供了一个用于分析被调用者方法层次结构的新选项。 我们还添加了两个专用按钮,让您可以在选定方法的调用方和被调用者之间切换。 现在,您还可以点击菜单中的特殊按钮,按字母顺序对树中的元素进行排序。 要在 Tool Windows 列表中查看 Hierarchy 工具窗口,您需要先生成一个层次结构,然后转到 Navigate | Call Hierarchy or Navigate | Type Hierarchy

在不重启 IDE 的情况下切换主题插件

动态切换主题和按键映射插件

在 GoLand 2019.3 中,您可以在不重启 IDE 的情况下安装和卸载任意主题插件和按键映射插件。

在 Focus Editor 操作的设置中选择 Add Keyboard Shortcut

用于将焦点返回编辑器的自定义快捷键

为将焦点带回编辑器的操作设置自定义快捷键,而不是使用 ESC。 在 Preferences/Settings | Keymap 中找到 Focus Editor 操作,点击右键,然后从下拉列表中选择 Add Keyboard Shortcut

编辑中的滚动条更明显

更明显的滚动条

我们添加了一个让滚动条更明显的选项。 为此,请在 Preferences/Settings | Appearance & Behavior | Appearance 中选中 Use contrast scrollbars 复选框。

版本控制的改进

包含仓库列表的新 Clone 对话框

重新设计了 Clone 对话框

Clone 对话框位于 VCS | Get from Version Control 下。 您现在可以从此对话框登录,或者如果您已登录,IDE 会立即预览按帐户或组织分组的所有仓库的列表。

Show Details 打开一个包含冲突更改的窗口

更深入地了解合并冲突

现在,您可以更轻松地在合并、变基或优选操作期间调查冲突。 只需点击 Show Details 链接即可获取导致相应代码状态的提交的列表,并在 Merge 对话框中详细了解更改源。

数据库更新

在数据库资源管理器中查看集合与字段

MongoDB 支持

GoLand 2019.3 为 MongoDB 提供了基本支持。 现在,您可以:

  • 在数据库资源管理器中查看集合与字段。
  • 打开任意集合或者观察查询结果。 还可以按列排序或者筛选值。
  • 运行查询并获取结果。 选择语句,并按 Ctrl/⌘+Enter 或使用工具栏上的 Play 按钮开始运行。
连接错误的示例

搜索连接错误

现在可以更轻松地探索连接错误。 当连接失败时,您可以在 IDE 中点击专用按钮,转到使用 Google 搜索引擎搜索的错误结果。

Web 开发

CSS 库中类名称的代码补全

CDN 上 CSS 库的补全

如果您要使用 Bootstrap 或另一个 CSS 库,并且已在您的 HTML 文件中将其与 CDN 链接,那么您现在可以从该库获得类名称的补全,而无需将它的源添加到项目中。

新变量的代码建议

新符号的名称建议

在 JavaScript 或 TypeScript 中添加新变量和参数名称时,您现在可以根据项目、标准库和要使用的依赖项中定义的类、接口和类型别名的名称获得名称建议。

对于新变量、函数、类和接口,您也会获得同一范围内已使用但尚未定义的名称的建议。