hchunhui / librime-lua

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

config 对象是否有方法修改 __include 引用 #344

Closed boomker closed 6 months ago

boomker commented 6 months ago

我有一段配置,如下:

speller:
  ...
  algebra:
    __include: algebra_xh

algebra_xh:
  ...
  - derive/^(\w)(\w)$/$1/
  ...

algebra_zrm:
  - derive/^(\w)(\w)$/$1/
  ...

现在的想法是在Lua脚本里控制 __include 不同的值,有办法实现吗? 我尝试过下面的方法:

      env:Config_set("speller/algebra/__include", "algebra_zrm")

发现不生效,会有报错。 @shewer ,可以指点一下吗,谢谢🙏

shewer commented 6 months ago

那些語法 都是 佈署時用的 ,configReg 開啓的是 方案中的 yaml (./build/....schema.yaml)

雖然 有接口可以 load yaml ,但是取得的值仍是標準的yaml 最好還是 參照 定製指南 https://github.com/rime/home/wiki/RimeWithSchemata#%E5%AE%9A%E8%A3%BD%E6%8C%87%E5%8D%97

配合 tools rime_deployer 檢查

mirtlebot commented 6 months ago

配置是改了后,想要生效必须重新部署,没法热加载。

boomker commented 6 months ago

我主要还是没懂,怎么去变更 __include引用的值,只要可以变更,脚本里调用部署命令也算 OK 现在有这些报错:

image
mirtlebot commented 6 months ago

我主要还是没懂,怎么去变更 __include引用的值,只要可以变更,脚本里调用部

可能是在部署的时候,include、append 和 __patch 的节点会被展开。

在 lua 里面获取到的,是展开后的 config,换句话说,已经没有这些节点了。

直接改 rime_path 里面的 schema.yaml 文件试试。

boomker commented 6 months ago

可能是在部署的时候,include、append 和 __patch 的节点会被展开

好吧,原来是这样,希望未来有接口支持这种双下划线关键词对应节点的操作