这段时间 Goland 突然出现了一个毛病,每次 go get 依赖后,虽然依赖拉下来了,但是代码里使用了这个 module 的地方无法引用出他的成员和属性,大片的标红,都提示「Unresolved reference 'xxxxx'」,但是只要把项目关了,重新打开,再次触发module的index索引动作,就恢复正常了。
本来想看看有没有什么一劳永逸的方法,修改啥配置这样以后就不会出现这个问题了,但是看了一圈博客,也问了 chatgpt ,甚至重新安装了 Goland,也还是没有找到能一次性解决的方案,最接近的话题是这个goland包导入正常但是方法全部无法解析而编译又不报错,但是他的方法我也试了好像也不行。
后来随便捣鼓了一下配置,发现按照下面这个步骤可以在不重启项目的前提下触发当前项目的 module 重新 index,虽然从根本上彻底解决这个问题,但是总算是不用每次都重启项目了。
1、鼠标点击项目名,也就是选中当前项目
2、点击 「File -> Repair IDE」
在 Goland 底部可以看到 Goland 开始刷新所选中文件中可索引的文件
3、随后 Goland 右下角会出现一个提示框,「Recovery step 1: 'Refresh Indexable Files' was performed」,翻译是「已执行恢复步骤1:“刷新可索引文件”」,继续点击「Rescan Project Indexes」,将重新扫描项目的 index
这时候 Goland 会重新扫描所有的 index,这时问题应该就解决了,会发现原来标红代码已经恢复正常了。
4、Goland 右下角仍会弹出一个小弹窗,提示已经执行了恢复过程的第二步,是否恢复正常,是否需要重新项目,如果已经恢复正常,点击「Everythings Works Now」就OK了,否则点击「Reopen Project」,然后继续往下看
重启项目后,Goland 右下角出现的弹窗询问需要恢复正常,是否需要删除共享索引,可以看下项目的导入问题是否恢复正常,如果恢复正常就点击「Everythings Works Now」,否则点击「Drop shared index」
点击「Drop shared index」后,继续 Goland 右下角弹窗中的「Reindex Project」,到这里应该是可以恢复正常了,如果还是不正常,可以尝试看看其他教程,比如这个:goland包导入正常但是方法全部无法解析而编译又不报错