GoLand 最新变化

GoLand 2022.2 为泛型go.work 带来了新功能。 我们还增加了对模糊测试的支持。

SQL 语句现在可被自动检测,您将获得针对它们的全面代码辅助。

GoLand 现已支持 WebSocket 连接,并且可以通过 HTTP 和 WebSocket 协议发送 GraphQL 查询。

如果您更喜欢互动式学习方式,可在欢迎屏幕上完成 What's New in GoLand 2022.2(GoLand 2022.2 最新变化)教程。

泛型

将空接口替换为 any 的意图操作

将空接口转换为 any 的意图操作

GoLand 的新增检查可以将空接口的用法报告为类型或类型约束。

另一个意图操作是将 interface{} 替换为 any。 从意图操作的弹出窗口中,您可以替换文件中的所有空接口。

将具有空形参列表的类型形参删除的快速修复

将具有空形参列表的类型形参删除的快速修复

具有空形参列表的类型形参现在报告为错误。 我们添加了将其删除的快速修复。

对未使用的类型形参的检查

对未使用的类型形参的检查

我们添加了一项可以报告未使用的类型形参的新检查。 它们将被灰显,将鼠标悬停到它们上面时,您会看到警告。

对接口与方法的联合体的检查

对接口与方法的联合体的检查

如果您尝试将接口与方法在联合中一起使用,IDE 现在会报告错误。

对将类型形参用作约束的检查

对将类型形参用作约束的检查

如果您尝试将类型形参用作约束,GoLand 将显示错误。

GoLand 会在创建方法时插入类型形参的标识符。

输入方法的接收器时对类型形参的补全

在方法创建期间添加接收器时,GoLand 会自动插入类型形参的标识符。

新的 Find Usages(查找用法)组

类型形参的新 Find Usages(查找用法)组

我们为泛型引入了新的 Find Usages(查找用法)组:类型形参声明

模糊测试

在 GoLand 中运行模糊测试

运行模糊测试

现在,您可以从 GoLand 运行模糊测试。 如果您点击模糊测试旁装订区域中的绿色三角形图标,将看到运行测试的不同选项。 如果测试失败,失败的种子语料库条目将被写入文件并置于 testdata 文件夹的软件包目录中。

此文件的路径也将作为可点击链接出现在控制台中。 如果您点击此链接,文件将在 IDE 中打开,文件顶部将显示绿色三角形图标。 点击此图标将运行 go test 并显示失败的种子语料库条目。

From GoLand you can also run fuzz tests just like normal unit tests.

将 Go SDK 更改为支持模糊测试的版本的快速修复

更改 Go SDK 的快速修复

在 GoLand 中,如果配置了不支持模糊测试的 Go SDK,装订区域中将不再显示运行按钮。 我们添加了一个快速修复,它可以在当前 Go SDK 不支持模糊测试时更改 Go SDK。

Go 工作区

将多条 use 指令组合到一条指令的快速修复

对多条 use 指令进行分组的快速修复

我们添加了一个快速修复,它可以将 go.work 文件中的多条 use 指令组合到一条指令中。

Go 1.19

为 Appendf 添加格式字符串实参

fmt.Appendf 的支持

我们添加了对 fmt.Appendf 的支持,GoLand 现在可以识别字符串中的格式设置动词。 因此,Appendf 函数可以利用格式设置函数具有的所有功能,例如 Add a format string argument(添加格式字符串实参)意图操作。

unix 构建约束的支持

GoLand 现已支持新的 unix 构建标记,后者可以识别任何 Unix 或类 Unix 系统。

loong64 加入 Arch 列表

Go 1.19 引入了新架构 loong64。 我们已将其添加到 Settings | Go | Build Tags & Vendoring(设置 | Go | 构建标记和 Vendoring)下的 Arch 列表中。

快速文档

我们改进了 Quick Documentation(快速文档):

  • GoLand 现在会为 25 个 Go 关键字中的每一个显示有意义的关键字工具提示,概述相关关键字的语义。
  • 我们现在会显示通道方向信息。 此数据在三个位置的工具提示中显示:将鼠标悬停在 chan 关键字上时、通道进行发送和接收操作时以及对通道类型的所有引用上。
  • iota 的 Quick Documentation(快速文档)现在包含有关使用方式的额外信息。 如果常量是 iota 组的一部分,则值现在会显示在补全框中,即使常量是隐式定义的。
  • 另有一个新的工具提示解释了类型 switch 的运作方式。
 
  • 如果您在类型形参上调用 Quick Documentation(快速文档),GoLand 将显示工具提示,简要说明泛型如何工作并提供 Go 团队教程的链接。
  • 类型断言的工具提示现在包含额外相关信息并提供了示例。
  • 如果将鼠标悬停在大括号内的区域上,在您初始化映射、数组、切片和结构时,GoLand 会显示额外信息。
  • 将鼠标悬停在空白标识符上时,GoLand 会显示工具提示,解释空白标识符及其运作方式。

更多 Go 相关改进

性能优化

GoLand 不再扫描 ~/go/pkg/mod 中的 cache 子目录,因为后者不包含 IDE 正常运行所需的信息。 这个文件夹可能相当大,将其从扫描中排除应该可以提高性能。

go:linkname 指令的支持

我们添加了对 go:linkname 编译器指令的支持:

//go:linkname localname [importpath.name]

它会指示编译器使用 importpath.name 作为在源代码中声明为 localname 的变量或函数的对象文件符号名称。

iota 非常规用法检查

iota 非常规用法检查

GoLand 中新增了一项检查,如果 iota 的用法不合常规,检查会发出警告。

关于尝试为名为 iota 的常量分配值的警告

我们还为 iota 和其他内置常量启用了 Reserved word used as name(保留词用作名称)检查。 尝试对名为 iotatruefalse 的常量分配值时,将触发检查。

关于在值和指针接收器上都有方法的类型的警告

对值和指针接收器上的方法的检查

Go 文档建议给定类型上的所有方法都应该有值或指针接收器。

GoLand 中新增了一项检查,如果类型在值和指针接收器上都有方法,检查会发出警告。

自动 SQL 检测

GoLand 可以检测 SQL 语句。

SQL 语句现在可被自动检测 ,语言将被注入到与特定模式匹配的每个字符串字面量。 将语言注入字符串字面量时,如果编辑该字面量,您将获得全面的代码辅助。

编辑模式的设置

您可以在 Settings | Editor | Language Injections(设置 | 编辑器 | 语言注入)中查找、编辑模式以及添加您自己的模式。

运行任何内容

Run Anything(运行任何内容)操作

GoLand 现在支持 Run Anything(运行任何内容)操作,您可以使用它快速启动运行/调试配置、应用程序、脚本、命令和任务,以及打开最近的项目。 只需按两次 Ctrl 并在搜索栏中输入所需内容即可。

HTTP 客户端

通过 WebSocket 连接发送消息

对 WebSocket 端点的支持

GoLand 现在支持 WebSocket 连接。 您可以创建请求以及发送和接收消息。

发送 GraphQL 查询

对 GraphQL 端点的支持

GoLand 现在可以原生通过 HTTP 和 WebSocket 协议发送 GraphQL 查询。 对于 http://https://,使用的是简单的 HTTP 请求,ws://wss:// 则被委托给 WebSocket 执行器。

在 HTTP 客户端中选择运行环境

选择运行环境

现在,在装订区域的播放图标上可以通过新方式选择运行环境。 要启用此功能,请从 Run with(运行方式)组合框中选择 Select Environment Before Run(运行前选择环境)选项。

远程开发

GoLand 欢迎屏幕的 Remote Development(远程开发)版块

我们更新了 GoLand 欢迎屏幕的 Remote Development(远程开发)版块。 在这里,您可以为后端编排选择首选方法。 此外,端口转发功能现在可用于终端上运行的进程。

您可以在这篇博文中详细了解远程开发的新功能。

Space

Space 集成现与 GoLand 捆绑

JetBrains Space 是一个完整的软件开发平台,在整个开发环境为 JetBrains IDE 提供项目管理、问题跟踪、Git 托管、代码审查、持续集成、软件包仓库和远程后端编排。

Space 集成现与 GoLand 捆绑。 With this first-class integration, you can browse Space projects and clone repositories, then start working on them directly. 当更改就绪后,您可以在 IDE 中创建合并请求并执行代码审查。

您现在可以直接在 GoLand 中管理用于远程开发的 Space 开发环境。

您现在可以直接在 GoLand 中管理用于远程开发的 Space 开发环境

当 IDE 关联到 Space 组织时,所有现有开发环境都会同步。 您可以为仓库和分支创建新的开发环境,并立即开始编码。 您可以将开发环境休眠以减少资源消耗,或者在工作完成后直接将其删除。

用户界面

合并项目窗口

macOS 上的 Merge All Project Windows(合并所有项目窗口)操作

我们为 macOS 用户引入了一项功能,利用此功能可以将所有打开的项目窗口合并成一个,将其变成标签页。 转到 Window | Merge All Project Windows(窗口 | 合并所有项目窗口)即可启用。

使用快捷键更改字体大小

更改字体大小的键盘快捷键

我们引入了一个键盘快捷键,它可以更改编辑器中所有位置的字体大小。 要增大字体,请按 Alt+Shift+.。要减小字体,请按 Alt+Shift+,

在编辑器中放大或缩小代码时,您现在可以看到显示当前字体大小的指示器以及将其恢复为默认值的选项。

添加书签期间使用 Description(描述)字段

助记书签的新 Description(描述)字段

我们已将 Description(描述)字段集成到 Add Mnemonic Bookmark(添加助记书签)对话框中,因此,您可以为书签添加可选描述。 要添加助记书签,请右键点击要添加书签的行旁边的装订区域,然后从上下文菜单中选择相应选项。 或者使用快捷键 Ctrl+F11

欢迎屏幕

Cloning repository(正在克隆仓库)进度条

Cloning repository(正在克隆仓库)进度条现在直接显示在 Projects(项目)列表中。

可以访问 Code Completion Settings(代码补全设置)的弹出窗口

更快访问 Code Completion Settings(代码补全设置)

现在,您可以从代码补全弹出窗口的垂直省略号菜单按钮访问 Code Completion Settings(代码补全设置)。

编辑器

代码补全设置

控制自动圆括号插入

我们添加了一个选项,可用于切换 IDE 在代码补全期间是否自动插入圆括号。

设置窗口,右下角为新的 Highlighting in editor(编辑器中的高亮显示)下拉菜单

更改检查的高亮显示样式

您可以使用 Settings | Editor | Inspections(设置 | 编辑器 | 检查)中的新 Highlighting in editor(编辑器中的高亮显示)下拉菜单调整检查的高亮显示样式。

这为您提供了更多用于自定义检查的选项。 例如,您可以将特定检查的严重性级别设为 Warning(警告),但将高亮显示样式更改为 Error(错误)。

Docker

Copy Docker Image(复制 Docker 镜像)操作

复制 Docker 镜像

现在,您可以使用新的 Copy Docker Image(复制 Docker 镜像)操作将镜像从一个 Docker 守护进程复制到另一个,该操作会将镜像保存到文件中,然后将其推送到所选连接。

IDE 重启时 Docker 自动连接

现在,重新启动 IDE 后,GoLand 会自动连接到 Docker。 这一新设置在 Settings | Advanced Settings | Docker(设置 | 高级设置 | Docker)中默认启用。

与 Colima 和 Rancher 的集成

GoLand 现在与 Colima 和 Rancher 集成,支持更多用于建立与 Docker 守护进程的连接的选项。

数据库

导入多个 CSV 文件

导入多个 CSV 文件的选项

您现在可以选择多个 CSV 文件并一次全部导入。

Script(脚本)和 Playground(演练场)解析模式

数据库的解析模式

使用数据库时,您现在拥有两种文件解析模式Playground(演练场)和 Script(脚本)。

Playground(演练场)适用于有一组未连接查询的情况,而 Script(脚本)适用于具有顺序逻辑的查询。

其他改进

导入受信任的 SSL 证书

GoLand 现在可以帮助您从系统受信任存储区导入受信任的 SSL 证书。 它将自动使用特定于企业环境的自定义证书。 您无需执行任何其他操作。 一切都开箱即用。

JSON 和 YAML 文件中的可点击 URL

JSON 和 YAML 文件现在会在以 http://https:// 开头的值中自动插入 Web 引用。 您可以在 Web 浏览器中打开这些链接并在 HTTP 客户端中生成请求。