feat: translator 改成自动读取 recognizer/patterns 配置来获取触发前缀 close #615
This commit is contained in:
parent
90a86b0635
commit
064df83015
@ -242,8 +242,8 @@ recognizer:
|
||||
patterns: # 再增加方案专有的:
|
||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||
unicode: "^U[a-f0-9]+" # 响应 Unicode
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 number_translator
|
||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||
|
||||
|
||||
# 从 default 继承快捷键
|
||||
|
@ -244,8 +244,8 @@ recognizer:
|
||||
patterns: # 再增加方案专有的:
|
||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||
unicode: "^U[a-f0-9]+" # 响应 Unicode
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 number_translator
|
||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||
|
||||
|
||||
# 从 default 继承快捷键
|
||||
|
@ -242,8 +242,8 @@ recognizer:
|
||||
patterns: # 再增加方案专有的:
|
||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||
unicode: "^U[a-f0-9]+" # 响应 Unicode
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 number_translator
|
||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||
|
||||
|
||||
# 从 default 继承快捷键
|
||||
|
@ -246,8 +246,8 @@ recognizer:
|
||||
patterns: # 再增加方案专有的:
|
||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||
unicode: "^U[a-f0-9]+" # 响应 Unicode
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 number_translator
|
||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||
|
||||
|
||||
# 从 default 继承快捷键
|
||||
|
@ -246,8 +246,8 @@ recognizer:
|
||||
patterns: # 再增加方案专有的:
|
||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||
unicode: "^U[a-f0-9]+" # 响应 Unicode
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 number_translator
|
||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||
|
||||
|
||||
# 从 default 继承快捷键
|
||||
|
@ -244,8 +244,8 @@ recognizer:
|
||||
patterns: # 再增加方案专有的:
|
||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||
unicode: "^U[a-f0-9]+" # 响应 Unicode
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 number_translator
|
||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||
|
||||
|
||||
# 从 default 继承快捷键
|
||||
|
@ -1,5 +1,6 @@
|
||||
-- 来源 https://github.com/yanhuacuo/98wubi-tables > http://98wb.ysepan.com/
|
||||
-- 数字、金额大写 (任意大写字母引导+数字)
|
||||
-- 触发前缀默认为 recognizer/patterns/number 的第 2 个字符,即 R
|
||||
|
||||
local function splitNumPart(str)
|
||||
local part = {}
|
||||
@ -109,10 +110,11 @@ local function number_translatorFunc(num)
|
||||
return result
|
||||
end
|
||||
|
||||
-- 触发模式为任意大写字母(除了 U,U 用在 Unicode 了)开头,可在 recognizer/patterns 中自定义
|
||||
local function number_translator(input, seg)
|
||||
local function number_translator(input, seg, env)
|
||||
-- 获取 recognizer/patterns/number 的第 2 个字符作为触发前缀
|
||||
env.number_keyword = env.number_keyword or env.engine.schema.config:get_string('recognizer/patterns/number'):sub(2, 2)
|
||||
local str, num, numberPart
|
||||
if string.match(input, "^([A-TV-Z]+%d+)(%.?)(%d*)$") ~= nil then
|
||||
if env.number_keyword ~= '' and input:sub(1, 1) == env.number_keyword then
|
||||
str = string.gsub(input, "^(%a+)", "")
|
||||
numberPart = number_translatorFunc(str)
|
||||
if #numberPart > 0 then
|
||||
|
@ -1,19 +1,25 @@
|
||||
-- Unicode
|
||||
-- 示例:输入 U62fc 得到「拼」
|
||||
-- 复制自: https://github.com/shewer/librime-lua-script/blob/main/lua/component/unicode.lua
|
||||
-- 示例:输入 U62fc 得到「拼」
|
||||
-- 触发前缀默认为 recognizer/patterns/unicode 的第 2 个字符,即 U
|
||||
local function unicode(input, seg, env)
|
||||
local ucodestr = seg:has_tag("unicode") and input:match("U(%x+)")
|
||||
if ucodestr and #ucodestr > 1 then
|
||||
local code = tonumber(ucodestr, 16)
|
||||
local text = utf8.char(code)
|
||||
yield(Candidate("unicode", seg.start, seg._end, text, string.format("U%x", code)))
|
||||
if code < 0x10000 then
|
||||
for i = 0, 15 do
|
||||
local text = utf8.char(code * 16 + i)
|
||||
yield(Candidate("unicode", seg.start, seg._end, text, string.format("U%x~%x", code, i)))
|
||||
end
|
||||
end
|
||||
end
|
||||
-- 获取 recognizer/patterns/unicode 的第 2 个字符作为触发前缀
|
||||
env.unicode_keyword = env.unicode_keyword or
|
||||
env.engine.schema.config:get_string('recognizer/patterns/unicode'):sub(2, 2)
|
||||
if seg:has_tag("unicode") and env.unicode_keyword ~= '' and input:sub(1, 1) == env.unicode_keyword then
|
||||
local ucodestr = input:match(env.unicode_keyword .. "(%x+)")
|
||||
if ucodestr and #ucodestr > 1 then
|
||||
local code = tonumber(ucodestr, 16)
|
||||
local text = utf8.char(code)
|
||||
yield(Candidate("unicode", seg.start, seg._end, text, string.format("U%x", code)))
|
||||
if code < 0x10000 then
|
||||
for i = 0, 15 do
|
||||
local text = utf8.char(code * 16 + i)
|
||||
yield(Candidate("unicode", seg.start, seg._end, text, string.format("U%x~%x", code, i)))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return unicode
|
||||
|
@ -205,8 +205,8 @@ recognizer:
|
||||
patterns: # 再增加方案专有的:
|
||||
punct: "^v([0-9]|10|[A-Za-z]+)$" # 响应 symbols_v.yaml 的 symbols,用 'v' 替换 '/'
|
||||
reverse_lookup: "^u[a-z]+$" # 响应两分拼字的反查
|
||||
unicode: "^U[a-f0-9]+" # 响应 Unicode
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 number_translator
|
||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||
|
||||
|
||||
# 从 default 继承快捷键
|
||||
|
Loading…
x
Reference in New Issue
Block a user