Open wrvsrx opened 3 weeks ago
很早就改到了新版的 Lua 加载方式,但是有部分 Linux 和安卓用户反应他们的 librime 版本没有跟上,就又改回来了。目前这样还能写个注释,也不影响自己用新版的方式来加入自己的 Lua 脚本。
我觉得现在这样挺好的,即便不太懂配置,复制粘贴之后,只需要打开 default.yaml
和自己用的方案文件,照着注释简单改一改就好了,不需要的方案直接删除也 OK。
我翻到过 23 年的那个改回来的 commit,那个 commit 里面提到官方小狼毫,同文跟 iRIME。第一个已经 23 年 6 月恢复更新(指 release 新版本,不仅指更新 repo),第二个在持续更新。iRIME 现在的情况不清楚(不用 app store),我们能否认为对于还在维护的软件,librime-lua 都已经更新到了支持新版加载(22 年年中)之后的版本,rime-ice 最终还是要跟着新的版本走吧。
至于 linux,只要不是 centos 钉子户 librime-lua 应该都更新了。
我也支持保留 default.yaml,这会非常便于新人用户的使用。我的建议是说能否调整依赖,使得删除 default.yaml (或者说用 rime-prelude 中的 default.yaml)并不会影响整个系统的使用;已经重命名跟 rime-double-pinyin 等官方包中命名冲突的部分,增强兼容性。这一点我已经在打包自用的 rime-ice 时验证过可行性。
我们还可以进一步改善易用性。现在双拼用户使用时仍然需要 patch melt_eng 跟 radical_pinyin,我们可以通过 "__include" 在不引入重复代码的情况下创建 melt_eng_double 跟 radical_pinyin_double,让用户不需要再手动 patch 后面两者。这一点我已经在打包自用的 rime-ice 时验证过可行性。
双拼跟默认方案里的双拼重名 rime.lua 无法与其他包含 rime.lua 的方案共存 现在双拼用户使用时仍然需要 patch melt_eng 跟 radical_pinyin
这些如果在官方仓库中能处理是更好。
rime-ice
前缀 librime
/librime-lua
版本default.yaml 容易直接覆盖掉其它输入方案的设置
保留 default.yaml
侵入性太强,也与打包原则有所违背,应该由发行版维护者处理。例如
default.custom.yaml
,并加入 __include: rime_ice_suggestion
)出一个升级librime的小教程比刻意去兼容老版本更好
@iDvel 开发者怎么想?
如果对这个提案感兴趣的话我可以逐步弄一些 PR
default.yaml
(例如拆出来一个 common.yaml
,然后方案里都 __include: common
?)rime.lua
的那种emoji.json
都要重命名这个我觉得是没啥必要,看看大家怎么想嘛。
我是认为目前这样很好,保留 default.yaml
是肯定的,复制粘贴后就开箱即用。
prelude 里面的 default.yaml
也是包含了 punctuator
、key_binder
、recognizer
等等内容。
官方的双拼一样是引用的 default:
这些属性(候选项个数、标点、快捷键等等)也都是比较通用的选择,写在 default 里很合适。
目前雾凇的 default.yaml
里没有不该存在于 default 里的自定义属性。
最主要的是,用户完全可以无视雾凇或其他任何方案的 default.yaml
,通过创建 default.custom.yaml
来覆盖这些属性。
重命名或者加前缀,感觉问题不是很大,毕竟雾凇现在算是一个整合包了,不是单一的输入方案或词库。 如果要在雾凇基础上加一个五笔或日文什么的,其实也不算问题吧。
Lua 加载方式改到不需要 rime.lua
的倒是可以的,之前回退了一次后一直没改。
可让用户找到的一些不会修改的、带 rime.lua
的脚本不与目前的冲突,仍然可以一键拉取更新。
我的主要目的是允许 rime-ice 可以被各个 linux 发行版方便地用作一套方案而非整合包,所以下面的建议与分析都是希望在维持 rime-ice 作为整合包的便利性的同时,提高 rime-ice 的模块化程度以及与其它方案的共存性。
关于拆分 default.yaml
我没打算在方案里加入 __include: rime_ice_common
,而是在 rime-ice 的 default.yaml
中加入__include: rime_ice_common
,并不修改方案中的 __include: default
。
这样的话如果用户希望把 rime_ice 当成一套方案来使用的话,可以直接删掉 default.yaml
,继承 rime-prelude
里面的设定;如果同时希望使用 rime_ice 中标点符号相关的设定,可以在自己的 default.custom.yaml
中通过 __include: rime_ice_common
来实现。这并不影响 rime-ice 作为整合包的便利性。
更改 lua 加载方式:已经提交了关于 lua load 的 PR
重命名文件:这个不会增加整合包用户的负担,但是会极大便利下游 linux 发行版的打包,因为这跟 rime 官方提供的双拼重名。
除了开发者提出的三点外,还有一个可以模块化的地方是 melt_eng
跟 radical_pinyin
:
当前 melt_eng
跟 radical_pinyin 中仍然需要双拼用户手动更改设置,完全可以通过 __include
跟 __patch
避免用户的手动设置。
以上几点我可以拆成几个 PR,您意向如何?
重命名我觉得没必要,重命名要改方案、词库、Lua ……
拆分 default.yaml 的问题我是这个意思,任何方案之间的这个文件冲突,都不影响用户自己用 default.custom.yaml
进行覆盖。愿意在某一方案的基础上改,就保留它的 default.yaml;或者直接删除,在 prelude 的基础上改,都可以。
英文方案和拆字方案不是已经用一行 __include
设定了嘛,用户只要在注释里选择一行就可以了,打补丁也很容易,也有自动的 plum 补丁。
感谢变更 Lua 加载方式的 PR,我改改一些注释后合并。
摘要
rime 生态(librime-lua 等插件)的更新允许我们以更加模块化的形式制作方案,可以讲仓库修改的更模块化,与其它方案共存得更好。
相关应用
该议题涉及所有 Rime 版本
系统信息
该议题涉及所有系统
详细说明
rime-ice 极大便利了用户的使用,不过当前的一些文件结构跟设计阻止了它跟其它输入方案的并存。这个 issue 提出一些模块化方面的问题和解决方案。具体的实现我可以提 PR,希望先咨询开发者的意见。
rime.lua 无法与其他包含 rime.lua 的方案共存
解决方案:从 22 年 这个 PR 后,librime-lua 支持不经过 rime.lua 加载函数,我们可以直接用这套方式加载函数。
双拼跟默认方案里的双拼重名。
解决方案:改名,
double_pinyin_flypy.schema.yaml
重命名为double_pinyin_flypy_ice.schema.yaml
之类的default.yaml
容易直接覆盖掉其它输入方案的设置解决方案:arch linux 的 aur 打包 rime-ice-git 用一些替换脚本做到了这一点。我们可以在仓库中做类似的替换(当然有些方法可以避免 aur 脚本可能导致的冗余)使设置模块化。在仓库的 default.yaml 中只保留对模块化设置的导入,这样新手用户可以直接 clone 仓库使用,需要模块化设置的用户可以通过 plum 安装或直接删掉 default.yaml 即可(现在删掉 default.yaml 会破坏掉很多仓库内部的
__include
)仓库中有大量重复的代码,能否通过
__include
实现代码复用?补充信息
No response