feat: improve model mention autocomplete behavior under IME #1779
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
增强使用拼音输入法 @ 符号选择模型时的体验.
在使用拼音输入法时, 如果想输入简短的英文, 我们并不需要切换回英文, 而是直接压回车, 即可输入当前已经输入的英文内容. 但是在使用 @ 符号选择模型时会出问题, 因为在使用拼音输入法时输入的英文字母并不是连续的, 而是会被空格隔开, 直到压了回车, 输入的字符才变成连续的, 但是当前@ 符号匹配模型列表时一旦不匹配, 则模型选择 menu 会永远关闭, 直到用户下次输入 @ 符号才会再次打开, 这样就造成一些问题, 如图

此时因为 llam 中存在空格, 所以模型菜单由于不匹配, 会关闭, 即使我压了回车得到
@llam
也无济于事, 需要删除这些内容, 切换到英语输入法, 然后重新选择模型, 非常麻烦.这个 PR 会让 @ 持续匹配, 而不是永久关闭, 虽然在拼音输入法的瞬间由于空格等因素无法真正的匹配, 但是一旦用户压了回车, 得到
@llam
这样的序列后, 则会再次弹出菜单, 并且显示已经匹配的列表.所以现在的行为是, 在拼音输入法的时候显示如下, 我增加了一个小的提示框

一旦用户压了回车, 则变成如下显示

这个改动同时优化了在英文输入法下选择模型的体验, 以前如果用户错误的输入了模型名称, 比如
@llan
那菜单直接关闭, 需要从头开始, 但是现在则会显示models.no_matches
并且只要删除最后的 n, 菜单又会重新打开.当然有时候比如要输入邮箱, 里面一定有 @ 符号, 如果持续显示
models.no_matches
会很烦人, 所以我增加了 esc 按键取消匹配, 此时 menu 菜单会和之前一样彻底关闭, 直到用户输入下一个 @ 符, 又会开启匹配.总结一下目前的行为: