diff --git a/src/extension.ts b/src/extension.ts index 10c4d1bf1a30f3dfb52159e5e3a8d689dcbc47ec..59cf2d923349b42cf77266691d3c91a00a0ca4fc 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -192,14 +192,6 @@ async function 完成项提供者(document: TextDocument, position: Position) { // `所有拼写`里包括多音字, 比如对"多重"而言, 会返回['duochong', 'duozhong']. // 如果分别把两个结果都包装成补全项, 就会出现重复的结果. // 如果将其包装成一个结果, 使用'duochong,duozhong'作为提示词, 当用户输入'duo'的时候没问题, 用户输入'duoz'的时候, 因为vscode的机制,结果也能出来. - // 但如果第一个字就是多音字, 比如"查询"会得到['zhaxun', 'chaxun'], 如果将其包装为一个补全项, 使用'zhaxun,chaxun'作为提示词的话, 用户输入'cha'就无法得到结果了. - // 这里用一个简单的办法, 有多音字的时候, 永远把开头和用户输入一致的那个音放在混合提示词的前面. - // 比如用户输入了'cha', 我得到了'查询', 进而得到['zhaxun', 'chaxun'], 我会将其提示词设置为'chaxun,zhaxun'而不是'zhaxun,chaxun'. - - var 输入匹配的索引 = R.findIndex((a) => a.indexOf(输入字段) == 0, 所有拼写) - var cc = 所有拼写[0] - 所有拼写[0] = 所有拼写[输入匹配的索引] - 所有拼写[输入匹配的索引] = cc a.filterText = 所有拼写.join(',') + a.label a.insertText = a.label.toString() diff --git "a/src/lib/\346\250\241\345\236\213/\346\213\274\345\206\231\350\275\254\346\215\242.ts" "b/src/lib/\346\250\241\345\236\213/\346\213\274\345\206\231\350\275\254\346\215\242.ts" index 76bbf0e8630aea89e52553fda3df5f230ec5db69..5da47259d16c8f90cea70a2022053aa61dbe148b 100644 --- "a/src/lib/\346\250\241\345\236\213/\346\213\274\345\206\231\350\275\254\346\215\242.ts" +++ "b/src/lib/\346\250\241\345\236\213/\346\213\274\345\206\231\350\275\254\346\215\242.ts" @@ -17,7 +17,10 @@ export async function 字典拼写转换(路径: string): Promise<字典拼写 .forEach((v) => { if (!/.+\t.+/.test(v)) return let [中文, 拼音] = v.split('\t') - let 处理后拼音 = 拼音.split(' ').join('') + let 处理后拼音 = 拼音 + .split(' ') + .map((v) => (v.length > 0 ? v[0].toLocaleUpperCase() + v.substring(1) : v)) + .join('') if (字典对象[中文] == null) { 字典对象[中文] = [处理后拼音] } else {