GoLand 迎来五周年,2022.3 发布


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

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

性能改进

https://www.jetbrains.com/go/whatsnew/img/2022.3/go-list-performance.png

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

打开项目时,GoLand 会为文件编制索引并运行 [go list](<https://go.dev/ref/mod#go-list-m>) 命令,该命令会报告有关项目结构的信息。 索引编制会在 go list 运行时暂停,在索引编制完成之前您无法访问代码洞察功能。

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

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

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

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

更快的 IDE 启动和项目打开

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

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

泛型

https://www.jetbrains.com/go/whatsnew/img/2022.3/generate-tests-generic-func.png

泛型函数的测试生成

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/quick-fix-cap-type-params.png

大写类型形参的快速修复

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

Go 工作区

https://www.jetbrains.com/go/whatsnew/img/2022.3/go-workspace-file-action.png

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/gowork-replace.png

使用 replace 指令生成 go.work

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

Go 文档注释

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/links-go-docs.png

对链接的支持

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/headings-go-doc.png

对新标题的支持

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/lists-go-doc.png

对列表的支持

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

集成式 Go Playground

https://www.jetbrains.com/go/whatsnew/img/2022.3/go-play.png

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

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

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

新的快速修复

https://www.jetbrains.com/go/whatsnew/img/2022.3/quick-fix-invalid-recursive.png

无效递归类型的快速修复

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

编辑器

https://www.jetbrains.com/go/whatsnew/img/2022.3/code-vision-author.png

Code Vision

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/usages.png

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/inlay-hints-iota.png

常量定义的内嵌提示

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/fill-struct-ignores-auto-proto.png

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

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

其他 Go 相关功能

https://www.jetbrains.com/go/whatsnew/img/2022.3/env-vars.png

Go 环境变量在设置中显示

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/show-package.png

软件包名称始终显示在 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 客户端

https://www.jetbrains.com/go/whatsnew/img/2022.3/http-prereq-script.png

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/http-crypto-hash.png

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/http-random-var.png

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

Docker

https://www.jetbrains.com/go/whatsnew/img/2022.3/docker-wsl.png

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/docker-pull-image.png

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/dockerignore.png

.dockerignore 文件类型支持

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/docker-heredoc.png

在 Dockerfile 文件中支持 heredoc 格式

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/docker-contexts.png

来自 Docker 上下文的 Docker 连接

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

远程开发(测试版)

https://www.jetbrains.com/go/whatsnew/img/2022.3/remote-dev-wsl.png

 

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

用户界面

https://www.jetbrains.com/go/whatsnew/img/2022.3/new-ui.png

新 UI

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/intention-preview.png

意图操作预览默认启用

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/dook-to-floating.png

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/tipoftheday.png

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

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

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/add-bookmark.png

更新了 Bookmarks(书签)

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/bookmark-create-list.png

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/settings-sync.png

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

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

数据库

https://www.jetbrains.com/go/whatsnew/img/2022.3/redis.png

Redis 支持

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

https://www.jetbrains.com/go/whatsnew/img/2022.3/quick-filter-db.png

快速筛选

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

Web 开发

https://www.jetbrains.com/go/whatsnew/img/2022.3/code-vision-js.png

针对 JavaScript 和 TypeScript 的 Code Vision

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

其他更新

https://www.jetbrains.com/go/whatsnew/img/2022.3/yaml-suppress-uknown-key.png

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

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

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

适用于 Windows ARM64 的安装程序

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

更多详情可查看:https://blog.jetbrains.com/go/2022/12/01/goland-turns-5/


相關推薦

2022-11-28

GoLand 2022.3 RC 2 现已发布,此版本修复了一些错误以及添加了一些新功能。具体更新内容如下: Usages for Code Vision 引入了在所有函数和类型附近显示的 usages 统计信息,这些统计信息显示了函数或类型在当前项目中被引用的次数

2022-11-08

GoLand 2022.3 测试版已经发布,因此也已经停止添加新的功能,正集中精力修复错误,为 12 月初的主要版本做好准备。 性能改进 改变 'go list' 以改善索引 打开时从缓存中恢复项目结构 更快的 IDE 启动和项目打开 泛型

2022-07-31

GoLand 2022.2 为泛型和 go.work 带来了新功能,还增加了对模糊测试的支持,SQL 语句现在可被自动检测,还带来了针对它们的全面代码辅助。 GoLand 现已支持 WebSocket 连接,并且可以通过 HTTP 和 WebSocket 协议发送 GraphQL 查询。 泛型

2023-04-09

GoLand 的下一个主要版本 GoLand 2023.1 正式发布,新版本引入了漏洞检查器和更好的 gRPC 代码导航,并使重命名重构可用于接收器。 开发者现在可以用非标准库包运行 Scratch 文件,使用正则表达式来创建你自己的搜索和替换检查,

2023-08-06

。 经过数个月紧张的开发与测试,洛书 1.6.8 版本终于迎来了发布!在新版本中,我们为洛书带来了许多令人兴奋的新功能和改进,使其在易用性和性能方面达到了新的高度。 这次发布是洛书编程语言发展中的一个重要里程

2023-05-30

世界”“Linux 基金会开源教育及人才培养峰会”“Gitee 10 周年”“OSPOCon”“快闪演讲”。   10+ 圆桌、研讨会,畅聊开源 GOTC 2023 现场,特别策划了超过 10 场圆桌对话,嘉宾们围绕开源以及开源相关的方方面面展开了活跃

2022-12-07

PhpStorm 2022.3 现已正式发布,此次更新带来了新 UI 的预览、完整的 PHP 8.2 支持、数据库工具中的 Redis 支持、PHP 的代码视觉、快速修复预览、Xdebug 配置验证、对 ParaTest 的支持、PHPDoc 的阅读器模式以及许多其他功能。 新 UI 

2022-08-25

PhpStorm 2022.3 路线图已发布,该版本的首要任务是在多个层面上提高 IDE 的稳定性和性能,包括减少 UI 冻结、加快编辑器中的高亮显示等。 以下是该版本的主要发力点: 性能 PHP 8.2 支持 PHP 8.2 预计将于 11 月底公开发布,PhpStor

2022-11-07

WebStorm 2022.3 近日发布了 Beta 版本,带来以下更新内容: 支持 Vitest WebStorm 2022.3 将支持 Vitest,这是一个 Vite-native 单元测试框架。 你可以使用各种运行选项从 WebStorm 运行 Vitest 测试。 Vitest watch 模式直接支持所有测试方案

2022-11-11

IntelliJ IDEA 2022.3 Beta 2 已发布!可以 从JB 网站、Toolbox App 或使用 Ubuntu 的 snaps 获得新版本。  改进了 Kotlin 的 IDE 性能 优化了缓存和索引的使用,使代码分析更快更稳定。还改进了 .gradle.kts 文件中的代码完成

2022-05-06

RedisDesktopManager 2022.3 现已发布。RedisDesktopManager 是一个快速、简单、支持跨平台的 Redis 桌面管理工具,基于 Qt 5 开发,支持通过 SSH Tunnel 连接。新版本主要变化如下: New features and improvements 添加 SSH 代理支持。现在,你可

2022-09-27

IntelliJ IDEA 2022.3 的抢先体验计划现已开放,第一个 EAP 通过可选的设置提供了对新 UI 的访问、改进了多屏幕工作的用户体验、以及与 Maven 相关的更新等。  用户体验  通过设置提供新的 UI  今年 5 月 JetBrains IDE 公布

2022-12-16

您好, AppCode 2022.3 现已发布! 它与 macOS 13 和 Xcode 14.2 兼容,带来了更多针对 Swift 的重构功能,支持语言注入,并提出了新的同步设置方式。 在 v2022.3 发布后,我们将停用该产品。 自 2022 年 12 月 14 日起,我们将不再为 AppCode

2022-10-08

IntelliJ IDEA 2022.3 发布了第 2 个 EAP 版本。 主要变化: 优化 IDE 启动和打开项目速度 开发团队称,对于即将推出的 2022.3 版本,他们特别努力优化 IDE 的启动体验。因此,他们带来了明显的性能改进,以加快应用程序的启动