go mod 指定分支_GoLand 2020.2 Beta 版发布:go.mod 升级以及对泛型的实验性支持

GoLand 2020.2 Beta版发布,专注于Go Modules的新功能,包括支持GOMODCACHE环境变量、升级go.mod文件及对泛型的实验性支持。新增代码编辑、检查和问题视图工具窗口等功能,提高开发效率。此外,还改进了Git操作和对GitHub Pull Request的全面支持。

GoLand 2020.2 达到 Beta。这意味着我们将结束一连串的新功能开发,将重点转移到完善我们已经完成的工作上,并开始计算发布日之前的日子!

158682a31da1280f3a7872bfba84244b.png

与我们的“抢先体验计划”版本相比,该测试版非常稳定,但请记住,可能仍然在某处存在 Bug。

同样请注意,此 Beta 版本是 EAP 周期中的最后一个版本,不需要订阅即可使用(如果您只是想尝试 GoLand,请尝试)。测试版通常会在发布候选版本之后出现,一旦我们发现该版本足够好并且可以在您的计算机上安装了。

在此发布周期中,我们为即将推出的 GoLand 2020.2 打包了 Go 模块的新功能,更好地呈现了代码中可能存在的问题和薄弱环节,提供了新的代码检查功能以及新的代码编辑功能,例如期待已久的 “Add Caret Per Selected Line”,改进了后台流程,使其更透明,更快,更多!

让我们来看看即将发布的版本中的新功能。选择您感兴趣的主题,或浏览整个博客文章以了解每个新功能。

  • Go Modules
  • Generics a.k.a. Type Parameters
  • Code Editing
  • Code Inspections
  • Take Variadic Arguments Under Сontrol
  • References from Comments
  • Save Projects as Templates
  • Under the Hood Processes
  • Version Control

Go Modules

支持 GOMODCACHE 环境变量

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

为此,只需在 “Preferences/Settings | Go Modules | Environment” 设置 GOMODCACHE 即可。

IDE 将识别自定义位置,并将其用于具有依赖关系的所有后续操作。同步依赖项快速修复程序(可通过 Alt + Enter 实现)会将依赖项下载到 GOMODCACHE,外部库也将在新的自定义位置显示依赖项。

be1776849d09c7eba2581b94bc278d6b.png

升级 go.mod 文件

行注释(在 Windows/Linux 上为 Ctrl + /,在 macOS 上为 ⌘ + /)可用于 go.mod 文件。

63b0388b092577a52c1aea3ae96f9065.gif

现在,当您键入 replace,exclude 和 require 语句的左括号时,GoLang 立即自动为你添加右括号。

5065f3dc3f85c5a66cfa67b20429ad81.gif

泛型(又称类型参数)

6月16日,Go Team 宣布了泛型(也称为类型参数)设计草案。请访问 Golang 文档以获取有关该概念的完整详细信息[1]

这是一个重大的发展,因此我们立即着手增加对它的支持。GoLand 2020.2 Beta 提供了对泛型的实验性支持,您可以通过在 Settings/Preferences | Go 启用对泛型的实验性支持。

此初始支持提供语法高亮显示和基本参考解析,并且仅在 go2 文件中有效。

请注意,有关泛型的工作仍在进行中,我们目前尚无法提供全面的支持。

尽管如此,请分享您的体验和您可能有的任何建议。它确实可以帮助我们完善到目前为止已完成的工作,因此我们可以使其可靠并使用更高级的功能进行填充。

4b8ab06ed774631e3d89de3de02cc7d1.png

代码编辑

想要将快速修复的结果应用于代码之前预览其结果,请使用 Alt + Enter 快捷方式调用显示上下文操作,选择所需的快速修复,然后在 macOS 上按 Alt + Space 或在 Windows 和 Linux 上为 Ctrl + Shift + I。

76ba2d85cf25a64647649fca43048a7e.gif

新的“按选定的行添加插入(多行操作)”操作会在每个选定行的末尾插入,并取消选择这些行。在 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,*以手动拆分和合并元素。

970c5dcdc8bd916216bfad3037fe91b0.gif

代码检查

GoLand 2020.2 有了一个新的检查部件(Inspections Widget)!它位于代码编辑器的右上角,显示当前文件中的警告,错误和错别字数量。您可以使用箭头图标或“下一个错误”操作(F2)遍历它们。

该小部件可让您配置突出显示级别(从无、仅错误或所有问题中选择),更改检查的严重性级别以及切换紧凑视图。

7f4cecc8e0868da06efd8eca17be86fd.gif

我们还添加了一个“问题视图”工具窗口,该窗口显示当前文件中的警告和错误列表,为您提供这些问题的描述,并让您立即使用 Alt + Enter 进行修复。在“问题视图”工具窗口中右键单击问题,以直接移至发生错误的代码行。要打开“问题视图”,请单击“检查”小部件或转到 View | Tool Window | Problems

GoLand 2020.2 现在在所有情况下都在项目视图中标记包含错误的文件,以使您更容易发现它们。

fcca732227ce1f255047fdd1d1afe4c1.png

现在,新的代码检查可以处理 string(int) 转换可能出现的问题,这些转换返回 Unicode代码点 x 的 UTF-8 表示形式,而不是预期的 x 十进制字符串表示形式。GoLand 将通知您有关此类潜在错误的信息,并提供专用的快速修复程序。

0d38262538732ac4c59cf39167c7ca7a.gif

GoLand 会通知您有关测试和示例的常见错误用法,因此您不再需要为此而明确地使用 go vet。在简单情况下,IDE 还提供了快速修复程序。例如,它建议将 Testme 重命名为 TestMe。

28146c12c50dfcfed5ebe7b7abe08299.png

格式错误的 struct tags 代码检查将检查 struct tags 是否符合 Go 约定,并通知您潜在的问题。

d68cde911a2902754b30c98f7958e5f2.png

不可能的接口类型断言代码检查将检查类型断言 v.(T) 和相应的 type-switch case,其中 v 的静态类型 V 是无法实现目标接口 T 的接口。这发生在当 V 和 T 包含相同名称但签名不同的方法时。

d9e6053049efd27a99f772dcea2713dc.png

在控制下接受可变参数的论证

引入变量重构(在 Windows 和 Linux 上为 Ctrl + Alt + V,在 macOS 上为 ⌘ + ⌥ + V)可以将一些可变参数打包到新的 slice 变量中;相反的,内联变量(在 MacOS 上为 ⌥ + ⌘ + N 和在 Linux 上为 Ctrl + Alt + N),则将切片分解为可变参数。

43428089b69234f99f735c2db2a448b3.gif

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

884dbb5494ef455a86d77d95f28b6944.gif

注释中的引用

IDE 显示注释中对相关程序包级别声明的引用,并允许您通过“导航到声明或使用”操作(在 macOS 上为 ⌘ + B,在Windows / Linux上为 Ctrl + B)来跳转。

711b3be9f6d3326ea2fafa370dc837e4.gif

将项目另存为模板

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

39fac316e3253b1be7e3820323ae8a34.png

后台进程

更好地解决带有 Vendor 文件夹的项目

启用 vendoring 模式后,仅使用项目中 Vendor 文件夹中存储的依赖项包来构建应用程序。

现在,如果项目有一个 vendor 文件夹,并且您已经选中了 Settings/Preferences | Go | Go Modules中的 Enable vendoring mode**automatically,这时只会使用 vendor 文件夹,而不会查询模块缓存。一个重要的优点是您可以更快地发现未解决的依赖项。

Go list 命令

GoLand 依序运行 go list 命令,并提供一个进度条,其中包含有关队列中 go list 命令的实际数量的信息。

ce5e7575d9672fb66d78c111cbce0947.png

版本控制

WSL2 在 Windows 上对 Git 的支持

GoLand 2020.2 将允许您使用 WSL2 中的 Git,该版本在 Windows 10(2004 年 5 月更新)的本地版本中可用。如果 Windows 中未安装 Git,GoLand 将在 WSL 中自动查找 Git 并使用它。对于从 WSL 打开的项目,它还将自动从 WSL 切换到 Git(通过 wsl$ 路径)。

f863b829dc3b55148aba9c339adf1eb9.gif

改进的 Git 操作对话框

我们针对 Merge, PullRebase 之类的操作重新设计了 Git 对话框,以使它们更加一致和好用。我们还使您更容易理解将执行哪个 Git 命令,并在 “Pull” 对话框中添加了 --rebase 选项,在“Merge”对话框中添加了--no-verify 选项。

b557daedaa807b2597198ecae6b8140d.png

全面支持 GitHub Pull Request

GitHub Pull Requests 配备齐全!在不离开 GoLand 的情况下浏览,分配,管理,甚至合并拉取请求,查看时间线和内联注释,提交注释和评论以及接受更改。

732018ee18f06880e78aae73854d64bb.png

从日志中压缩(Squash)本地提交

现在,您可以在 Git 工具窗口的“日志”选项卡中选择多个本地提交,并将其压缩为一个。可以从右键单击上下文菜单中执行此操作。

改进了“比较分支”结果的表示方式

现在,当您在 GoLand 中比较 2 个分支时,可以在一个视图中查看比较后的分支的提交。IDE 现在将在编辑器中而不是在 VCS 工具窗口中打开要比较的两个分支的日志,在该窗口中没有足够的空间来显示所有信息。

2e02f0b724d2a6f39069420199012237.png

原文链接:https://blog.jetbrains.com/2020/07/16/goland-2020-2-reaches-beta/

作者:Ekaterina Zharova[2]

日期:2020-07-16

编译:polarisxu

参考资料

[1]

完整详细信息: https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md

[2]

Ekaterina Zharova: https://blog.jetbrains.com/author/ekaterina-zharovajetbrains-com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值