diff --git a/double_pinyin.schema.yaml b/double_pinyin.schema.yaml index 117faec..da3af1c 100644 --- a/double_pinyin.schema.yaml +++ b/double_pinyin.schema.yaml @@ -73,6 +73,7 @@ engine: - script_translator - lua_translator@*date_translator # 时间、日期、星期 - lua_translator@*lunar # 农历 + - lua_translator@*uuid # UUID - table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt - table_translator@melt_eng # 英文输入 - table_translator@cn_en # 中英混合词汇 @@ -106,6 +107,10 @@ date_translator: lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十 +# Lua 配置: 生成 UUID 的触发关键字 +uuid: uuid + + # Lua 配置: 降低部分英语单词在候选项的位置。 # 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题 # 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」 diff --git a/double_pinyin_abc.schema.yaml b/double_pinyin_abc.schema.yaml index d5e9d50..2029cea 100644 --- a/double_pinyin_abc.schema.yaml +++ b/double_pinyin_abc.schema.yaml @@ -73,6 +73,7 @@ engine: - script_translator - lua_translator@*date_translator # 时间、日期、星期 - lua_translator@*lunar # 农历 + - lua_translator@*uuid # UUID - table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt - table_translator@melt_eng # 英文输入 - table_translator@cn_en # 中英混合词汇 @@ -106,6 +107,10 @@ date_translator: lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十 +# Lua 配置: 生成 UUID 的触发关键字 +uuid: uuid + + # Lua 配置: 降低部分英语单词在候选项的位置。 # 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题 # 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」 diff --git a/double_pinyin_flypy.schema.yaml b/double_pinyin_flypy.schema.yaml index e6e26ff..fd79a50 100644 --- a/double_pinyin_flypy.schema.yaml +++ b/double_pinyin_flypy.schema.yaml @@ -73,6 +73,7 @@ engine: - script_translator - lua_translator@*date_translator # 时间、日期、星期 - lua_translator@*lunar # 农历 + - lua_translator@*uuid # UUID - table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt - table_translator@melt_eng # 英文输入 - table_translator@cn_en # 中英混合词汇 @@ -106,6 +107,10 @@ date_translator: lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十 +# Lua 配置: 生成 UUID 的触发关键字 +uuid: uuid + + # Lua 配置: 降低部分英语单词在候选项的位置。 # 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题 # 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」 diff --git a/double_pinyin_jiajia.schema.yaml b/double_pinyin_jiajia.schema.yaml index 2d5aa4e..504b370 100644 --- a/double_pinyin_jiajia.schema.yaml +++ b/double_pinyin_jiajia.schema.yaml @@ -73,6 +73,7 @@ engine: - script_translator - lua_translator@*date_translator # 时间、日期、星期 - lua_translator@*lunar # 农历 + - lua_translator@*uuid # UUID - table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt - table_translator@melt_eng # 英文输入 - table_translator@cn_en # 中英混合词汇 @@ -106,6 +107,10 @@ date_translator: lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十 +# Lua 配置: 生成 UUID 的触发关键字 +uuid: uuid + + # Lua 配置: 降低部分英语单词在候选项的位置。 # 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题 # 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」 diff --git a/double_pinyin_mspy.schema.yaml b/double_pinyin_mspy.schema.yaml index eb7b20e..ca45d73 100644 --- a/double_pinyin_mspy.schema.yaml +++ b/double_pinyin_mspy.schema.yaml @@ -73,6 +73,7 @@ engine: - script_translator - lua_translator@*date_translator # 时间、日期、星期 - lua_translator@*lunar # 农历 + - lua_translator@*uuid # UUID - table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt - table_translator@melt_eng # 英文输入 - table_translator@cn_en # 中英混合词汇 @@ -106,6 +107,10 @@ date_translator: lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十 +# Lua 配置: 生成 UUID 的触发关键字 +uuid: uuid + + # Lua 配置: 降低部分英语单词在候选项的位置。 # 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题 # 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」 diff --git a/double_pinyin_sogou.schema.yaml b/double_pinyin_sogou.schema.yaml index bef6cc4..0e01b8a 100644 --- a/double_pinyin_sogou.schema.yaml +++ b/double_pinyin_sogou.schema.yaml @@ -73,6 +73,7 @@ engine: - script_translator - lua_translator@*date_translator # 时间、日期、星期 - lua_translator@*lunar # 农历 + - lua_translator@*uuid # UUID - table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt - table_translator@cn_en # 中英混合词汇 - table_translator@melt_eng # 英文输入 @@ -106,6 +107,10 @@ date_translator: lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十 +# Lua 配置: 生成 UUID 的触发关键字 +uuid: uuid + + # Lua 配置: 降低部分英语单词在候选项的位置。 # 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题 # 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」 diff --git a/double_pinyin_ziguang.schema.yaml b/double_pinyin_ziguang.schema.yaml index fe3398d..ac593be 100644 --- a/double_pinyin_ziguang.schema.yaml +++ b/double_pinyin_ziguang.schema.yaml @@ -73,6 +73,7 @@ engine: - script_translator - lua_translator@*date_translator # 时间、日期、星期 - lua_translator@*lunar # 农历 + - lua_translator@*uuid # UUID - table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt - table_translator@melt_eng # 英文输入 - table_translator@cn_en # 中英混合词汇 @@ -106,6 +107,10 @@ date_translator: lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十 +# Lua 配置: 生成 UUID 的触发关键字 +uuid: uuid + + # Lua 配置: 降低部分英语单词在候选项的位置。 # 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题 # 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」 diff --git a/lua/uuid.lua b/lua/uuid.lua new file mode 100644 index 0000000..6252a51 --- /dev/null +++ b/lua/uuid.lua @@ -0,0 +1,46 @@ +local function yield_cand(seg, text) + local cand = Candidate("", seg.start, seg._end, text, "") + cand.quality = 100 + yield(cand) +end + +local fmt = string.format +local rand = math.random +local randomseed = math.randomseed + +local function generate_uuid_v4() + return fmt( + "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + rand(0, 255), + rand(0, 255), + rand(0, 255), + rand(0, 255), + rand(0, 255), + rand(0, 255), + (rand(0, 255) & 0x0F) | 0x40, + rand(0, 255), + (rand(0, 255) & 0x3F) | 0x80, + rand(0, 255), + rand(0, 255), + rand(0, 255), + rand(0, 255), + rand(0, 255), + rand(0, 255), + rand(0, 255) + ) +end + +local M = {} + +function M.init(env) + M.uuid = env.engine.schema.config:get_string(env.name_space:gsub("^*", "")) or "uuid" +end + +function M.func(input, seg, _) + if input == M.uuid then + randomseed(os.time()) + yield_cand(seg, generate_uuid_v4()) + end +end + +return M diff --git a/rime_ice.schema.yaml b/rime_ice.schema.yaml index 22fe972..ba9e6fe 100644 --- a/rime_ice.schema.yaml +++ b/rime_ice.schema.yaml @@ -6,7 +6,7 @@ schema: schema_id: rime_ice name: 雾凇拼音 - version: "2025-10-23" + version: "2025-10-31" author: - Dvel description: | @@ -62,6 +62,7 @@ engine: - script_translator - lua_translator@*date_translator # 时间、日期、星期 - lua_translator@*lunar # 农历 + - lua_translator@*uuid # UUID - table_translator@custom_phrase # 自定义短语 custom_phrase.txt - table_translator@melt_eng # 英文输入 - table_translator@cn_en # 中英混合词汇 @@ -97,6 +98,10 @@ date_translator: lunar: nl # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十 +# Lua 配置: 生成 UUID 的触发关键字 +uuid: UUID + + # Lua 配置:长词优先 # 提升 count 个词语,插入到第 idx 个位置。 # 示例:将 2 个词插入到第 4、5 个候选项,输入 jie 得到「1接 2解 3姐 4饥饿 5极恶 6结 7界……」