vscode
固然非常好用,但是还是毕竟是轻量级的IDE
,需要安装很多插件支持,同时进行诸多设置才能达到相对舒适的开发状态。之前在进行代码开发的过程中遇到一个问题,那就是:vscode在配合一些自动填充功能、snippets
插件的时候,一旦自动填充后,补全片段出现半透明的白色底,这时候再使用一些已定义的代码片段,无法触发vscode
的代码片段机制。需要将光标移除至半透明底区域点击,再又移回来,待那个半透明白色底区域消失后,才可以再次触发编辑时的代码补全。本篇大概记录一下这个问题基本现象以及vscode
设置问题的解决思路~
之前在做js
开发的时候一致忽略了这个问题,没有深究处理,导致开发效率降低、编码过程不够丝滑~
而如今,在做go
相关的开发时也经常遇到同样的问题,这不得不让我重视起来。大概理一下这个问题触发过程:
①第一次使用代码的补全机制fmt.Printf()
,类似于其他语言的print()
或者console.log()

②对于带括号的自动补全,光标往往会自动放置在括号中间,方便进行括号内代码的填写

③此时直接输入之前定义过的字段authorName
,可以看到并没有出现任何的二次补全提示,按理说这个应该是代码片段最基本的提示补全功能,此时也失效了。

④将光标撤离默认的填充区域

⑤再次将鼠标移动到填充区域,输入要填充的内容的前几个字母,会发现自动补充功能回复正常了~

可以说这个现象还是比较反人类的,这个现象的一些要素就是:
触发条件:第一次使用代码补全功能,且光标落在了自动补全的默认区域形成了灰色背景区域
触发现象:连续(第二次)自动补充和基本的代码提示功能失效
恢复措施:光标离开默认区域,将编码状态重置为第一次自动补充,而非第二次自动补充(连续自动补充)
找准了这3点,那就是看看设置中有哪些对应的参数可以修改,因为vscode
中绝大多数异常或者额外的功能都是可以通过setting
解决的~
好在setting
界面提供了搜索功能,从前面的3点中可以看出,这个现象和代码补充、代码片段有关系,如果大家熟悉vscode
插件的话,肯定就会知道各种语言、框架的snippet
插件。
Code snippet
(代码片段)在vscode
中指的是基于IDE
支持的利用快捷方式快速输入一小段,或者称之为一整块代码的功能,在日常编程,特别是在工作中写内容相似的业务代码时,利用snippet
功能,可以极大加快编程效率
因此关键词,就是snippet
了,在setting
中搜索后的结果就是这样,可以看到整体分为,文本编辑器
和扩展
,其实就可以理解为vscode 自带的、通用的
和自己下载的第三方插件
,既然无法连续自动补充这个问题普遍存在的话,我们就着重看下文本编辑器
里面的。可以看到第三个设置控制活动代码段是否阻止快速建议
,和我们前面分析的现象非常一致,这里是阻止了活动代码的快速建议。
我们将√取消掉,再次尝试,发现一切就正常了,在首次自动补充后,vscode
认为这里是活动代码片段,此时仍然可以进行自动补充(快速建议):

至此这个问题就算是解决了,这里还有一点需要注意的就是,不同语言、不同环境,并不是只要这样设置了就一定可以二次填充,而是基于现有的功能。
如果本身没有或者不支持某种快速提示功能(例如对于vue
,需要下载vetur
),那么这样设置也是无效的,需要再拓展中下载相关的snippet
插件~
如有疑问,欢迎添加我的个人微信:
