现象:Emacs使用company-go可以正常补全标准库函数和go get安装库函数;而对于自已写的代码,只能补全当前包下的变量和函数。
原因:company-go后台是使用了gocode,而gocode补全不会解析代码而是解析.a文件,所以用户代码需要对每个包进行go install安装。
先是网上找答案、测试Emacs版本25,26,27,再是阅读company-go代码,搞了几个小时,终于定位到了原因,后来发现gocode文档中居然有说明,只是放在了最后,==! 希望对其他踩坑的同学有用。