VSCode中如何配置gocode做代码补全、gopls仅实现代码导航
Go大项目下gocode补全+gopls导航共存配置方案
前置准备
首先确保已全局安装适配Go模块的gocode工具,在终端执行命令:go install github.com/stamblerre/gocode@latest
配置步骤
- 打开VSCode用户设置JSON文件:按下快捷键
Ctrl+,,点击设置页右上角的**打开设置(JSON)**图标进入编辑页。 - 写入以下配置项,覆盖Go扩展默认行为:
// 启用Go语言服务器,保留gopls核心能力 "go.useLanguageServer": true, // 启用gocode作为代码补全提供方 "go.gocodeAutoBuild": true, "go.autocompleteUnimportedPackages": true, // 配置gopls仅关闭补全能力,保留导航等核心功能 "gopls": { "ui.completion.enable": false, "ui.navigation.enable": true, // 以下为可选保留功能,不需要可自行设置为false关闭 "ui.diagnostic.enable": true, "ui.hover.enable": true, "ui.semanticTokens": true }
- 重载VSCode窗口:按下
Ctrl+Shift+P调出命令面板,执行Developer: Reload Window即可生效。
效果验证
- 代码补全响应速度达到gocode的毫秒级,无1秒左右的延迟问题
- 跳转到定义、查找引用、查找实现等导航功能完全正常,由gopls提供支持
常见问题排查
- 若补全仍不生效,检查是否安装了第三方Go补全扩展,全部禁用后仅保留微软官方Go扩展即可
- 大项目下保持
"go.gocodeAutoBuild": true开启,可自动更新gocode缓存,避免补全内容过期
内容的提问来源于stack exchange,提问作者LGZ
相关产品推荐
相关产品推荐

