-- ~/.local/share/fcitx5/rime/rime.lua
-- 兼容老版 librime-lua (Ubuntu 22.04 自带 1.7.3) 的桥接入口
-- 1.7.3 的 raw_init 直接 lua_getglobal(L, t.klass.c_str()),
-- 把整个 "*select_character"(含 '*' 前缀)当全局名查;
-- 而 rime-ice schema 的 *xxx 是按新版 librime-lua 写的(去掉 *,
-- 自动 require)。两边语义不匹配,所以 schema 的 lua 引用全部解析为 nil,
-- lua_filter 链路崩溃后整个候选列表都被吞掉,候选框不弹、中文打不出来。
-- 修法:在这里手动给每个引用建一个带 '*' 前缀的全局,值为 require 的结果。
-- librime-lua 1.7.3 的 raw_init 本身能正确处理 module table(自动调 .init,
-- 取 .func),所以 rime-ice 的新接口脚本可以直接用。
"date_translator", "lunar", "uuid", "unicode",
"number_translator", "calc_translator", "force_gc",
"corrector", "autocap_filter", "v_filter", "pin_cand_filter",
"long_word_filter", "reduce_english_filter", "search",
for _, name in ipairs(refs) do
local ok, mod = pcall(require, name)
io.stderr:write(string.format("[rime.lua] require(%q) failed: %s\n", name, tostring(mod)))