Zhai Can

Results 50 comments of Zhai Can

不可以在librime中留有接口,然后发给前端去请求么。我感觉这个可能就像是librime配置中的`style`,只是个配置定义,会给到前端去实现样式。可如果真不行的话,librime-lua也就没办法了嘛?

其实我也还不太懂librime到底是处理什么的。我看到librime中引入X11,处理按键事件,那这些接口应也是有相应X11接口,librime就不可处理吗?单纯想了解一下,请教一下。 更新:哦哦,似乎librime中的X11只是用到key def之类的?

@mokapsing 我明白最终的平台实现肯定在前端。可光前端有功能了是不是仅仅不够,librime没任何接口与其通讯,而且要这么搞的话,各平台(比如小狼毫、fcitx5-rime)接口怎么统一?。比如我想实现从librime-lua中操纵输入框,光前端有功能的话这怎么调用到呢,我觉得应该是librime-lua得调用librime,librime再通知前端?

具体我也不知道也不确定啊,而且我也不是在什么设计/代码层面提想法,单纯就是一个使用者的角度来。那按你这么说,反正不管怎样,那是不是在lua扩展中做这些操作就变得不可能了?

我的想法是,librime中统一一套这样的接口,前端可以来平台实现,然后lua中使用那些接口,就会请求到相应的前端实现。(原谅我之前糟糕的语气……) 有一个应该可行的解决方案,我在并击输入法群里看到有人用rime-lua链接本地库,实现直接在lua里调c接口。这样就使librime-lua中做这些操作成为可能,只需给它搞个平台相应的动态库就行了,并且能干的事会很多,比如调微软的SAPI TTS。比如针对这个issue,在安卓中,我可以有如下调用: ``` Rime lua--(c bind)-->libwhatever.so--(JNI API)-->`InputConnection#getSurroundingText`。 ```

> 傳遞 KeyEvent repr() 字串 到前端處理 可用 commit_text 或 property_notifier commit_text("(){Left}") 这个我试了,只会上屏`(){Left}`而不是操作光标向左移。刚好别的项目有个配对括号需求,可以看一下,这是我目前的理解,不知对不对。 - https://github.com/KyleBing/rime-wubi86-jidian/issues/157#issuecomment-2412897297 我同样试了在lua中 ```lua engine:process_key(KeyEvent(0xff51 /* XK_Left */, 0)) ``` 但这种等于说只是对librime的内部发个左键,就比如我说到的composing时左移个caret,而不能操作系统的光标向左移。

明白明白,这正是我现在的理解,看我对另一个issue下的解释,应该没问题。Rime只作为一个后端。

改lua把if加上日期时间来源就行了:`if (utf8.len(cand.text) == 1 or cand.type == "date" or cand.type == "time") then`

> if (utf8.len(cand.text) == 1 or cand.type == "date" or cand.type == > "time") then 这句应该在哪个文件的哪里改 > > leonecho ***@***.***> 于2025年1月4日周六 17:16写道: > […](#) `lua/wubi86_jidian_single_char_only.lua`文件的第四行

ctrl+space是系统用于切换输入法的键吗?如果是那也不是rime能控制的了