GoLand 最新变化

GoLand 2020.2 引入了适用于 Go 模块的新功能、用于检查和修复代码中问题的新方式以及一组新的代码检查。 除此之外,您还会发现新的代码编辑功能(如期待已久的 Add Caret Per Selected Line)、对泛型的实验性支持、从编辑器将代码共享到 Go Playground 的功能、版本控制更新(包括在 Windows下支持 WSL2 中安装的 Git),等等!

喜欢交互式学习,而不是阅读信息? 在 IDE 的 Welcome 界面上完成 What's New in GoLand 2020.2 教程。

Go 模块改进

在 Environment Variables 对话框中设置新的 GOMODCACHE 环境变量。

从 Go 1.15 开始,您可以使用新的 GOMODCACHE 环境变量将模块缓存的默认位置从 $GOPATH/pkg/mod 更改为另一个文件夹。

要执行此操作,只需在 Preferences/Settings | Go Modules | Environment 中设置 GOMODCACHE。 IDE 会识别自定义位置并将其用于包含依赖项的所有后续操作。

为 go.mod 文件中的模块依赖项添加注释

Comment With Line Comment(在 Windows/Linux 上为 Ctrl+/,在 macOS 上为 ⌘/)操作现在可用于 go.mod 文件。

GoLand 会在 go.mod 文件中为 replace 语句补全右大括号

在您为 replaceexcluderequire 语句键入左大括号时,GoLand 现在会立即添加右大括号。

从注释获取一切信息

从注释导航到源代码

IDE 会显示相关包级声明注释的引用,并让您能够通过 Navigate to Declaration or Usages 操作(在 macOS 上为 ⌘B,在 Windows/Linux 上为 Ctrl+B/)导航到它们。

代码检查

通过 Inspections 微件在文件中的警告和错误间导航

新的 Inspections 微件会在代码编辑器的右上角显示当前文件中警告、错误和拼写错误的数量。 您可以使用箭头图标或 Next Error 操作 (F2) 进行浏览。

借助该微件,您可以配置高亮显示级别(从无、仅错误或所有问题中选择),更改检查的严重性级别,并将其切换为 Compact View,以便您集中精力。

在 Problems 视图中移动到错误并通过 Alt+Enter 修复

Problems 工具窗口会显示当前文件中的警告和错误列表,为您提供这些问题的描述,并让您能够使用 Alt+Enter 立即修复这些问题。

要打开 Problems 工具窗口,请点击 Inspections 微件或转到 View | Tool Window | Problems。 右键点击问题可以直接移动到出现错误的代码行。

GoLand 会针对转换时可能出现的问题发出警告,并建议通过 Alt+Enter 进行修复

新的代码检查会处理 string(int) 转换时可能出现的问题,该转换应返回 Unicode 代码点 x 的 UTF-8 表示,而不是 x 的预期十进制字符串表示。

GoLand 会就此类潜在错误通知您并提供专用的快速修复。

GoLand 会针对不正确的测试名称发出警告,并建议通过 Alt+Enter 修复

GoLand 会就测试和示例的常见错误用法通知您,所以您无需再为错误显式调用 go vet。 IDE 还会提供简单用例的快速修复;例如,它会建议将 Testme 重命名为 TestMe

Malformed struct tag 代码检查会就可能出现的问题警告用户

Malformed struct tag 代码检查会检查结构标记是否符合 Go 约定并就潜在问题通知您。

GoLand 会就不可能的接口断言提醒用户

Impossible interface type assertion 代码检查会检查类型断言 v.(T) 和相应的类型转换用例,其中 v 的静态类型 V 是一个不可能实现目标接口 T 的接口。

VT 包含名称相同但签名不同的方法时会出现这种情况。

代码编辑

Show Context Actions 会显示要应用的可能选项

要在将意图操作或快速修复的结果应用到代码之前对其进行预览,请使用快捷键 Alt+Enter 调用 Show Context Actions,选择所需的意图操作或快速修复,然后在 macOS 上按 ⌥+Space 或在 Windows 和 Linux 上按 Ctrl+Shift+I

Add Caret Per Selected Line 操作会在每个选定行的末尾创建脱字符号

新的 Add Caret Per Selected Line 操作可以在每个选定行的末尾创建脱字符号并取消选择行。 在 Windows/Linux 上使用快捷键 Alt+Shift+G 或在 macOS 上使用 ⌥⇧G 调用这一操作。

Put arguments on one line 意图操作会将表达式拆分为单独的行

Preferences/Settings | Editor | Code Style | Go | Wrapping and Braces 中为调用参数、函数参数和组合文字元素配置换行。

或者,您也可以通过 Alt+Enter 使用 Put arguments on separate linesPut arguments on one line 意图操作手动拆分及合并元素。

控制可变参数

Inline Variable 重构可将切片解包为可变参数

Introduce Variable 重构(在 Windows 和 Linux 上使用 Ctrl+Alt+V 或在 macOS 上使用 ⌘⌥ V)可以将一些可变参数打包成新的切片变量,Inline Variable(在 macOS 上使用 ⌥⌘N,在 Linux 和 Windows 上使用 Ctrl+Alt+N)可以反过来将切片解包为可变参数。

Unpack slice 快速修复实际运行效果

另外,您现在还可以通过 Unpack slice 快速修复处理解包可变参数的问题。

将项目另存为模板

Save Project as Template 工具窗口

您现在可以通过将项目或文件另存为自定义项目模板来重用它们:选择 Tools | Save Project as Template。 IDE 会重新创建包含文件、文件夹和构建配置的项目树。

Go Playground

下拉菜单中的 Share in Playground 操作

现在,在编辑器中双击就可以在 Go Playground 中共享和执行代码。 只需在下拉菜单或 Tools | Go Tools | Share in Playground 中选择 Go Tools | Share in Playground,或者您可以在 macOS 上按 ⌥⇧⌘S 或在 Windows/Linux 上按 Ctrl+Alt+Shift+S

这同样适用于 go2 文件,以便处理泛型,这种情况下,GoLand 会带您前往新的 https://go2goplay.golang.org/

泛型(又称 类型参数)

在编辑器中打开 go2 文件,提供语法高亮显示和基本引用解析

Go 团队最近公布了泛型的草稿设计。 请访问 Golang 文档,了解概念的完整详细信息

GoLand 2020.2 可为泛型提供实验性支持,您可以通过打开 Enable experimental support for generics a.k.a. type parameters设置(位于 Settings/Preferences | Go 中)来试用泛型。

此初始支持提供语法高亮显示和基本引用解析,且仅适用于 go2 文件。

在后台运行

通过 Alt+Enter 同步依赖项

启用 vendoring 模式后,只需使用项目中 Vendor 文件夹内存储的依赖项包即可构建应用程序。

现在,如果项目包含 vendor 文件夹并且您已在 Settings/Preferences | Go | Go Modules 中选中 Enable vendoring mode automatically 设置,解析就会仅使用 vendor/ 文件夹,而不会询问模块缓存。

GoLand 在进度条中显示 go list 进度

GoLand 会按顺序运行 go list 命令,并为进度条提供队列中 go list 命令实际数量的相关信息。

版本控制

在 Windows下支持 WSL2 中安装的 Git

在 Windows下支持 WSL2 中安装的 Git

GoLand 2020.2 让您能够从 WSL 2 使用 Git,这一支持在 Windows 10 版本 2004 的 5 月更新中提供。 如果未在 Windows 中安装 Git,GoLand 就会在 WSL 中自动搜索 Git 并从这里使用它。 还会为从 WSL 打开的项目自动从 WSL 切换到 Git(通过 \wsl$ path)。

改进的 Git 操作对话框

改进了 Git 操作对话框

我们为一些操作(如 MergePullRebase)重新设计了 Git 对话框,使这些操作更一致且信息丰富。 我们还让您能够轻松地理解要执行哪些 Git 命令,并为 Pull 对话框添加了 –rebase 选项,为 Merge 对话框添加了 –no-verify 选项。

通过评论操作开始审查

全面支持 GitHub 拉取请求

GitHub Pull Request 已得到完全支持! 浏览、分配、管理甚至合并 Pull Rrequest,查看时间线和内联注释,提交评论和审查,以及接受更改都无需离开 GoLand。

改进的 Compare Branches 结果显示

改进的 Compare Branches 结果显示

现在,在 GoLand 中比较 2 个分支时,您将能够在一个视图中看到所比较分支的提交。 IDE 现在会在编辑器中打开正在比较的两个分支的日志,而不是在 VCS 工具窗口中打开,VCS 工具窗口空间不足,无法显示全部信息。

数据库更新

单独的单元格值编辑器

单独的单元格值编辑器

现在,如果您的单元格中有一个巨大的值,可以在单独的面板中进行查看或编辑。 您还可以使用右侧工具栏切换自动换行模式。 为您的数据使用我们的代码编辑器的所有功能!

数据编辑器中的 DML 预览

数据编辑器中的 DML 预览

从该版本开始,您可以在数据编辑器中检查表示您的更改的查询。 存在未决定更改时,现在会有一个 DML 按钮处于活动状态。

您将看到一个包含 DML 预览的对话框。 此查询不是将要运行以修改您的数据的确切 SQL,因为 GoLand 使用 JDBC 驱动程序来更新表,但大多数情况下它是相同的。

布尔值的新 UI

为布尔值提供新 UI

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

针对 Google BigQuery 方言的编码辅助

Google BigQuery 方言

我们添加了一个新的 SQL 方言:Google BigQuery。 尚未完全支持 BigQuery,但万事皆有始。 如果您使用 Google BigQuery,GoLand 可以正确高亮显示您的查询并为查询提供编码辅助。

JavaScript 和 TypeScript

新的智能意图

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