Gopls v0.20.0 版本发布
此版本为 gopls 引入了一个新的实验性模型上下文协议 (MCP) 服务器,可用于将 gopls 的部分功能集成到 AI 辅助环境中。
gopls 的文档现已发布在 Go 项目网站上,网址为 https://golang.ac.cn/gopls。(此链接指向最新的 gopls 版本;要查看最新提交的文档,请使用 https://tip.golang.org/gopls。)与 GitHub 中的 Markdown 文件不同,这些页面会被 Google 搜索引擎索引。
配置更改
此版本默认启用了模块缓存中软件包的新持久索引。此功能在 v0.19 中首次尝试,但由于后来已修复的问题而被回滚。
基于 Web 的功能
“拆分软件包”工具
source.splitPackage
代码操作会打开一个基于 Web 的工具,帮助您将一个软件包拆分成两个或多个组件,这些组件之间的依赖关系是无环的。
要使用它,请命名一组组件,将每个声明分配给一个组件,然后可视化组件之间的依赖关系(包括它们是否形成循环)。每次编辑代码后刷新页面以查看最新信息。
该工具使您可以轻松地迭代潜在的分解,直到找到满意的方案。该工具的未来版本将自动化代码转换,但目前您必须手动完成此步骤。
编辑功能
模型上下文协议服务器
Gopls 现在包含一个实验性的内置模型上下文协议 (MCP) 服务器,允许它以 MCP 工具的形式将部分功能暴露给 AI 助手。
有关更多信息,请参阅文档。
注意:这是 gopls 的一种全新操作模式,因此我们仍在尝试提供最佳工具集和说明。请告知我们它的运行情况。此外,请注意,允许 LLM 在您的工作空间中执行操作会带来额外的安全考虑,如以上文档所述。
分析功能
ignoredError
提示
新的 ignoredError
提示有助于捕获被错误丢弃的错误。它会在任何隐式忽略了错误结果的函数调用语句后插入一个 // ignore error
提示。例如,以下代码
f.Close()
将显示为
f.Close() // ignore error
要抑制此提示,请在调用语句后编写一个包含 ignore error
的实际注释,或将结果显式分配给一个匿名 _
变量。一小组常用函数(如 fmt.Println
)已排除在此检查之外。
使用此配置启用它:{"hints": {"ignoredError": true}}
。
unusedfunc
还会报告未使用的 type
、var
和 const
声明
unusedfunc 分析器现在会报告在其声明包内未被引用的所有未导出类型、变量和常量。(未被引用的已导出符号的问题无法在分析框架中表达,因为它依赖于整个工作空间。)
代码转换功能
重命名操作现在允许您重命名嵌入字段,例如 struct{ T }
中的 T,只要操作是在字段声明 (T) 处发起的。字段及其类型都将被重命名。
本文档的源代码可以在 golang.org/x/tools/gopls/doc 下找到。