-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
既然从头设计一门语言有困难,那么从修改VSCode等编辑器支持的LSP入手,允许美式键盘输入拼音缩写之后,自动补全关联到对应的汉字标识符是否更有可行性?
以下是示例:
首先是代码:
// Pronounces as "Zhong Wen Biao Shi Fu", for demonstration purposes take invalid pronunciation "Zhong Wen Biao Zhi Fu" into consider
// All pronunciations above are stripped tones
class 中文标识符 { /* ... */ }
class ZhongWenPinYin {
// 罕见字或罕见读音,用户覆盖读法
// multilingual-autocompletion-override-completion: WuXuan
public static string 吴烜 = "WuXuan";
}
修改后的LSP给class 中文标识符
对应的语法项增加一个属性:localizedCompletionString: [ 'ZhongWenBiaoShiFu', 'ZhongWenBiaoZhiFu' ]
。稍后用户在键盘上输入缩写zhongwenbs
时,编辑器的自动补全功能弹出类似列表:
zhongwenbs | |
---|---|
(⭐) | 中文标识符 |
ZhongWenPinYin | |
... |
通过这种方式可以解决输入中文标识符时,处于中文输入状态无法触发补全的问题。预计解决这个问题对提高编码效率有帮助。
本地化补全字符串中有一些细节:
- 单条补全字符串不是完全小写的。这是为了允许编辑器在收到
zw
的输入时,也能够通过猜测首字母大写ZhongWen进而关联到此标识符。 - 为了应对多音字,每个符号的补全字符串都是数组(列表),标识符每个可能的读音都放在里面。建议只放入常见读音。不常见的字符和读音由下述机制处理。
- 标识符前第一条去除了前导空格后,由
multilingual-autocompletion-override-completion:
起头的注释将指定localizedCompltionString
的内容。如上述标识符吴烜
,将被注释multilingual-autocompletion-override-completion: WuXuan
冒号后的内容覆盖读音,localizedCompltionString
的内容将是[ "WuXuan" ]
。具体是否只允许一条读音待定。
希望这些想法对您的项目有所帮助。
Metadata
Metadata
Assignees
Labels
No labels