GoLand 最新变化

GoLand 2022.1 提供了对泛型Go 工作区的支持。

我们添加了用于处理微服务的新功能。 您现在可以在一个专用的工具窗口中查找所有端点,并直接从您的 Go 文件生成 HTTP 请求。

与往常一样,新版 GoLand 带来了针对数据库的更新以及 Web 开发改进。

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

泛型

使用泛型创建加法函数

改进和错误修正

此版本最重要的任务是修正误报和漏报错误。 到目前为止,我们已修正 200 多个泛型相关问题。

输入左中括号后 GoLand 会自动添加右中括号

补全

我们还为类型形参添加了几个功能。

只要输入左中括号,GoLand 就会插入右中括号。

补全建议中的类型形参

GoLand 会在补全建议中显示类型形参,并在您接受一项建议后插入中括号。

使用快速修复实现缺少的方法

Implement missing methods(实现缺少的方法)快速修复

如果类型实参不具有约束接口中的所有方法,GoLand 会显示错误。 您可以使用错误消息中的快速修复实现缺少的方法。

也可以点击红色灯泡或按 Alt+Enter,然后选择 Implement missing methods(实现缺少的方法)。

Go 工作区

打开 go.work 文件

您可以打开任何包含 go.work 文件的目录,并像往常一样继续开发。 稍后我们还将在 go.work 中实现语法高亮显示和代码补全。

微服务

使用 Go 文件中的 Go to 声明操作

查找用法和导航

注意:用于构建微服务的新功能目前仅适用于标准库。

现在,您的 Go 文件中的每个端点旁边都有一个地球图标。 点击该图标时,GoLand 会建议几个选项。

第一个选项可用于查找和前往端点的所有用法。 您还可以按 Ctrl 并点击端点来查看用法。

从 Go 文件生成请求

生成请求

点击地球图标后出现的第二个选项是 Generate request in HTTP client(在 HTTP 客户端中生成请求)。 选择需要的选项,IDE 将打开捆绑的 HTTP 客户端。 此操作可用于为每个有效 URL 生成请求。

我们的 HTTP 客户端现在为端点提供代码补全。 补全适用于来自 Go 文件(目前仅支持标准库)、Swagger 规范、.proto 文件和 JavaScript 文件的端点。

打开新的 Endpoints(端点)工具窗口

Endpoints(端点)工具窗口

第三个选项是 Show all endpoints of module(显示模块的所有端点)。 选择此选项后,GoLand 将打开新的 Endpoints(端点)工具窗口,其中会显示项目的所有端点。

您可以从这里使用 Jump to source(跳转到源),也可以点击端点并直接从 HTTP 客户端标签页运行请求。

GoLand 显示 HTTP 方法的补全建议

方法和标题的补全

代码补全现在适用于 Go 文件中的 HTTP 方法和标题。

在浏览器中打开链接

链接和端点带有下划线

Go 文件中的所有链接和端点现在都带有下划线,在代码中更加醒目。 链接可点击,也可在浏览器中打开。

GoLand 显示 gRPC 请求的补全建议

gRPC 反射支持

If your project doesn't have a .proto file but the server supports gRPC reflection, you will be able to run requests and get completion for service and method names right from a running server.

测试

在使用错误的格式设置谓词处显示错误

testify/assert 的字符串格式设置

如果您在 testify/assert 函数中使用错误的格式设置谓词,GoLand 现在将报告错误。

调试器

使标签页标签在 Debug(调试)窗口中可见

隐藏了标签页标签

为了最大化 Debug(调试)工具窗口中的可用空间,我们默认隐藏了标签页标签。 要使其再次可见或自定义它们的位置,请使用 Layout Settings(布局设置)中的 Show Tab Labels(显示标签页标签)选项。

Kubernetes

修改从集群加载的资源

编辑集群上的资源

注意:Kubernetes 插件可在 Settings | Plugins(设置 | 插件)中安装。

现在可从编辑器标签页修改加载自集群的资源。

可以更改 kubectl 路径的设置

kubectl 的自定义路径

如果 kubectl 不在标准位置,您现在可以手动配置路径。 要设置自定义路径,请转到 Settings | Build, Execution, Deployment | Kubernetes | Path to kubectl executable(设置 | 构建、执行、部署 | Kubernetes | kubectl 可执行文件路径)。

从工具栏中使用端口转发功能

端口转发

我们为 pod 添加了端口转发功能。 要转发端口,可以使用工具栏上的图标或右键点击 pod 并从上下文菜单中选择 Forward Ports…(转发端口…)。

使用中的 Describe Resource(描述资源)操作

Services(服务)视图中的 Describe Resource(描述资源)操作

Services(服务)视图中的所有资源都具有一个新的 Describe Resource(描述资源)操作。 您可以从上下文菜单调用,或使用工具栏按钮。

Services(服务)视图中显示的集群事件。

集群事件节点

集群事件现在显示在 Services(服务)视图的单独节点中,提供有关系统中最近事件的数据。

处理 Helm 模板文件的代码补全。

Werf 支持

我们为 werf.yaml 和相关的 Helm 模板文件引入了有限的编辑器支持。 最初的支持包括代码补全、检查和快速修复建议、对 .Values.werf.image.* 的重构和重命名,以及对 booleanint 等字段的验证。

Docker

Services(服务)工具窗口

新的 Services(服务)视图 UI

我们在 Services(服务)工具窗口中重做了 Docker UI。 重做带来了针对容器、镜像、网络和卷的改进。

添加 Docker Compose 目标

对 Docker Compose 目标的支持

我们添加了对 Docker Compose 目标的支持。 要添加目标,请转到 Run | Manage targets(运行 | 管理目标),点击 Add new target(添加新目标)。

Docker V2 可在 Docker Registry 设置中访问。

Docker Registry V2 支持

GoLand 现在提供对 Docker Registry HTTP API V2 的支持。

Markdown

Markdown 编辑器中的 Copy code(复制代码)图标

Copy code(复制代码)图标

我们向 Markdown 块添加了 Copy code(复制代码)图标,让您可以轻松地将内容复制到剪贴板。

从 Markdown 文件运行命令

运行命令

如果 Markdown 文件包含您需要在终端中执行的命令的指令,您可以使用装订区域中的 Run(运行)图标直接从 Markdown 文件运行这些命令。

带有新浮动工具栏的 Markdown 文件

改进了浮动工具栏

为了使 Markdown 文件的格式设置更加简单,我们重做了选择文本时出现的浮动工具栏。 除了新设计之外,工具栏现在还将提供列表创建功能和允许您选择标题样式的下拉菜单。

用户体验

Notifications(通知)工具窗口

新的 Notifications(通知)工具窗口

我们已将 Event Log(事件日志)实例替换为新的 Notifications(通知)工具窗口,更清晰地高亮显示来自 IDE 的重要和有用的通知。

Structural Search and Replace(结构化搜索和替换)对话框

更新了 Structural Search and Replace(结构化搜索和替换)对话框

重新设计的 Structural Search and Replace(结构化搜索和替换)对话框包含所有模板的列表,可以实现更轻松的导航。

对于 Structural Search and Replace(结构化搜索和替换),GoLand 支持 XML、HTML、SQL 和 JavaScript。

平均拆分编辑器标签页

平均拆分标签页

您现在可以将编辑器中的工作空间平均分配给各个标签页。 要进行此设置,请转到 Settings | Advanced Settings | Editor Tabs(设置 | 高级设置 | 编辑器标签页),选择 Equalize proportions in nested splits(均衡嵌套拆分中的比例)。

导出 UML 图表

将 UML 图表导出为其他格式

UML 图表现在可以导出为 yEd .graphml、JGraph .drawio、Graphviz .dot、带有位置的Graphviz .dot、Mermaid .md、Plantuml 和 IDEA .uml 文件,从而与第三方工具兼容。

版本控制

Commit details(提交详细信息)窗格中的 GPG 签名信息

更新了 Git 工具窗口中的 Commit details(提交详细信息)窗格

Commit details(提交详细信息)窗格现在包含详细的 GPG 签名信息。

启用 Annotate with Git Blame(使用 Git 追溯注解)时,GoLand 高亮显示行中的差异

改进了 Annotate with Git Blame(使用 Git 追溯注解)

我们改进了 Annotate with Git Blame(使用 Git 追溯注解)功能,使更改更易于调查。 将鼠标悬停在注解上时,IDE 会在编辑器中高亮显示行中的差异,点击后,它会打开 Git Log(Git 日志)工具窗口。

数据库

将多个表复制到另一个架构

复制多个对象

您现在可以选择多个表并将其复制到另一个架构。

选择表,然后按 F5 打开导出对话框。 与导出单个表一样,您可以映射列以及查看和更改新表的 DDL。

编辑 MongoDB 集合中的字段

MongoDB:编辑结果中的字段

现在,您可以像在关系数据库中一样在 MongoDB 集合中轻松编辑结果。

注意:要了解 v2022.1 中数据库的所有更新,请前往 DataGrip 最新变化页面

Web 开发

GoLand 可以识别 Vue 文件中的全局组件。

针对 Vue 的改进

我们针对 Vue 3 进行了多项改进。 如果您将组件定义为全局,IDE 现在会在 .vue 文件中识别这些组件。

GoLand 应当也支持 createApp 语法。 它会将使用 createApp 创建的应用程序与其相关元素正确匹配。 此版本还包括对 Nuxt 3 的支持,这是流行的 Vue 框架的新版本。

GoLand 解析 Link 组件的 href 属性中的路径。

Next.js 更新

我们修正了对页面的支持。 GoLand 可以解析 Link 组件的 href 属性中的路径。 代码补全、导航和 Rename(重命名)等重构也将可以运行。

带有 ES 模块的 Webpack 配置

针对 webpack 配置的 ESM 支持

从现在开始,Webpack 编码辅助将支持 webpack.config.js 文件中的 ES 模块。

GoLand 将自动识别使用 Volta 安装的 Yarn 和 npm。

与 Volta 集成

GoLand 现在已与 JavaScript 工具管理器 Volta 集成。 它会自动识别使用 Volta 安装的 Yarn 和 npm。

注意:要了解 v2022.1 中的所有 Web 开发改进,请前往 WebStorm 最新变化页面

无障碍功能更新

屏幕阅读器现在可以阅读 Log(日志)标签页中分支树的名称和描述,并为使用 Ctrl+L 浏览其他 Log(日志)筛选器提供了语音提示。

此外,还引入了大量对 VoiceOver 支持的更新,旨在改进对 macOS 用户的无障碍功能支持。