GoLand 最新变化

GoLand 2022.3 提供了性能增强以及针对泛型Go 工作区的新功能。

我们集成了 Go Playground,添加了改进 Go 文档注释的支持,为 HTTP 客户端和 Docker 引入了新功能,并提供了新 UI

同样,您也会发现针对 Web 开发和数据库的新功能,例如 Redis 支持

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

最后,今天是 GoLand 的 5 岁生日,我们邀请您来和我们一起庆祝。 在 GoLand 2022.3 或 GoLand 2022.2.5 中输入“Happy B-day, GoLand!”,看看会发生什么!

性能改进

显示正在运行的索引编制和 go list 的 Background Tasks(后台任务)窗口

有助于改进索引编制的 go list 更改

打开项目时,GoLand 会为文件编制索引并运行 go list 命令,该命令会报告有关项目结构的信息。 索引编制会在 go list 运行时暂停,在索引编制完成之前您无法访问代码洞察功能。

此前,GoLand 在某些情况下会运行两次 go list。 我们更改了 API,减少了 go list 启动的数量。 我们希望这一改变能够显著提高具有许多模块的大型项目的性能。

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

现在,打开项目时,go list 报告的信息将被保存到磁盘缓存。 再次打开该项目时,项目结构相关数据将从内存加载并在索引编制开始时被纳入考量。

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

更快的 IDE 启动和项目打开

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

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

泛型

为泛型函数生成测试

泛型函数的测试生成

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

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

大写类型形参的快速修复

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

Go 工作区

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

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

New(新建)上下文菜单中,您现在会找到 Go Workspace File(Go 工作区文件)操作。 选择时,根文件夹中将出现一个 go.work 文件。 现有 Go 模块将自动添加到 go.work 文件中。

使用 replace 指令生成 go.work

使用 replace 指令生成 go.work

如果有 replace 指令,您现在可以从 go.mod 生成 go.work。 将文本光标置于 replace 指令上,按 Alt+Enter 查看所有可用意图操作,然后选择 Add … module to workspace…(将 … 模块添加到工作区)快速修复。

Go 文档注释

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

文本和文档链接显示在 Quick Documentation(快速文档)弹出窗口和 Documentation(文档)工具窗口中

对链接的支持

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

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

新标题显示在 Documentation(文档)工具窗口中

对新标题的支持

从 Go 1.19 开始,标题是以数字符号 (#) 开头后跟空格和标题文本的行。

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

列表显示在 Documentation(文档)工具窗口中

对列表的支持

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

集成式 Go Playground

在 GoLand 内部使用 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 追溯注解)边栏,显示是谁引入了更改。

函数和类型附近显示的用法

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

常量定义块的嵌入提示显示在编辑器中

常量定义的嵌入提示

GoLand 现在会显示常量定义块的嵌入提示。 这在 iota 派生的常量块中特别实用,其中提示显示了与每个位置关联的 iota 值。

调用 Fill all fields intention(填充所有字段)意图操作将忽略自动生成的 protobuf 字段

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

调用 Fill all fields(填充所有字段)意图操作时,IDE 会忽略以 XXX_ 开头的自动生成的协议缓冲区字段。 这些字段仅在第二次调用补全后显示。

其他 Go 相关功能

Go 环境变量在设置中显示

Go 环境变量在设置中显示

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

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

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

IDE 现在始终在顶层声明的 Quick documentation(快速文档)弹出窗口中显示软件包名称。 此前,只有在找到 doc.go<pkg_name>.go 文件时才会显示软件包头。

提高文件大小上限

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

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

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

由于 Receiver names are different(接收器名称不同)检查与生成的代码无关,我们已为包含与以下正则表达式匹配的注释的文件将其禁用:^// Code generated .* DO NOT EDIT\.$

HTTP 客户端

在 HTTP 客户端中编写脚本块

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

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

计算 HTTP 请求的 md5 或 sha1 哈希值

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

在 HTTP 请求中使用随机值

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

Docker

Windows 上 GoLand 中的 Docker 设置

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

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

使用快速修复拉取镜像

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

现在,有一种无需从 Dockerfiledocker-compose.yml 运行即可拉取镜像的简单方式。 为此,在高亮显示的镜像名称上调用上下文操作 (Alt+Enter),然后选择 Pull Docker image(拉取 Docker 镜像)。

在 dockerignore 文件中使用代码补全

.dockerignore 文件类型支持

我们引入了对 .dockerignore 文件的全面支持,包括代码高亮显示和补全。 从 IDE 构建镜像时,这些文件会被纳入考量。

Heredoc 语法在 GoLand 中高亮显示

在 Dockerfile 文件中支持 heredoc 格式

Here 文档允许将后续 Dockerfile 行重定向到 RUNCOPY 命令的输入。 GoLand 现在支持此语法,您可以使用它在 Dockerfile 文件中生成配置文件或多行脚本。

使用 Docker 上下文设置额外的 Docker 连接

来自 Docker 上下文的 Docker 连接

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

远程开发(测试版)

GoLand 欢迎屏幕的 Remote Development(远程开发)部分

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

用户界面

设置中的“New UI Preview”(新 UI 预览)部分

新 UI

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

我们邀请您在 Settings | Appearance & Behavior | New UI Preview(设置 | 外观与行为 | 新 UI 预览)中切换到新 UI。尝试一下,并与我们分享您的看法。

使用意图操作的预览功能

意图操作预览默认启用

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

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

将工具窗口拖出主窗口并将其停靠到浮动编辑器标签页

将工具窗口停靠到浮动编辑器标签页

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

Tip of the Day(每日小技巧)窗口

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

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

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

从编辑器标签页为文件添加书签

更新了 Bookmarks(书签)

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

将当前打开的标签页中的所有文件添加到书签

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

GoLand 设置中的 Settings Sync(设置同步)部分

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

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

You can find details about the new unified solution here.

数据库

注意:要了解 2022.3 版本中针对数据库的所有更新,请前往 DataGrip 最新变化页面。

在 Database(数据库)工具窗口中选择 Redis 连接

Redis 支持

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

在 Database(数据库)工具窗口中使用快速搜索时筛选对象

快速筛选

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

Web 开发

注意:要了解 2022.3 版本中的所有 Web 开发改进,请前往 WebStorm 最新变化页面。

代码作者的姓名和使用指标显示在编辑器中

针对 JavaScript 和 TypeScript 的 Code Vision

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

其他更新

使用快速修复在 YAML 文件中禁止检查

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

在 YAML 文件(包括 Kubernetes 文件、OpenAPI 规范和 docker-compose.yml 文件)中,新增的快速修复可以通过注释禁止检查。

我们还引入了一个选项,用于折叠组成 3 行或更多行的块并以 # 开头的多行注释。

适用于 Windows ARM64 的安装程序

我们已经开始分发适用于 Windows ARM64 的安装程序。 您可以从我们的网站或通过 Toolbox App 下载。