VS Code代码建议功能的工作机制及Go语言场景下的补全疑问
VS Code代码建议功能的工作机制及Go语言场景下的补全疑问
嗨,我来帮你梳理下这个VS Code里Go语言代码补全的问题哈~
你在使用Go语言时遇到的补全情况是这样的:
- 想要输入
os.Getwd(),通过代码建议触发的话,得从os.G开头敲起,比如输入os.Gw或者os.gd,就能触发os.Getwd()的补全提示; - 但如果输入
os.etwd甚至os.wd,就得不到对应的补全建议了;
其实这背后是VS Code搭配的Go官方语言服务gopls的补全匹配规则在起作用。它的补全逻辑更偏向于前缀匹配或者驼峰式子序列匹配:
- 像
os.Gw,是匹配了Getwd的首字母G和末尾的w,属于子序列匹配,所以能触发补全; os.gd则是通过忽略大小写,匹配了Getwd里的G和d,也能被识别;- 但
os.wd只匹配了函数名末尾的wd,没有命中开头的Get部分,os.etwd也没匹配到首字母G,所以gopls没法识别出你要找的是os.Getwd(),自然出不来对应的补全提示啦。
内容来源于stack exchange
相关产品推荐
相关产品推荐

