据我所知,它是基于vim-go的Guru来查找实现或用法,这需要编译整个项目作为前提。否则,GoLand就不需要这样做,但怎么做呢?
虽然这个任务看起来相当琐碎,但GoLand使用了一些技巧来更高效地执行它。让我们一步步去探索它的工作原理。
基本上就是这样的算法。还有一些实现上的细节,让它的工作速度更快,但并不影响结果。
GoLand依靠的是 IntelliJ平台 和一套自定义编写的工具,捆绑为 自定义语言插件 在它之上处理索引、解析、导航和编辑代码。