Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

table_translator 设置 enable_completion 为 true 后,4 码以上的词条看不到逐码提示 #911

Open
pimgeek opened this issue Jul 6, 2024 · 7 comments
Labels

Comments

@pimgeek
Copy link

pimgeek commented Jul 6, 2024

问题描述

输入编码长度小于或等于 3 时,候选列表中非首选项都能正常显示 “逐码提示” 内容;但编码长度大于 3 时,所有词组都不再显示 “逐码提示”

重现方法

以下是相关配置内容,按此配置,可重现问题。比如输入 kjk 时,可以看到 看看~j 提示内容。但是当输入 kjkj 时,无论是 “看看”,“侃侃”,“砍砍” 还是 “坎坎” 都没有进一步的编码提示了

# test01.dict.yaml (节选)

看看	kjkj	83425
看看	kjkju	83425
看看	kjkjuu	83425
侃侃	kjkj	2024
侃侃	kjkjj	2024
侃侃	kjkjjj	2024
砍砍	kjkj	239
砍砍	kjkjm	239
砍砍	kjkjmm	239
坎坎	kjkj	233
坎坎	kjkjg	233
坎坎	kjkjgg	233
# test01.schema.yaml (节选)

speller:
  alphabet: 'abcdefghijklmnopqrstuvwxyz/;`'
  delimiter: " '"
  max_code_length: 64
  auto_select: false

translator:
  dictionary: test01
  enable_charset_filter: false
  enable_sentence: false
  enable_encoder: false
  enable_completion: true
  encode_commit_history: false
  enable_user_dict: false
  initial_quality: 1
  disable_user_dict_for_patterns:
    - "^o.*$"
    - "^`.*$"

系统/程序版本

我使用 MacOS 12.7.4 ,Rime 1.8.5 版本

@pimgeek pimgeek added the bug label Jul 6, 2024
@ksqsf
Copy link
Member

ksqsf commented Jul 13, 2024

Not a bug. 注意到 kjkj, kjkju, kjkjuu 的输出都是 "看看",因此会被 uniquifier 唯一化到第一个输出上,对应于 kjkj 的输出,因此没有 ~u 和 ~uu 的注解。

@pimgeek
Copy link
Author

pimgeek commented Jul 16, 2024

我可以通过修改配置关闭 uniquifier 或者改变默认的逐码提示行为吗?

Not a bug. 注意到 kjkj, kjkju, kjkjuu 的输出都是 "看看",因此会被 uniquifier 唯一化到第一个输出上,对应于 kjkj 的输出,因此没有 ~u 和 ~uu 的注解。

@ksqsf
Copy link
Member

ksqsf commented Jul 16, 2024

直接从filters里删除uniquifier。不过关闭uniquifier会把所有相同的输出都保留,你可能不想要这种行为。

@pimgeek
Copy link
Author

pimgeek commented Jul 18, 2024

我昨天试过你说的这种方法,但不知为什么还是不能出现 4 位以上编码的剩余编码提示。你以前用过的开源输入方案中,有没有编码提示支持 4 位以上编码的例子?我想学习一下 🤔

直接从filters里删除uniquifier。不过关闭uniquifier会把所有相同的输出都保留,你可能不想要这种行为。

@ksqsf
Copy link
Member

ksqsf commented Jul 18, 2024

没有。你的原始问题是什么?我也许可以建议一个更好的办法。

@pimgeek
Copy link
Author

pimgeek commented Jul 18, 2024

没有。你的原始问题是什么?我也许可以建议一个更好的办法。

我开发了一套音形结合的输入方案,它的前四码是双拼编码,后两码是词组首字的第一个字根码,以及末字的第一个字根码。有一位使用此方案的用户反馈说,希望对词组编码做逐码提示,我推测 Ta 是因为很难直接在头脑中反应出词组首字与末字的根码,才提出这个需求(我自己其实并不需要的);但是我很好奇为什么同一词组有多个重码 + 4 码以上的那些编码就无法自动提示了

我曾怀疑是我自定义的 preedit filter 和 input processor 有问题,但是即使把它们禁用掉也不行。我也曾怀疑是 lua 代码没彻底禁用完全,但是在这种情况下,感觉还是问问 Rime 开发者或专家用户比较好,自己反复修改代码感觉收效甚微 🤔

@ksqsf
Copy link
Member

ksqsf commented Jul 18, 2024

按我的理解,就是输入一个词,同时提示形码部分。所以我觉得可以使用 reverse_lookup_filter 查出词语的编码附在 comment 上即可,可以用 comment format 取出对应信息。另外用 lua filter 手动调用 ReverseLookup 也可以实现相应逻辑。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants