hchunhui / librime-lua

Extending RIME with Lua scripts
BSD 3-Clause "New" or "Revised" License
359 stars 43 forks source link

engine里方法名重复问题 #364

Closed Magician62011 closed 1 week ago

Magician62011 commented 2 months ago

types.cc 里584行里方法与579行里命名重复了,导致无法调用到set_active_engine https://github.com/hchunhui/librime-lua/blob/fa6563cf7b40f3bfbf09e856420bff8de6820558/src/types.cc#L579-L584

另外我在尝试实现手动切换横竖展示。我可以通过set_bool更改配置参数 schema.config:set_bool('style/horizontal', h_swtich_state) 但是我发现它不会立即生效,而在我使用ctrl+`触发一下activate后,它会生效。所以我想尝试调用下面的方法,看看会不会实现立即触发它。所以也想请教下大神朋友们,有没有其他方式能触发配置被引擎立即加载更新生效。谢谢~

shewer commented 2 months ago

那個參數 在librime 中 只有 selector 初始化時用在 keybind 如方向鍵置換 librime 只是輸入法框架 沒有控制 前端ui 的機制

前端目前只在導入方案時設定 ,井沒有即時檢查 horizontal 這個option 即使ui 更換了 selector 初始化後 方向鍵綁定後就不在更動 以目前看來 只有 重置 重新導入方案較爲可行

另一個問題是 重新導入方案是從 build/scham.yaml 中載入 , 我不認爲 config:set_bool 可以用,要看前端的ui 初始化是在 engine 初始化後才有機會

Magician62011 commented 2 months ago

您说的很有道理,我也觉得这种需求,依靠的是前端的机制,什么时候重新渲染不好确定。好在我现在测试发现,我的确更改的是engine里的实时参数,会产生日志 I20240919 12:41:16.496542 10492 config_data.cc:201] write: style/horizontal 在我set_bool后,哪怕不做任何操作,观察info log发现,在日志出现starting engine后,展现就会有切换。如果是我使用Ctrl+`唤出切换列表后,日志出现 switcher.cc:244] switcher is activated. 它就会立即变化。我用的是小狼毫,应该是某种机制触发了UI重新渲染了被修改的配置值。 我查找librime,里面包含了set_active_engine方法。所以我寄希望于它能帮助我达到目的。

switcher is activated

https://github.com/rime/librime/blob/9fa2bbc0dae3ded48ff4e71669cedc38c49f72f0/src/rime/switcher.cc#L243-L249

Magician62011 commented 1 month ago

抱歉,之前是我的问题,这并不是一个命名错误,是我小白没有看懂代码设计,很抱歉。现在我了解vars_get和vars_set的在lua脚本里的用法了。并通过不断努力尝试,写出了能让lua实现 小狼毫输入法horizontal横竖切换的脚本了。 再次感谢插件作者和所有贡献者~