本文就是个吐槽,感兴趣一一去报给微软。
自动完成与建议完成
作为本文的背景,你可能需要了解 Visual Studio 有一个设置:“在建议完成模式和标准完成模式之间切换”。就是下面这个按钮,你可以在工具条上找到。
你一定很差异,看着这翻译,你知道“选中”对应“建议完成模式”还是“标准完成模式”呢?你知道什么是建议完成模式,什么是标准完成模式吗?
不要紧,这不是翻译的问题,因为英文原文也一样令人摸不着头脑。
那么这件事就交给本文来处理吧!
如上图所示,如果不选中那个图标,那么智能感知会更智能,默认回车即上屏,而不用再打字母了。所以我更倾向于不要选中那个图标。至于那个图标到底哪个是建议完成模式哪个是标准完成模式,已经不重要了(反正就算知道了,名字也不直观)。
奇妙行为
接下来我们的讨论中,前面所述的图标都不选中,这样能最大程度体现智能感知的智能程度。
带星 V.S. 不带星
大家知道 Visual Studio 2019 开始,微软开始基于机器学习来训练智能感知的建议。凡通过机器学习建议的项都会用“★”(星号)标注。
然而,一旦没有任何项带星,那么就没有项被选中。
奇妙行为:有机器学习带星的项才会自动选中,没有带星的项就不会自动选中。
全小写 V.S. 部分大写
注意看下面的图片中的提示:
使用 preso
能自动选中 PresentationSource
而使用 Preso
则不会自动选中 PresentationSource
。
奇妙行为:如果完全用小写字母打字,则可以按词匹配前几位字母;如果出现了大写字母,那么出现的小写字母就默认不算做新单词。
直接输入 V.S. 删除后输入
看看下面的动图:
注意到了什么?如果是输入单词,那么会默认选中;但删除了字母后再输入单词,就不会默认选中了。
奇妙行为:直接输入和删除后再输入,默认选中的行为不同;删除后再输入不会默认选中。
输入单词 V.S. 输入点
从前面的示例可以看到,如果能满足 Visual Studio 的输入要求输入单词(鬼知道是什么要求),那么基本能直接选中。但按要求输入点“.”却不一定能直接选中。
所以,如果你能熟练摸透 VS 单词的补全逻辑,那么可能仅在输入点“.”的时候才会遇到有时选中有时不选中的问题。
奇妙行为:?
不同种类的空格
当即将输入的代码是枚举这种很封闭的语句时,直接自动选中(虽然自动提示的经常不是想要的):
然而当输入的代码是命名这种比较开放的语句时,不会自动选中(虽然自动提示的名字很想要):
奇妙行为:同样是空格,有时会自动选中,有时不会自动选中。
吐槽
可以发现,虽然 Visual Studio 提供了一个是否自动选中智能感知提示选项的开关,但这个开关的行为并不总能反映出实际的使用效果。
- 如果选中了按钮(见本文开头所述),则一定不会自动选中智能感知提示
- 如果没选中按钮,则是否自动选中智能感知提示简直随缘
你要说,Visual Studio 猜得准的时候会自动选中,猜不准的时候不会自动选中。但实际使用效果却是,你自认为猜得准的时候,我却不需要你的提示;你自认为猜不准的时候,给出的建议却非常完美。不如直接按照开关来,简单利索,还不用在开发的时候琢磨到底该不该按上下来一轮选择。
本文会经常更新,请阅读原文: https://blog.walterlv.com/post/fantastic-intellisense-behavior-of-visual-studio.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 ([email protected]) 。