Goland 包导入正常,但是无法解析函数和成员属性,编译不报错
这段时间 Goland 突然出现了一个毛病,每次 go get 依赖后,虽然依赖拉下来了,但是代码里使用了这个 module 的地方无法引用出他的成员和属性,大片的标红,都提示「Unresolved reference 'xxxxx'」,但是只要把项目关了,重新打开,再次触发module的index索引动作,就恢复正常了。
本来想看看有没有什么一劳永逸的方法,修改啥配置这样以后就不会出现这个问题了,但是看了一圈博客,也问了 chatgpt ,甚至重新安装了 Goland,也还是没有找到能一次性解决的方案,最接近的话题是这个goland包导入正常但是方法全部无法解析而编译又不报错,但是他的方法我也试了好像也不行。
解决方案一
请教同事后,发现可能是电脑里的代码仓库太多了,或者某个仓库太大了,需要加载的依赖特别多,导致 goland 用来加载依赖所分配的内存不够用了,所以需要加大虚拟机的运行内存。
依次点击 Goland 功能栏「Help -> Edit Custom VM Options」,然后把配置文件里的虚拟机内存大小调大一些。
然后点击依次点击 Goland 功能栏「Help -> Edit Custom Properties」,把 idea.max.intellisense.filesize
参数的值设置大一些,这个参数表示 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包导入正常但是方法全部无法解析而编译又不报错
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2022-06-11 linux 从远程服务器上传下载文件文件 scp 命令(转)