GoLand 2022.3 是 2022 系列的最后一个版本,提供了性能增强以及针对泛型和 Go 工作区的新功能。新版本集成了 Go Playground,添加了改进 Go 文档注释的支持,为 HTTP 客户端和 Docker 引入了新功能,并提供了新 UI。
此外,GoLand 也迎来了 5 岁生日,官方邀请各位开发者们一起庆祝。现在在 GoLand 2022.3 或 GoLand 2022.2.5 中输入 “Happy B-day, GoLand!”,看看会有什么彩蛋。
一起看看 2022.3 有哪些改进。
go list
更改打开项目时,GoLand 会为文件编制索引并运行 go list
命令,该命令会报告有关项目结构的信息。索引编制会在 go list
运行时暂停,在索引编制完成之前你无法访问代码洞察功能。
此前,GoLand 在某些情况下会运行两次 go list
。这次更改了 API,减少了 go list
启动的数量。希望这一改变能够显著提高具有许多模块的大型项目的性能。
现在,打开项目时,go list
报告的信息将被保存到磁盘缓存。再次打开该项目时,项目结构相关数据将从内存加载并在索引编制开始时被纳入考量。
由此,索引编制可以不间断地继续,更快完成,并且代码洞察功能在打开项目后可以更快可用。
GoLand 还获得了许多其他性能改进,旨在减少启动应用程序以及在 JetBrains IDE 中打开项目所需的时间。
整体启动性能(包括编辑器还原)因此提高了约 30%。
现在,你可以为具有泛型形参的函数生成测试。
现在有一项检测小写类型形参的检查,以及将其变成大写的快速修复。
在 New(新建)上下文菜单中,你现在会找到 Go Workspace File(Go 工作区文件)操作。选择时,根文件夹中将出现一个 go.work
文件。现有 Go 模块将自动添加到 go.work
文件中。
replace
指令生成 go.work
如果有 replace
指令,你现在可以从 go.mod
生成 go.work
。将文本光标置于 replace
指令上,按 ⌥⏎ 查看所有可用意图操作,然后选择 Add … module to workspace…(将 … 模块添加到工作区)快速修复。
Go 1.19 在文档注释中添加了对链接、列表和新标题的支持。GoLand 2022.3 也支持这些新功能。
我们在 GoLand 中添加了对文档链接的引用。点击它们可以前往引用的元素,点击文本链接会前往文本链接定义。
文本和文档链接在 Quick Documentation(快速文档)弹出窗口和 Documentation(文档)工具窗口中都呈现为链接。
从 Go 1.19 开始,标题是以数字符号 (#
) 开头后跟空格和标题文本的行。
新标题在 GoLand 的 Quick Documentation(快速文档)弹出窗口和 Documentation(文档)工具窗口中呈现为 HTML 标题。
列表在 GoLand 的 Quick Documentation(快速文档)弹出窗口和 Documentation(文档)工具窗口中呈现为 HTML 列表。
我们在 GoLand 中集成了 Go Playground 功能。
你可以选择一段代码,选择 Open In(打开方式)选项,然后点击 Playground。这将打开带有工具栏的 scratch 文件,工具栏中的选项与 Go Playground 相同。
可以格式化和共享你的代码、更改 Go 版本、使用 Go Playground 服务器运行代码,或在本地运行。
如果类型包含自身,你将收到 “Invalid recursive type”(无效递归类型)错误。为避免这种情况,你应该包含一个指向类型的指针,而不是类型本身。我们现在提供了快速修复。
我们已经开始实现 Code Vision 功能。目前,启用版本控制集成后会显示代码作者。点击代码作者姓名将打开 Annotate with Git blame(使用 Git 追溯注解)边栏,显示是谁引入了更改。
我们还引入了在所有函数和类型附近显示的用法,显示函数或类型在当前项目中被引用的次数。
GoLand 现在会显示常量定义块的内嵌提示。这在 iota
派生的常量块中特别实用,其中提示显示了与每个位置关联的 iota
值。
调用 Fill all fields(填充所有字段)意图操作时,IDE 会忽略以 XXX_
开头的自动生成的协议缓冲区字段。这些字段仅在第二次调用补全后显示。
GoLand 现在会自动获取 Go 模块相关系统变量,并将其显示在 Environment variables(环境变量)对话框窗口中。要打开此窗口,请转至 Preferences | Go | Go Modules(设置 | Go | Go 模块),点击 Edit environment variables(编辑环境变量)图标。
IDE 现在始终在顶层声明的 Quick documentation(快速文档)弹出窗口中显示软件包名称。此前,只有在找到 doc.go
或 <pkg_name>.go
文件时才会显示软件包头。
我们已将文件大小上限从 2.5 MB 提高到 10 MB。代码洞察功能(如导航和高亮显示)不适用于超过大小上限的文件。
虽然 2.5 MB 的上限对于大多数文件来说已经足够,但有些项目的文件更大,例如 AWS SDK 或 GCP。
由于 Receiver names are different(接收器名称不同)检查与生成的代码无关,我们已为包含与以下正则表达式匹配的注释的文件将其禁用:^// Code generated .* DO NOT EDIT\\.$
HTTP 客户端现在支持在请求之前执行脚本块。你可以在执行请求之前生成数据,并使用变量将其放入最终请求。可以使用快速修复创建用于初始化变量的样板代码。
HTTP 客户端现已支持 Crypto API。你可以计算 HTTP 请求的 md5 或 sha1 哈希值。
对于简单的情况,IDE 现在具有一组新的随机变量。
GoLand 现在支持连接到在适用于 Linux 的 Windows 子系统 (WSL) 中运行的 Docker。你可以在 Preferences | Build, Execution, Deployment | Docker(设置 | 构建、执行、部署 | Docker)中设置连接。
现在,有一种无需从 Dockerfile
或 docker-compose.yml
运行即可拉取镜像的简单方式。为此,在高亮显示的镜像名称上调用上下文操作 (⌥⏎),然后选择 Pull Docker image(拉取 Docker 镜像)。
.dockerignore
文件类型支持我们引入了对 .dockerignore
文件的全面支持,包括代码高亮显示和补全。从 IDE 构建镜像时,这些文件会被纳入考量。
Here 文档允许将后续 Dockerfile
行重定向到 RUN
或 COPY
命令的输入。GoLand 现在支持此语法,你可以使用它在 Dockerfile
文件中生成配置文件或多行脚本。
如果 Docker 配置中已有这些设置,你现在可以使用 Docker 上下文设置额外的 Docker 连接。为此,你可以在 Services(服务)视图中调用 Add Service(添加服务)上下文菜单并选择 Docker Connections From Docker Contexts(来自 Docker 上下文的 Docker 连接)。
IDE 后端现在可以直接在 WSL 2 中启动,并且你可以像在 GoLand 中使用远程开发时连接到远程机器一样连接到它。
如你所知,今年 5 月我们宣布了 JetBrains IDE 中新 UI 的封闭预览计划。
我们邀请你在 Preferences | Appearance & Behavior | New UI Preview(设置 | 外观与行为 | 新 UI 预览)中切换到新 UI。
意图操作的预览功能现在默认开启,让你可以立即查看应用 IDE 建议后代码将如何变化。
在意图操作列表打开时,你可以按 F1 启用或禁用预览功能。
为了让你可以更轻松地安排工作空间并在多个显示器上与 GoLand 交互,我们实现了将工具窗口拖出主窗口并将其停靠到浮动编辑器选项卡的选项。
我们增强了 Tips of the Day(每日小技巧)功能,这是一种帮助你探索 GoLand 的学习工具。
每个提示现在都有一个标题。我们还微调了确定显示哪些提示的算法,让你可以看到与 IDE 体验和正在处理的项目最相关的提示。
现在,又可以从编辑器选项卡中为文件添加书签了。只需右键点击选项卡调用上下文菜单并选择 Bookmarks(书签)。
你可以将当前打开的所有选项卡中的所有文件添加到 Bookmarks(书签)。为此,可以调用相同上下文菜单并选择 Bookmark Open Tabs(为打开的选项卡添加书签),也可以使用编辑器选项卡窗格右侧的三点图标调用此操作。
我们为同步自定义用户设置引入了重做的解决方案。长期以来,有两个并行存在且具有交叉功能的插件:IDE Settings Sync(IDE 设置同步)和 Settings Repository(设置仓库)。为避免因拥有两个近似捆绑插件而造成困惑,我们将其功能集合并为一个解决方案,即新的 Settings Sync(设置同步)插件。
期待已久的 Redis 支持的初步迭代现已实现。
现在,使用快速搜索时,你也可以筛选对象。所有不匹配的对象都将被隐藏。
此版本为 Web 开发引入了的新 Code Vision 功能。它可以收集 JavaScript 和 TypeScript 代码中类型和类型成员的各种指标,并在声明附近显示此信息。
在 YAML 文件(包括 Kubernetes 文件、OpenAPI 规范和 docker-compose.yml
文件)中,新增的快速修复可以通过注释禁止检查。
还引入了一个选项,用于折叠组成 3 行或更多行的块并以 #
开头的多行注释。
GoLand 已经开始分发适用于 Windows ARM64 的安装程序,开发者可以从官方网站或通过 Toolbox App 下载。
推荐阅读