GoLand 2022.3 提供了性能增强以及针对泛型和 Go 工作区的新功能。新版本集成了 Go Playground,添加了改进 Go 文档注释的支持,为 HTTP 客户端和 Docker 引入了新功能,并提供了新 UI。

此外,GoLand 也迎来了 5 岁生日,官方邀请各位开发者们一起庆祝。现在在 GoLand 2022.3 或 GoLand 2022.2.5 中输入 “Happy B-day, GoLand!”,看看会有什么彩蛋。

性能改进

go list
[go list]()go list
go listgo list

打开时从缓存还原项目结构

go list

由此,索引编制可以不间断地继续,更快完成,并且代码洞察功能在打开项目后可以更快可用。

更快的 IDE 启动和项目打开

GoLand 还获得了许多其他性能改进,旨在减少启动应用程序以及在 JetBrains IDE 中打开项目所需的时间。

整体启动性能(包括编辑器还原)因此提高了约 30%。

泛型

泛型函数的测试生成

现在,您可以为具有泛型形参的函数生成测试。

大写类型形参的快速修复

现在有一项检测小写类型形参的检查,以及将其变成大写的快速修复。

Go 工作区

Go Workspace File(Go 工作区文件)操作

go.workgo.work
replacego.work
replacego.modgo.workreplace

Go 文档注释

Go 1.19 在文档注释中添加了对链接、列表和新标题的支持。 GoLand 2022.3 也支持这些新功能。

对链接的支持

我们在 GoLand 中添加了对文档链接的引用。 点击它们可以前往引用的元素,点击文本链接会前往文本链接定义。

文本和文档链接在 Quick Documentation(快速文档)弹出窗口和 Documentation(文档)工具窗口中都呈现为链接。

对新标题的支持

#

新标题在 GoLand 的 Quick Documentation(快速文档)弹出窗口和 Documentation(文档)工具窗口中呈现为 HTML 标题。

对列表的支持

列表在 GoLand 的 Quick Documentation(快速文档)弹出窗口和 Documentation(文档)工具窗口中呈现为 HTML 列表。

集成式 Go Playground

我们在 GoLand 中集成了 Go Playground 功能。

您可以选择一段代码,选择 Open In(打开方式)选项,然后点击 Playground。 这将打开带有工具栏的 scratch 文件,工具栏中的选项与 Go Playground 相同。

您可以格式化和共享您的代码、更改 Go 版本、使用 Go Playground 服务器运行代码,或在本地运行。

新的快速修复

无效递归类型的快速修复

如果类型包含自身,您将收到“Invalid recursive type”(无效递归类型)错误。 为避免这种情况,您应该包含一个指向类型的指针,而不是类型本身。 我们现在提供了快速修复。

编辑器

Code Vision

我们已经开始实现 Code Vision 功能。 目前,启用版本控制集成后会显示代码作者。 点击代码作者姓名将打开 Annotate with Git blame(使用 Git 追溯注解)边栏,显示是谁引入了更改。

我们还引入了在所有函数和类型附近显示的用法,显示函数或类型在当前项目中被引用的次数。

常量定义的内嵌提示

iotaiota

Fill all fields(填充所有字段)忽略自动生成的 protobuf 字段

XXX_

其他 Go 相关功能

Go 环境变量在设置中显示

GoLand 现在会自动获取 Go 模块相关系统变量,并将其显示在 Environment variables(环境变量)对话框窗口中。 要打开此窗口,请转至 Preferences | Go | Go Modules(设置 | Go | Go 模块),点击 Edit environment variables(编辑环境变量)图标。

软件包名称始终显示在 Quick documentation(快速文档)中

doc.go.go

提高文件大小上限

我们已将文件大小上限从 2.5 MB 提高到 10 MB。 代码洞察功能(如导航和高亮显示)不适用于超过大小上限的文件。

虽然 2.5 MB 的上限对于大多数文件来说已经足够,但有些项目的文件更大,例如 AWS SDK 或 GCP。

Receiver names are different(接收器名称不同)检查忽略生成的代码

^// Code generated .* DO NOT EDIT\\.$

HTTP 客户端

为 JavaScript 处理程序预请求脚本和新 API

HTTP 客户端现在支持在请求之前执行脚本块。 您可以在执行请求之前生成数据,并使用变量将其放入最终请求。 可以使用快速修复创建用于初始化变量的样板代码。

HTTP 客户端现已支持 Crypto API。 您可以计算 HTTP 请求的 md5 或 sha1 哈希值。

对于简单的情况,IDE 现在具有一组新的随机变量。

Docker

在不安装 Docker Desktop 的情况下从 WSL 使用 Docker 可执行文件

GoLand 现在支持连接到在适用于 Linux 的 Windows 子系统 (WSL) 中运行的 Docker。 您可以在 Preferences | Build, Execution, Deployment | Docker(设置 | 构建、执行、部署 | Docker)中设置连接。

新意图操作:Pull Docker image(拉取 Docker 镜像)

Dockerfiledocker-compose.yml
.dockerignore
.dockerignore

在 Dockerfile 文件中支持 heredoc 格式

DockerfileRUNCOPYDockerfile

来自 Docker 上下文的 Docker 连接

如果 Docker 配置中已有这些设置,您现在可以使用 Docker 上下文设置额外的 Docker 连接。 为此,您可以在 Services(服务)视图中调用 Add Service(添加服务)上下文菜单并选择 Docker Connections From Docker Contexts(来自 Docker 上下文的 Docker 连接)。

远程开发(测试版)

 

IDE 后端现在可以直接在 WSL 2 中启动,并且您可以像在 GoLand 中使用远程开发时连接到远程机器一样连接到它。

用户界面

新 UI

如您所知,今年 5 月我们宣布了 JetBrains IDE 中新 UI 的封闭预览计划。

我们邀请您在 Preferences | Appearance & Behavior | New UI Preview(设置 | 外观与行为 | 新 UI 预览)中切换到新 UI。

意图操作预览默认启用

意图操作的预览功能现在默认开启,让您可以立即查看应用 IDE 建议后代码将如何变化。

在意图操作列表打开时,您可以按 F1 启用或禁用预览功能。

将工具窗口停靠到浮动编辑器选项卡

为了让您可以更轻松地安排工作空间并在多个显示器上与 GoLand 交互,我们实现了将工具窗口拖出主窗口并将其停靠到浮动编辑器选项卡的选项。

改进了 Tips of the Day(每日小技巧)

我们增强了 Tips of the Day(每日小技巧)功能,这是一种帮助您探索 GoLand 的学习工具。

每个提示现在都有一个标题。 我们还微调了确定显示哪些提示的算法,让您可以看到与 IDE 体验和正在处理的项目最相关的提示。

更新了 Bookmarks(书签)

现在,又可以从编辑器选项卡中为文件添加书签了。 只需右键点击选项卡调用上下文菜单并选择 Bookmarks(书签)。

您可以将当前打开的所有选项卡中的所有文件添加到 Bookmarks(书签)。 为此,可以调用相同上下文菜单并选择 Bookmark Open Tabs(为打开的选项卡添加书签),也可以使用编辑器选项卡窗格右侧的三点图标调用此操作。

新的 Settings Sync(设置同步)解决方案

我们为同步自定义用户设置引入了重做的解决方案。 长期以来,有两个并行存在且具有交叉功能的插件:IDE Settings Sync(IDE 设置同步)和 Settings Repository(设置仓库)。 为避免因拥有两个近似捆绑插件而造成困惑,我们将其功能集合并为一个解决方案,即新的 Settings Sync(设置同步)插件。

数据库

Redis 支持

期待已久的 Redis 支持的初步迭代现已实现。

快速筛选

现在,使用快速搜索时,您也可以筛选对象。 所有不匹配的对象都将被隐藏。

Web 开发

针对 JavaScript 和 TypeScript 的 Code Vision

此版本为 Web 开发引入了的新 Code Vision 功能。 它可以收集 JavaScript 和 TypeScript 代码中类型和类型成员的各种指标,并在声明附近显示此信息。

其他更新

在 YAML 中禁止检查的快速修复

docker-compose.yml
#

适用于 Windows ARM64 的安装程序

GoLand 已经开始分发适用于 Windows ARM64 的安装程序,开发者可以从官方网站或通过 Toolbox App 下载。