GoLand 2023.3 带来多项重要的新功能:
returns
和 panics
以及其他代码的代码折叠样式的巨大更新。 slice
表达式的提示、自定义 printf
式函数的代码洞察,以及调试器增强。 GoLand 2023.3 还提供了针对 Docker 与 Kubernetes 集成、VCS 的更新,以及针对 Web 开发的一些调整。 现在就来深入了解一下吧!
最新更新包括编辑器中增强的直接代码生成、无需复制代码即可回答项目相关查询的上下文感知 AI 聊天,以及使用扩展上下文提供更全面结果的项目感知 AI 操作。 新的差异查看器有助于更轻松地识别 AI 操作对代码所做的更改。
订阅 JetBrains AI Service,在 GoLand 中以补充功能的形式使用 AI Assistant。
命名并不简单! 因此,GoLand 中的 AI Assistant 会建议函数的命名思路以提高可读性。
编写代码文档是一种繁琐而必要的例程。 只需点击几下,Write documentation(编写文档)操作即可快速编写注释良好的代码。
AI Assistant 可以帮助您为特定函数或方法创建测试,并在创建初始测试类后建议添加更多测试用例。
此快速修复允许输入不存在的函数名称,然后在所需软件包中生成实现。
2023.3 版本带来了备受期待的 Extract Parameter(提取形参)重构的第一部分。 针对未解析引用的 Create Parameter(创建形参)快速修复允许您选择未解析的引用并使用快速修复选项创建形参。 如果不够精确,该快速修复还允许更改形参类型,提供默认值,并通过默认值更改调用。
GoLand 现已支持 Dev Container,允许您使用容器作为全功能开发环境来编辑、构建和运行项目。 Dev Container 可以通过 SSH 连接远程运行,也可以使用 Docker 本地运行。
GoLand 2023.3 现已支持 Dev Container 功能,有助于方便、快速地集成开发所需的额外工具、运行时和库。
我们还引入了对 Dev Container 内 Docker Compose 的支持,使主容器和 IDE 以及任何依赖容器(例如具有数据库或消息队列的容器)均可无缝启动,这在开发过程中非常有用。
returns
和 panics
对于单行 returns
和 panics
,现在可以选择使用新的简明代码折叠样式,外观更接近原始代码。
新折叠语法默认启用。
我们为 case
子句使用类似的方式:移除向上箭头,仅折叠双冒号。
returns
的函数 与单行 returns
和 panics
相同,我们也为带有单条 return
语句的函数启用了折叠。
为了提高错误处理代码的可读性,GoLand 会自动折叠错误处理 if
块。
对于带有错误处理代码的 if
块,GoLand 还会折叠所有单一语句,例如日志记录调用。
string
格式设置的代码折叠 我们禁用了 string
格式设置的代码折叠,使相关语法更加明显。 此外,在新的代码折叠方式下,无需展开代码块即可对其进行编辑。
switch
生成 GoLand 现在可以协助编写枚举的 switch
语句。 它会在补全中建议为所有值生成 case。
iota
声明的常量时关于缺失分支的警告 该检查可以帮助您跟踪 iota
常量的 switch
表达式。 它会就 switch
未涵盖的 case 向您发出警告,并提供两种解决方案:添加缺失的子句或添加默认子句。
这项功能允许您准确查看单次或多次运行中到达的代码。 它还有助于检测死代码。
此前,它仅适用于测试运行,现在,您也可以使用 Coverage(覆盖率)运行 main
函数。
slice
表达式的形参提示 slice
表达式可能引起困惑,特别是具有三个索引的表达式。 现在,GoLand 将在您构建切片时显示提示。
printf
式函数的代码洞察 GoLand 为标准 printf
式函数提供了大量实用功能:占位符高亮显示、错误检测、代码折叠等。 现在,这些功能都可用于用户定义的 printf
式函数。
GoLand 2023.3 引入了基于 CLion 中所用引擎的精细数据流分析器。 这项功能可以检测更广泛的代码问题,例如潜在 nil
解引用、不正确或缺失的错误处理以及始终为 true/false
的条件。
请注意,此功能目前处于抢先体验阶段,默认禁用。 您可以在 Settings | Editor | Inspections | Go | Data Flow Analysis (experimental)(设置 | 编辑器 | 检查 | Go | 数据流分析(实验性))中启用并向我们提供反馈!
asdf 是一种 CLI 工具,可用于管理多种语言运行时版本。 基于社区反馈,我们决定在此版本中包含 asdf 支持。 在此版本中,GoLand 将检查 .tool-versions
文件中的 Go 版本,并为所选项目使用适当的 Go 版本。
Go 1.21 及更高版本可以更好地确保不会错误编译需要更新版本的 Go 的代码。 具体来说,go.mod
中的 go
行现在会指定所需的最低 Go 工具链版本,而在之前的版本中,这基本上是未强制执行的建议。
现在,GoLand 完全支持此流程,并使用 go
或 toolchain
行自动下载 go.mod
文件中指定的 SDK 版本。 指定版本也会在 Go project(Go 项目)设置中自动设置。
GoLand 2023.3 已迁移到新型 IntelliJ Platform API,因此如果项目包含 vendor 目录,它不会再次运行 go list -m
。 缓存的更有效利用可以提高包含大量 Go 模块的项目的性能。
新的 Run to Cursor(运行到光标)嵌入选项提供了在调试时快速导航到特定代码行的方式。 程序挂起后,您可以将鼠标悬停在您希望继续执行的代码行上。 然后,您可以利用 Run to Cursor(运行到光标)弹出窗口执行代码,直至到达光标所在的行。
为了扩展 GitLab 集成,我们添加了对 GitLab 代码段的支持。 您现在可以直接在 IDE 中创建公共或私有代码段。
现在,您可以从位于所需系统外的目录中的集群轻松添加 kubeconfig
上下文。 项目将包含指向 kubeconfig
文件的链接,使这些集群在您处理项目时可用。 以这种方式添加的 kubeconfig
内容不会被复制到系统 (~/.kube/config)
中,也不会被修改。 频繁从云或本地部署环境添加和移除 Kubernetes 集群时,此功能特别实用。 了解详情。
开始使用 Kubernetes 插件时,您可能需要安装 kubectl 和/或 Helm。 如果您的计算机上还没有,IDE 将为您自动安装。
Telepresence 允许您在本地调试 Kubernetes 应用程序的微服务,就好像您的工作站是集群的一部分。 在这个版本中,我们将 Telepresence 工作流移动到集群的上下文菜单,使其更易于访问。 我们还简化了拦截管理,提供更流畅的调试体验。
import
块的支持 GoLand 支持 1.5 版 Terraform 配置语言的顶层 import
块。 import
块允许您将当前基础架构纳入 Terraform 的管理范围。 当 import
在代码块中使用时,它将成为标准方案和 apply 周期的一部分,而不再是状态操作。 Terraform 会为导入的资源执行自动代码生成,节省开发基础架构即代码的时间。
GoLand 2023.3 解决了添加 import type
语句时出现的不一致。 我们添加了用于在导入类型时配置 TypeScript import type 语句或类型说明符的用法的选项。 我们还为 TypeScript 文件改进了 package.json 的 exports
字段的行为。
我们改进了 Structure(结构)视图,在大型 .http
文件中提供更好的导航。 此更新还为请求类型引入了颜色编码标签,可以清晰地列出内容。 我们还支持使用 @
声明变量以及使用 OAuth 2.0 密码和客户端凭据授予类型进行身份验证。
GoLand 将自动检测 Cypress 和 Playwright 测试,然后让您一键运行和调试。 支持还包括通过浏览 Test Tree(测试树)探索结果和发现问题的功能。
这是改进的代码更改审查方式。 现在,您可以在单个可滚动框架中查看来自更改集的所有已修改文件,无需逐一查看每个文件。 了解详情。