librime-lua icon indicating copy to clipboard operation
librime-lua copied to clipboard

如何在上屏之后不让输入法候选框消失

Open BlindingDark opened this issue 5 years ago • 2 comments

我想实现一个根据上次上屏的字去联想组词的功能,类似一些输入法中上屏 “你” 之后,候选中出现 “好”,“们” ... 等等。

大概思路是

  1. 监听上屏事件记录上屏的词(这个目前是支持的)
  2. 拿到上次上屏的字,并去查词典(这个要怎么做?)
  3. 把查到的结果放入候选(能做到)

第一步上屏之后,能否不让输入法候选框消失? 我想的是修改输入码,在输入码之后加一个空白的输入码,这样就永远输入不完,候选框就不会消失。不知道这个现在能否实现,或是有没有其它办法?

第二步查词典如果在目前的版本中,是要自己构建反查词典么? @Ace-Who 在 #19 中好像提到过类似的功能,具体是要怎么做呢?或者有没有其它方案?

BlindingDark avatar May 05 '20 13:05 BlindingDark

不知道如何保持候选框,不过我也考虑过这个问题,没有想到简单可靠的方法。我提的 issue 是指拿输入码(最好能作为 pattern,比如正则模式,而不是限于精确匹配)去查词。 拿词去查词也是可以做到的,思路是做一个词典及其配套方案,以联想词为 code,以前置输入词为 text,以生成 reverse.bin,用 ReverseDb() 来以 textcode

Ace-Who avatar May 05 '20 14:05 Ace-Who

贊同。 我會在 translator 放一個 包含詞組 字典且將enable_completion :true ,在全域變數 保留上一個字 及上屏前 此字典 候選字 存入array , 確認上屏後 , 用上屏字 找 Array 第二字 優先推入 。

但 想想 不是很好用 , 1 table 有詞組 和 提前顯示 2 漢語拼音 智能 ( nih/ nim) 都會出在候選字上 使用者 table 盲打 少用候選字 2 拼音 rime 智能已能做到連打

shewer avatar Aug 07 '20 17:08 shewer