GoLand 2023.2 已经发布了:有 AI 助手

polaris · 2023-07-30 22:32:47 · 2986 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2023-07-30 22:32:47 的主题,其中的信息可能已经有所发展或是发生改变。

本文将介绍 GoLand 2023.2 的一些主要特性,帮助你了解这款优秀的 IDE。

Go 模块

GoLand 2023.2 对 Go 模块的支持有了很大的提升,它可以在项目打开时和每次修改 go.mod 文件后自动下载 Go 模块,这个功能默认是开启的,但您也可以在设置中关闭它。此外,它还提供了一些意图动作和检查,帮助您更快地更新 go.mod 文件中的依赖。例如,当您打开 go.mod 文件时,GoLand 会高亮显示过时的依赖,并提供快速修复来更新它们。您也可以一键更新所有依赖到最新的补丁或主要版本,或者只更新直接依赖。另外,您还可以在每个项目中单独禁用 vendoring ,例如当您有一个包含其他语言使用的 vendor 文件夹的单体仓库时。您可以在创建新项目时或者在设置中随时禁用 vendoring 。

重构

GoLand 2023.2 提供了两个新的重构:将函数参数迁移为方法接收器和将方法接收器迁移为函数参数。这两个重构可以帮助您在函数和方法之间转换类型。例如,将函数参数迁移为方法接收器重构可以将一个函数转换为一个类型的方法,而将方法接收器迁移为函数参数重构则可以将一个类型的方法转换为一个函数。

错误处理

GoLand 2023.2 实现了两个检查,它们会高亮显示应该使用 errors.Is 或 errors.As 的情况。同时,它们也提供了快速修复,帮助您将现有的代码重构为 errors.Is 或 errors.As 的用法。第一个检查会高亮显示错误的直接比较。在 Go 1.13 及以后的版本中,错误可以使用 fmt.Errorf 函数和 %w 动词来包装,而使用等号检查错误可能会在包装错误上失败。推荐的检查特定错误的方式是使用标准库中的 errors.Is 函数。GoLand 现在有一个快速修复,建议将错误的直接比较转换为 errors.Is 的用法。第二个检查会高亮显示错误上的类型断言和类型切换,例如 err.(*MyErr) 或 switch err.(type) ,因为它们也可能会在包装错误上失败。在 Go 1.13 及以后的版本中,推荐的方式是使用 errors.As 。我们的新快速修复建议将错误上的类型断言和类型切换转换为 errors.As 的用法。

AI 助手

在这个版本中,我们引入了 GoLand 的一个重大新增功能——AI 助手。AI 助手目前提供了一组基于 AI 的功能,它可以提供一个集成的 AI 聊天,并且可以自动为您写文档注释、建议名称、生成提交信息等等。关于 AI 助手的更多信息和如何访问它的说明,请参考这个页面

Docker

现在,在服务工具窗口中查看和预览 Docker 镜像层的内容变得很容易了。您还可以通过将 Docker 运行配置指定为另一个配置的启动前任务来设置 Docker 运行配置。

Kubernetes 插件

我们引入了一个新功能,允许您在一个项目中设置多个 kubeconfig 文件。您现在可以在服务工具窗口中查看 Kubernetes 集群中部署的日志。

性能

我们提供了一个新的命令行工具,用于快速构建和上传共享索引。

提交特定的代码行

您现在可以选择性地提交代码块中的特定部分。只需在代码块中选择要提交的行,然后从上下文菜单中调用“将这些行包含到提交中”。

GitLab 集成

GoLand 2023.2 引入了 GitLab 集成,让您的开发工作流更加顺畅。您现在可以直接在 IDE 中使用合并请求功能。

以上是 GoLand 2023.2 的一些主要特性的介绍,希望你能喜欢这款 IDE,并在您的 Go 开发中发挥它的威力。如果你想了解 GoLand 2023.2 的更多新功能和改进,请访问 https://www.jetbrains.com/zh-cn/go/whatsnew/。那里有完整的发布概述和有用的 GIF 和截图。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2986 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传