30 Star 224 Fork 21

中文编程 / vscode_Chinese_Input_Assistant

 / 详情

在使用代码片段(snippet)补全后,在空缺位置键入无法触发补全

已完成
拥有者
创建于  
2020-12-29 12:20

以 if 为例,全拼输入下,首先 if 触发代码片段补全:
输入图片说明
回车后,代码片段被添加:
输入图片说明
在空缺处键入 zhw,但没有补全提示:
输入图片说明
对比不使用代码片段,直接键入 if () 之后键入 zhw,有补全提示:
输入图片说明

评论 (5)

吴烜 创建了任务
展开全部操作日志

输入图片说明
这样选择片段的话,实际上还并没有退出"片段模式",按tab键会移动到下一个制表位.

https://code.visualstudio.com/docs/editor/userdefinedsnippets#_snippet-syntax

输入图片说明
例如,图上的情况时,按下tab键,光标会移动到大括号里,此时才算退出了"片段模式".此时按tab才会正确的插入\t,输入字符才会正确的触发补全.

在片段模式中不会触发补全,并不是只有中文不行,字母也不行.
这应该是vscode自己的机制,现阶段应该没办法修改.
也许可以考虑提issue给vscode,片段模式中弹出补全应该也是合理的要求.

刚发现可以通过 ctrl+space 触发补全:
输入图片说明
输入图片说明
输入图片说明

@吴烜 qwq确实如此.
那么也许可以通过一些手段实现"片段模式"的补全提示,例如输入任何字符都触发提示事件.(但这样在其他情况下表现会比较奇怪)
我认为这还是vsc本身的设计,因为在片段模式下输入英文也不会有补全提示.所以我觉得应该在vsc层面上解决.
也许提个issue是更好的选择.

于是我去搜了下vscode的issue

https://github.com/microsoft/vscode/issues/107742
https://github.com/wurstscript/WurstScript/issues/967

提到

输入图片说明

就是说:
如果要在这种模式下使用自动补全,就需要放弃tab切换制表位的功能.
如果要使用补全的话, 要么关闭这个设置, 要么使用快捷键手动触发.

尝试了关闭editor.suggest.snippetsPreventQuickSuggestions, 可行.

输入图片说明
输入图片说明

这个问题应该已经研究的很清楚了, 所以关闭.

hbybyyang 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
7626385 hbybyyang 1597309838 384016 zhishi 1578922186
JavaScript
1
https://gitee.com/Program-in-Chinese/vscode_Chinese_Input_Assistant.git
git@gitee.com:Program-in-Chinese/vscode_Chinese_Input_Assistant.git
Program-in-Chinese
vscode_Chinese_Input_Assistant
vscode_Chinese_Input_Assistant

搜索帮助