【功能需求】希望英文方案(含临时英文)也开放自动造词功能
-
背景
某些编辑器(如:EverEdit, EmEditor,VSCode等)内置了自动补全功能, 只要是标识符规范的字符串,都支持自动补全提示,但大部分的笔记软件、办公软件、浏览器发帖等,都不支持已输入内容的自动补全功能。
痛点
用户在写技术笔记或发技术博客等时,经常会输入一些特定领域的专有词, 比如:在软件开发领域, 可能代码中有常量“RESET_TIME”,“REDUNDANCY_IP_ADDR”等自造词。
- 这些自造词不可能每个都事先添加到词库中,也不能遇到1个就向英文词库添加1个(虽然也行,但会比较麻烦,中断用户当前的思维)。
- 这些自造词,可能项目结束,换了新项目就不常用了,可能需要考虑自动消亡。
需求
用户在输入专有的英文标识符时,对以下类型的希望能自动造词
- 带“_”连字符的单词,不论大写还是小写, 如:RESET_TIME, reset_time,下划线是大量编程语言标识符的连字符。
- 带“-”横线的单词,不论大小写, 如:Lisp语言,支持get-user-by-id这种形式的标识符、XML/CSS/HTML大量使用max-page-size、background‑color等形式的属性名等,YAML配置文件广泛使用如api-timeout这类形式的配置项名称
- 类Bash变量名,如:${reset_time},注:如果能支持最好,不能支持也能接受
- 编码时,可能要接纳符号做为编码的一部分且要区分大小写, 比如:RESET_TIME, reset_time是两个不同的词
价值
- 对技术文档写作,可以解决大量变量、专有词的反复输入效率问题。
参考
- 当前“快捷输入”可以正常输入Bash形式的变量,如下所示:

- 当前“快捷输入”可以正常输入带“-”的标识符,如下所示:

- 当前“快捷输入”可以正常输入带“_”的标识符,如下所示:

注:候选框太窄了, 有地方可以设置吗?
变通方案:增强当前快捷输入的功能
- 当前“快捷输入”已经满足了90%的目标场景需求,即,输入不同形式的标识符/变量名/属性名,可以快速重复输入
- 不足: 快捷输入只会记录最近的这次输入,如果用户再输入其他内容,则快捷输入内容会覆盖,无法重复快捷输入上述变量名等
- 设想: 能不能给快捷输入,搞一个队列, 队列长度可以是1000词条(不需要多长),如果满了,则最老的那个词条挤出去,有新快捷输入内容上屏(一定要是引导符触发的上屏,而不是当前的行为:随便一个输入都替换快捷输入的唯一一发子弹),则压入这个队列尾部(如果词条已存在,则把对应词条移动到尾部)
- 仍然兼容当前的输入方式, 按引导符“;”时,继续重复最近的一个输入。
- 使用快捷输入引导符输入时,会遍历这个快捷队列,并做不区分符号或字母的前缀匹配。
看看用哪个方案更好, 我觉得,增强型快捷输入,代价最小,且也是逻辑自洽的。
