GoLand 最新变化

GoLand 2023.2 提供了与 Go 模块的改进集成、用于在函数形参与方法接收器之间双向迁移的重构,以及对 errors.Iserrors.As 的支持。

在此版本中,您也将发现全新的 AI Assistant 插件、GitLab 集成和 Kafka 插件。

此外,Docker 集成和 Kubernetes 插件也有所改进。

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

Go 模块

GoLand 中的 Go 模块设置

自动下载模块的选项

我们实现了在项目打开时以及每次更改 go.mod 文件后自动下载 Go 模块的功能。 此功能默认启用,但您可以随时在 Settings | Go | Go Modules(设置 | Go | Go 模块)中将其关闭。

使用新的快速修复更新 go.mod 中的依赖项

更新 go.mod 中依赖项的意图操作

我们添加了多项意图操作和检查,帮助您更快更新 go.mod 文件中的依赖项。

现在,打开 go.mod 文件时,GoLand 会高亮显示过时的依赖项。 您可以将鼠标悬停在给定软件包的高亮显示版本上,然后使用快速修复对其进行更新。 您还可以将所有依赖项更新到最新补丁或主要版本,也可以选择仅更新直接依赖项。

在 GoLand 中禁用 vendoring 的选项

禁用 vendoring 的选项

您现在可以按项目禁用 vendoring,例如,当单仓库包含另一种语言使用的 vendor 文件夹的时。 您可以在创建新项目时或其他时间转到 Settings | Go | Go Modules(设置 | Go | Go 模块)禁用 vendoring。

重构

在 GoLand 中使用 Migrate function parameter to method receiver(将函数形参迁移到方法接收器)重构

函数形参与方法接收器迁移

GoLand 提供了两个新重构:Migrate function parameter to method receiver(将函数形参迁移到方法接收器)和 Migrate method receiver to function parameter(将方法接收器迁移到函数形参)。

Migrate function parameter to method receiver(将函数形参迁移到方法接收器)重构可以将函数转换为某种类型的方法。 Migrate method receiver to function parameter(将方法接收器迁移到函数形参)则相反,它可以将某种类型的方法转换为函数。

错误处理

GoLand 新增了一个快速修复,这个快速修复会建议将直接错误比较转换为 errors.Is 的用法

errors.Iserrors.As 的支持

我们实现了两项检查,它们能够高亮显示应使用 errors.Iserrors.As 的情况。 另外还有快速修复可以帮助您将现有代码重构为 errors.Iserrors.As 用法。

第一项检查可以高亮显示错误的直接比较。 在 Go 1.13 及更高版本中,可以使用 fmt.Errorf 函数和 %w 动词包装错误,并且使用相等性检查直接比较错误可能在包装的错误上失败。

检查特定错误的首选方法是使用标准库中的 errors.Is 函数。 GoLand 新增了一个快速修复,这个快速修复会建议将直接错误比较转换为 errors.Is 的用法。

GoLand 新增了一个快速修复,这个快速修复会建议将错误上的类型断言和类型 switch 转换为 errors.As 的用法

第二项检查可以高亮显示错误上的类型断言和类型 switch,例如 err.(*MyErr)switch err.(type),因为它们也可能在包装的错误上失败。

Go 1.13 及更高版本中的首选方式是使用 errors.As。 我们的新快速修复建议将错误上的类型断言和类型 switch 转换为 errors.As 的用法。

Go 1.21

minmaxclear 的支持

GoLand 2023.2 为 Go 1.21 中引入的新函数 minmaxclear 提供了基本支持。

针对 make 的改进

make 函数实参的补全选项

make 函数实参的补全

我们为 make 函数调用添加了类型感知代码补全。

GoLand 关于 make 函数的错误用法的通知

make 函数实参检查

GoLand 现在可以检测 make 函数中的错误和冗余实参。 此外,还有一个用于移除冗余实参的快速修复,您可以像往常一样通过 Alt+Enter 访问。

其他 Go 相关功能

直接在类型上调用方法时,接收器作为补全建议中的第一个形参显示

方法表达式的接收器类型补全建议

直接在类型上调用方法时,您需要提供接收器类型作为第一个实参。 在这些情况下,GoLand 现在会将接收器作为补全建议中的第一个形参显示。

GoLand 针对类型实例化中缺少类型实参的错误消息

泛型:改进了缺少实参的错误消息

现在,类型实例化中缺少类型实参的错误消息会明确指出问题。

GoLand 中 Wrap error handling in a closure(在闭包中包装错误处理)意图操作的预览

Wrap error handling in a closure(在闭包中包装错误处理)意图操作的预览

我们添加了 Wrap error handling in a closure(在闭包中包装错误处理)意图操作的预览。 您可以在意图操作列表打开时按 Ctrl+Q 禁用预览功能,它将保持禁用状态,直到您使用相同的快捷键将其重新启用。

GoLand 针对 for 循环中冗余条件的警告

for 循环中冗余条件的警告

GoLand 现在会针对 for 循环中的冗余条件显示警告消息。 还有一个快速修复可以移除冗余条件。

AI Assistant

AI Assistant 插件关于改进代码的建议

AI Assistant 限定访问

在此版本中,我们为 GoLand 引入了一项重要补充 – AI Assistant。 AI Assistant 当前具备一组由 AI 提供支持的初始功能,提供集成式 AI 聊天,可以自动编写文档注释、建议名称、生成提交消息等。

JetBrains AI 服务为 AI Assistant 提供技术支持,此服务目前可以连接到 OpenAI,后续还将包含其他语言模型提供商。 要访问 Assistant 的 AI 功能,您需要安装 JetBrains AI 插件并使用 JetBrains Account 登录 JetBrains AI 服务。 JetBrains AI 服务的初始可用性可能受限。 有关 AI Assistant 的更多信息以及访问说明,请访问此页面

Docker

Services(服务)视图中 Docker 镜像层的内容预览

在 Docker 镜像层内预览文件

现在可以在 Services(服务)工具窗口中轻松访问和预览 Docker 镜像层的内容。 从列表选择镜像,选择 Show layers(显示层),然后点击 Analyze image for more information(分析镜像以获得更多信息)。 这将打开层中存储的文件列表,您可以右键点击文件,然后点击 Open File(打开文件)(对于二进制文件,则为 Download File(下载文件)),在编辑器中轻松打开所选文件。

将 Docker 容器设为作为 Before Launch(启动前)任务运行

将 Docker 容器设为作为运行配置的 Before Launch(启动前)任务运行

现在,可以将 Docker 运行配置指定为 Before Launch(启动前)任务,从而在另一个配置之前运行。 IDE 将等待当前运行的容器恢复正常,然后再启动下一个运行配置。 要设置队列,首先创建所需的 Docker 运行配置,然后通过 Modify options | Add before launch task | Run configuration(修改选项 | 添加启动前任务 | 运行配置)将其添加到容器中。

Kubernetes 插件

GoLand 中显示的 Kubernetes 设置

对单个项目中多个 kubeconfig 文件的支持

我们引入了一项新功能,允许您在单个项目中设置多个 kubeconfig 文件。 这简化了处理多个集群或在同一项目中的不同集群上使用环境的体验。 转到 File | Settings | Build, Execution, Deployment | Kubernetes(文件 | 设置 | 构建、执行、部署 | Kubernetes)即可设置文件。

GoLand 中显示的 Kubernetes 部署日志

查看部署日志

现在,您可以在 Services(服务)工具窗口中查看 Kubernetes 集群中的部署日志。 右键点击树中的 Deployment(部署),然后从上下文菜单中选择 Follow Log(关注日志)或 Download Log(下载日志)。

性能

轻松生成共享索引的新工具

我们提供了新的命令行工具,用于快速构建和上传共享索引。 它旨在简化团队合作并消除本地索引大型项目花费的时间。 新工具将简化为团队生成共享索引的过程,只需几下点击,无需多个脚本和服务。
了解详情

版本控制

为提交选择行

提交特定代码行的选项

您现在可以有选择地提交代码区块的特定部分。 要执行部分提交,请选择区块中的所需行,然后从上下文菜单中调用 Include these lines into commit(将所选行包含到提交中)。 区块将被分为单独的行,所选行将被高亮显示。 您可以使用复选框或上下文菜单在选区中添加或排除行。

GitLab 集成

GoLand 中的 GitLab 插件功能

GoLand 2023.2 引入了与 GitLab 的集成,帮助简化您的开发工作流。 现在,您可以直接在 IDE 中使用 Merge Requests(合并请求)功能:查看请求列表、检查更改、留下评论,以及导航到相关视图。

Kafka 插件

GoLand 中的 Kafka 插件功能

Kafka 插件

借助全新的 Kafka 插件,您可以监控 Kafka 事件流处理。 您可以连接到 Kafka 集群、生成和使用不同格式的消息、管理主题和监控使用者组,以及使用 Confluent Schema Registry 和 AWS Glue Schema Registry。 您可以在此文档页面上找到更多详细信息。

用户体验

在 GoLand 设置中选择捆绑的 VS Code 按键映射

捆绑的 VS Code 按键映射

如果您习惯了 VS Code 按键映射,现在可以在欢迎屏幕的 Customize(自定义)部分中进行选择。 您还可以在 Settings | Keymap(设置 | 按键映射)中更改按键映射。

按修改时间对文件排序

Project(项目)视图中按修改时间对文件进行排序

GoLand 2023.2 添加了备受期待的功能,让您可以根据修改时间在 Project(项目)视图中排列文件。 每当项目中有更改被保存时,这个新功能就会自动重排文件。 要启用此功能,首先打开 Project(项目)视图中的竖三点菜单,然后选择 Tree Appearance | Sort by Modification Time(树外观 | 按修改时间排序)。

在 GoLand 中固定运行配置的选项

Run(运行)微件中固定运行配置

为了简化多个运行配置的管理,我们在 Run(运行)微件中实现了固定首选配置的选项。 要将运行配置添加到 Pinned(固定)部分,首先打开其名称旁边的竖三点菜单,然后选择 Pin(固定)。 如果有多个固定的配置,在列表中拖放即可轻松排列。

将 Update Project(更新项目)按钮添加到主工具栏

改进了主工具栏自定义

我们扩展了新 UI 主工具栏的自定义选项。 现在,您可以使用下拉菜单快速选择要添加到工具栏的操作。 为此,请右键点击任意微件,选择 Add to Main Toolbar(添加到主工具栏),然后浏览可用选项。

在 Windows 上的 GoLand 中将汉堡菜单变为单独的工具栏

在 Windows 和 Linux 上的主工具栏中重做了汉堡包菜单

我们改进了 Windows 和 Linux 新 UI 中主工具栏汉堡包菜单的行为。 点击菜单图标后,元素现在水平显示在工具栏上方。 此外,现在还有一个选项可以将此菜单转换为单独的工具栏,此选项的路径为 View | Appearance | Main menu as a Separate Toolbar(视图 | 外观 | 主菜单作为单独的工具栏)。

在 GoLand 设置中选择 Open Directories with Single Click(单击打开目录)选项

在项目目录之间单击导航

Project(项目)视图中,新增了 Open Directories with Single Click(单击打开目录)选项,可以更快展开和收起项目文件夹,更快响应。 点击竖三点菜单后,可以从下拉菜单中选择该选项。

返回文本搜索选项的 Search Everywhere(随处搜索)弹出窗口

Search Everywhere(随处搜索)中的文本搜索

Search Everywhere(随处搜索)(按两次 Shift)主要用于搜索文件、方法、操作和设置。 在此更新后,它将包含类似于 Find in Files(在文件中查找)的文本搜索功能。 现在,当给定查询的其他搜索结果很少或没有时,将显示文本搜索结果。 此功能默认启用,可以在 Settings | Advanced Settings(设置 | 高级设置)中管理。

检查描述中高亮显示的语法

检查描述中的语法高亮显示

Settings | Editor | Inspections(设置 | 编辑器 | 检查)中,代码示例现在将包含语法高亮显示,让您可以更容易理解是什么触发了检查并决定使其处于有效状态还是停用状态。

Plugins(插件)部分中的推荐插件

Settings(设置)中的推荐插件

为了让您可以更轻松地为特定项目配置 IDE 以及通过插件扩展其功能,我们更新了 Settings | Plugins(设置 | 插件)部分的 UI。 它现在包含一组推荐插件,根据您的项目具体情况自动定义,并在列表顶部显示。

用户界面

在 GoLand 中打开不同颜色标题的项目

新 UI 中的彩色项目标题

GoLand 2023.2 引入了彩色标题,可以简化多个打开的项目之间的导航。 现在,您可以为每个项目分配唯一的颜色和图标,使其在工作区中更易区分。

标题现在默认带有预定义的颜色,但您也可以自定义。 要为项目设置新的颜色,请右键点击标题,访问上下文菜单。 选择 Change Project Color(更改项目颜色)选项,然后选择您想要的颜色。 要禁用此功能,只需在上下文菜单中取消选择 Show Project Gradient(显示项目渐变)选项。

GoLand 中的 Light with Light Header(带有浅色标题的浅色主题)

新 UI 中带有浅色标题的浅色主题

在 v2023.2 中,我们通过引入替代的 Light with Light Header(带有浅色标题的浅色主题)选项提升了浅色主题的用户体验,该选项可为窗口标题、工具提示和通知气球提供匹配的浅色。

带有更新的 UI 的 GoLand Services(服务)工具窗口

更新了 Services(服务)工具窗口中 Run/Debug(运行/调试)微件的 UI

我们重做了 Services(服务)工具窗口中运行和调试操作的 UI,使工具栏外观与主 Run/Debug(运行/调试)微件一致。

没有原生 Linux 标题的 GoLand

在新 UI 中移除了 Linux 上的标题栏

为了方便 Linux 用户,新 UI 中移除了操作系统的原生标题,使界面更加整洁。 默认将显示自定义 IDE 标题,提供一系列工作区自定义选项。

HTTP 客户端

Swagger 架构的 HTTP 客户端中的代码补全

对 Swagger 和 OpenAPI 架构的支持

HTTP 客户端现在能够理解 Swagger 和 OpenAPI 规范,并为 JSON 请求提供相应的代码补全选项。

JavaScript 代码导入 HTTP 客户端

对 JavaScript 导入的支持

您现在可以通过导入的模块共享 HTTP 客户端请求处理程序的通用 JavaScript 代码。

在 HTTP 客户端中预览 PDF 文件

响应的 PDF 和 HTML 预览

GoLand 现在可以直接在 HTTP 客户端的请求结果中显示 PDF 和 HTML 文件的预览。

在 HTTP 客户端中使用 TLS 发送 gRPC 请求

在 HTTP 客户端中使用 TLS 发送 gRPC 请求

您现在可以在 HTTP 客户端中通过传输层安全 (TLS) 发送 gRPC 请求。 TLS 提供加密和身份验证,确保数据传输的保密性和完整性。 请求语法支持 https://grpcs:// 架构。

Web 开发

改进了 GoLand 对 TypeScript 错误的格式设置

改进了错误格式设置

在 GoLand 2023.2 中,您的错误和警告将以可读性更高的方式格式化,使代码中的问题更易发现。 这适用于所有 TypeScript 和一些最常见的 JavaScript 错误。

更正 GoLand 中嵌套 CSS 代码用法的检查

CSS 嵌套支持

GoLand 现在支持 CSS 嵌套模块功能。 我们实现了语法支持和检查,用于确保嵌套选择器不以标识符或函数符号开头。

其他

YAML 文档中 GoLand 高亮显示的 NO 字符串

YAML 文件中的“Norway problem”检查

我们引入了一项新检查,旨在消除 Norway problem 并防止对 YAML 文件中布尔值的意外误解。

当列表主要由字符串组成但包含布尔式文字时,GoLand 将高亮显示此文字,指示潜在的不一致,并建议为其添加引号。 如果列表主要由布尔式文字(例如 true、false、off、on、yes 或 no)组成,则偏离此模式的任何文字都将被高亮显示为可能的错误。 不过,在这种情况下不会建议具体的快速修复。

GoLand 中重做的 Edit Swagger Codegen Configuration(编辑 Swagger Codegen 配置)对话框

针对 Swagger Codegen 的改进

设置 Swagger Codegen 配置时,IDE 现在将提供更好的用户体验。 我们重做了 Edit Swagger Codegen Configuration(编辑 Swagger Codegen 配置)对话框,让您可以更轻松地根据需求定制运行配置。

在 GoLand 中运行 Swagger Codegen 配置

另外,您现在还可以直接从装订区域访问 Swagger Codegen 运行配置,无需指定额外设置。

GoLand 中的 Redoc 预览

OpenAPI 和 Swagger 文件的 Redoc UI 预览

GoLand 现已支持 OpenAPI 和 Swagger 规范文件(包括 YAML 和 JSON 文件)的 Redoc UI 预览,允许您在 IDE 内的 Redoc 和 Swagger UI 之间切换。 通过 Redocly 集成,您可以从 GoLand 中访问 Try it 控制台,使用它设置参数并向 API 发送请求。

Editor Preview(编辑器预览)窗格以及 AsyncAPI 架构的端点

对编辑 AsyncAPI 文件的支持

您现在可以在 GoLand 中更方便地使用 AsyncAPI 规范格式。 IDE 支持架构验证功能,并为引用、Endpoints(端点)视图和 Editor Preview(编辑器预览)窗格提供了代码补全。

适用于插件开发者的 LSP API

在这个版本中,我们为想要在 IDE 中使用特定 LSP 服务器提供编码辅助的插件开发者引入了 LSP API。 如果您已经创建了自己的编程语言或框架,则可以创建 LSP 服务器和插件以在 IDE 中获得支持。