GoLand 2020.2 引入了适用于 Go 模块的新功能、用于检查和修复代码中问题的新方式以及一组新的代码检查。 除此之外,您还会发现新的代码编辑功能(如期待已久的 Add Caret Per Selected Line)、对泛型的实验性支持、从编辑器将代码共享到 Go Playground 的功能、版本控制更新(包括在 Windows下支持 WSL2 中安装的 Git),等等!
喜欢交互式学习,而不是阅读信息? 在 IDE 的 Welcome 界面上完成 What's New in GoLand 2020.2 教程。
从 Go 1.15 开始,您可以使用新的 GOMODCACHE 环境变量将模块缓存的默认位置从 $GOPATH/pkg/mod
更改为另一个文件夹。
要执行此操作,只需在 Preferences/Settings | Go Modules | Environment 中设置 GOMODCACHE。 IDE 会识别自定义位置并将其用于包含依赖项的所有后续操作。
Comment With Line Comment(在 Windows/Linux 上为 Ctrl+/,在 macOS 上为 ⌘/)操作现在可用于 go.mod
文件。
在您为 replace、exclude 和 require 语句键入左大括号时,GoLand 现在会立即添加右大括号。
IDE 会显示相关包级声明注释的引用,并让您能够通过 Navigate to Declaration or Usages 操作(在 macOS 上为 ⌘B,在 Windows/Linux 上为 Ctrl+B/)导航到它们。
新的 Inspections 微件会在代码编辑器的右上角显示当前文件中警告、错误和拼写错误的数量。 您可以使用箭头图标或 Next Error 操作 (F2) 进行浏览。
借助该微件,您可以配置高亮显示级别(从无、仅错误或所有问题中选择),更改检查的严重性级别,并将其切换为 Compact View,以便您集中精力。
Problems 工具窗口会显示当前文件中的警告和错误列表,为您提供这些问题的描述,并让您能够使用 Alt+Enter 立即修复这些问题。
要打开 Problems 工具窗口,请点击 Inspections 微件或转到 View | Tool Window | Problems。 右键点击问题可以直接移动到出现错误的代码行。
新的代码检查会处理 string(int)
转换时可能出现的问题,该转换应返回 Unicode 代码点 x
的 UTF-8 表示,而不是 x
的预期十进制字符串表示。
GoLand 会就此类潜在错误通知您并提供专用的快速修复。
GoLand 会就测试和示例的常见错误用法通知您,所以您无需再为错误显式调用 go vet
。 IDE 还会提供简单用例的快速修复;例如,它会建议将 Testme
重命名为 TestMe
。
Malformed struct tag 代码检查会检查结构标记是否符合 Go 约定并就潜在问题通知您。
Impossible interface type assertion 代码检查会检查类型断言 v.(T)
和相应的类型转换用例,其中 v
的静态类型 V
是一个不可能实现目标接口 T
的接口。
V
和 T
包含名称相同但签名不同的方法时会出现这种情况。
要在将意图操作或快速修复的结果应用到代码之前对其进行预览,请使用快捷键 Alt+Enter 调用 Show Context Actions,选择所需的意图操作或快速修复,然后在 macOS 上按 ⌥+Space 或在 Windows 和 Linux 上按 Ctrl+Shift+I。
新的 Add Caret Per Selected Line 操作可以在每个选定行的末尾创建脱字符号并取消选择行。 在 Windows/Linux 上使用快捷键 Alt+Shift+G 或在 macOS 上使用 ⌥⇧G 调用这一操作。
在 Preferences/Settings | Editor | Code Style | Go | Wrapping and Braces 中为调用参数、函数参数和组合文字元素配置换行。
或者,您也可以通过 Alt+Enter 使用 Put arguments on separate lines 和 Put arguments on one line 意图操作手动拆分及合并元素。
Introduce Variable 重构(在 Windows 和 Linux 上使用 Ctrl+Alt+V 或在 macOS 上使用 ⌘⌥ V)可以将一些可变参数打包成新的切片变量,Inline Variable(在 macOS 上使用 ⌥⌘N,在 Linux 和 Windows 上使用 Ctrl+Alt+N)可以反过来将切片解包为可变参数。
另外,您现在还可以通过 Unpack slice 快速修复处理解包可变参数的问题。
您现在可以通过将项目或文件另存为自定义项目模板来重用它们:选择 Tools | Save Project as Template。 IDE 会重新创建包含文件、文件夹和构建配置的项目树。
现在,在编辑器中双击就可以在 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/。
Go 团队最近公布了泛型的草稿设计。 请访问 Golang 文档,了解概念的完整详细信息。
GoLand 2020.2 可为泛型提供实验性支持,您可以通过打开 Enable experimental support for generics a.k.a. type parameters设置(位于 Settings/Preferences | Go 中)来试用泛型。
此初始支持提供语法高亮显示和基本引用解析,且仅适用于 go2 文件。
启用 vendoring 模式后,只需使用项目中 Vendor 文件夹内存储的依赖项包即可构建应用程序。
现在,如果项目包含 vendor 文件夹并且您已在 Settings/Preferences | Go | Go Modules 中选中 Enable vendoring mode automatically 设置,解析就会仅使用 vendor/ 文件夹,而不会询问模块缓存。
GoLand 会按顺序运行 go list
命令,并为进度条提供队列中 go list
命令实际数量的相关信息。
GoLand 2020.2 让您能够从 WSL 2 使用 Git,这一支持在 Windows 10 版本 2004 的 5 月更新中提供。 如果未在 Windows 中安装 Git,GoLand 就会在 WSL 中自动搜索 Git 并从这里使用它。 还会为从 WSL 打开的项目自动从 WSL 切换到 Git(通过 \wsl$ path
)。
我们为一些操作(如 Merge、Pull 和 Rebase)重新设计了 Git 对话框,使这些操作更一致且信息丰富。 我们还让您能够轻松地理解要执行哪些 Git 命令,并为 Pull 对话框添加了 –rebase
选项,为 Merge 对话框添加了 –no-verify
选项。
GitHub Pull Request 已得到完全支持! 浏览、分配、管理甚至合并 Pull Rrequest,查看时间线和内联注释,提交评论和审查,以及接受更改都无需离开 GoLand。
现在,在 GoLand 中比较 2 个分支时,您将能够在一个视图中看到所比较分支的提交。 IDE 现在会在编辑器中打开正在比较的两个分支的日志,而不是在 VCS 工具窗口中打开,VCS 工具窗口空间不足,无法显示全部信息。
现在,如果您的单元格中有一个巨大的值,可以在单独的面板中进行查看或编辑。 您还可以使用右侧工具栏切换自动换行模式。 为您的数据使用我们的代码编辑器的所有功能!
从该版本开始,您可以在数据编辑器中检查表示您的更改的查询。 存在未决定更改时,现在会有一个 DML 按钮处于活动状态。
您将看到一个包含 DML 预览的对话框。 此查询不是将要运行以修改您的数据的确切 SQL,因为 GoLand 使用 JDBC 驱动程序来更新表,但大多数情况下它是相同的。
现在提供了一种更方便用户查看和编辑布尔值的方法。 True 值现在用一个圆点标记,以区别于其他所有值。
我们添加了一个新的 SQL 方言:Google BigQuery。 尚未完全支持 BigQuery,但万事皆有始。 如果您使用 Google BigQuery,GoLand 可以正确高亮显示您的查询并为查询提供编码辅助。
新智能意图 (Alt+Enter) 会帮助您更快地执行一些操作。 例如,您现在可以将带有数字索引的 for 循环快速转换为 forEach 数组方法。 浏览 JavaScript 和 TypeScript 文件中的文档注释也变得更容易,因为您现在可以在编辑器中直接呈现它们,这将最大程度地减少分心。