如何禁用VSCode代码补全建议的后处理(额外过滤)功能?
在VSCode扩展中禁用代码补全的后处理过滤
利用
CompletionItem的filterText属性:
给每个补全项设置filterText字段,把它设为用户可能输入的错误拼写内容。比如用户打错成funciton,你想补全正确的function,就把这个补全项的filterText设为funciton。VSCode的过滤逻辑会以filterText为基准做匹配,而不是盯着补全项的label,这样就能绕过精确匹配的限制,让纠错后的建议正常显示。自己接管过滤逻辑:
既然你已经返回了isIncomplete=true的CompletionList,可以在onCompletion方法里根据用户当前的输入,自己完成拼写纠错和过滤,只把符合要求的补全建议返回给VSCode。这样VSCode拿到的就是已经过滤好的结果,不会再额外做精确匹配过滤。注意
completionProvider的配置细节:
注册补全提供者时,合理设置triggerCharacters,如果不需要延迟解析补全项,把resolveProvider设为false。官方并没有直接禁用后处理过滤的开关,但上面的filterText方案是官方认可的实现这类需求的标准方式,能完美解决拼写纠错场景的问题。
内容的提问来源于stack exchange,提问作者Dylon
相关产品推荐
相关产品推荐

