Gemini CLI 的 Gopls 扩展
英语 | 简体中文
这个扩展集成了 官方 MCP(Minimum Controllable Pressure,最小可控制压力) Go 语言服务器的(gopls使用Gemini CLI,它能在CLI环境中直接提供语言感知功能,使Gemini能够更精确地理解、编写和修改Go代码。
演示
为了证明其有效性,我在一个Go项目中进行了相同的代码重构任务,分别使用了和未使用这个扩展。
当使用该扩展时,Gemini CLI 会调用 gopls 该工具用于获取精确的符号关系,并在每次文件修改后立即运行诊断。这避免了在最终编译时一次性处理大量语法错误。
使用该扩展后,重构的速度和准确性都得到了显著提升。例如,在对比案例中,当未使用该扩展时,Gemini未能更新对重构代码的一些引用。
安装
使用以下Gemini CLI命令安装此扩展:
gemini extensions install https://github.com/Menghuan1918/gemini-cli-gopls该扩展程序会自动检查 gopls 系统中的版本 PATH 在运行时。由于MCP功能需要 gopls v0.20.0或更高版本,如果存在兼容版本的话 gopls 未找到,扩展程序将尝试自动下载并安装它到 ~/go/bin 目录。
如果仍然无法启动,请尝试手动安装 gopls 将 v0.20.0 或更高版本安装到您的 PATH.
特点/功能
这个扩展为Gemini CLI提供了以下基于(某基础/平台/系统等,原文未指明具体依据,故此处保留泛指)的工具 gopls MCP:(此处为缩写,具体含义需根据上下文确定,但直译为“最小成本产品”或“多点控制单元”等,具体翻译需结合实际语境)
go_diagnostics基于工作区的语法错误检查go_file_context总结一个文件的跨文件依赖关系go_package_api提供关于外部/内部Go包API的信息go_search在工作区中搜索符号go_symbol_references为Go符号提供参考位置go_workspace提供Go工作区信息
此外,该插件内置了来自官方gopls MCP的提示,并进行了小幅修改以更好地适配Gemini CLI。您可以在……中查看这些提示 GEMINI.md 翻译为中文是:“双子座.md”(注:在Markdown文档中,".md"通常表示这是一个Markdown格式的文件,但在这里为了保持原样,直接将其作为文件扩展名列出)。不过,如果是在不考虑文件扩展名的情况下,仅翻译文件名部分,那就是“双子座”。
使用官方 gopls MCP 的内置提示功能进行了导出 gopls mcp -instructions > GEMINI.md使用方法
当在一个Go项目(一个包含一个或多个包的工作区)中启动时 go.mod 文件),相关工具将自动加载。否则,只会加载一个空的MCP服务(以避免错误)。
