From 54302f76cc938c5b865c84412be99f019090de1e Mon Sep 17 00:00:00 2001 From: ijklam Date: Tue, 14 Feb 2023 04:39:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=B0=86=E5=AD=97=E5=85=B8=E5=86=85?= =?UTF-8?q?=E7=9A=84=E6=8B=BC=E9=9F=B3=E5=8F=98=E6=88=90=E9=A6=96=E5=AD=97?= =?UTF-8?q?=E6=AF=8D=E5=A4=A7=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/extension.ts | 8 -------- .../\346\213\274\345\206\231\350\275\254\346\215\242.ts" | 5 ++++- ...54\345\234\260\350\276\223\345\205\245\346\263\225.ts" | 5 ++++- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index 10c4d1b..59cf2d9 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 76bbf0e..5da4725 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 { diff --git "a/src/lib/\346\250\241\345\236\213/\346\234\254\345\234\260\350\276\223\345\205\245\346\263\225.ts" "b/src/lib/\346\250\241\345\236\213/\346\234\254\345\234\260\350\276\223\345\205\245\346\263\225.ts" index 11ad2b9..9130882 100644 --- "a/src/lib/\346\250\241\345\236\213/\346\234\254\345\234\260\350\276\223\345\205\245\346\263\225.ts" +++ "b/src/lib/\346\250\241\345\236\213/\346\234\254\345\234\260\350\276\223\345\205\245\346\263\225.ts" @@ -20,7 +20,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) { 字典对象[处理后拼音] = [中文] -- Gitee From 263d7dcfbc83f852cd7e6942dc3b165730bd7f96 Mon Sep 17 00:00:00 2001 From: ijklam Date: Tue, 14 Feb 2023 05:12:25 +0800 Subject: [PATCH 2/2] bugfix --- ...4\254\345\234\260\350\276\223\345\205\245\346\263\225.ts" | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git "a/src/lib/\346\250\241\345\236\213/\346\234\254\345\234\260\350\276\223\345\205\245\346\263\225.ts" "b/src/lib/\346\250\241\345\236\213/\346\234\254\345\234\260\350\276\223\345\205\245\346\263\225.ts" index 9130882..11ad2b9 100644 --- "a/src/lib/\346\250\241\345\236\213/\346\234\254\345\234\260\350\276\223\345\205\245\346\263\225.ts" +++ "b/src/lib/\346\250\241\345\236\213/\346\234\254\345\234\260\350\276\223\345\205\245\346\263\225.ts" @@ -20,10 +20,7 @@ export async function 创建字典(路径: string): Promise<字典> { .forEach((v) => { if (!/.+\t.+/.test(v)) return let [中文, 拼音] = v.split('\t') - let 处理后拼音 = 拼音 - .split(' ') - .map((v) => (v.length > 0 ? v[0].toLocaleUpperCase() + v.substring(1) : v)) - .join('') + let 处理后拼音 = 拼音.split(' ').join('') 插入字典树(字典树对象, 处理后拼音) if (字典对象[处理后拼音] == null) { 字典对象[处理后拼音] = [中文] -- Gitee