chore: some adjustments for unicode.lua (#898)
* Update unicode.lua 1. config:get_string() 可能取得 nil , 增加預設字串 2. seg:has_tag() , input == "" 提前判斷,可以避免 patterns 未設定的問題 * trim and add change log --------- Co-authored-by: mirtlecn <mirtle.cn+github@outlook.com>
This commit is contained in:
parent
0d93df2174
commit
e33e1d2c44
@ -3,11 +3,18 @@
|
|||||||
-- 示例:输入 U62fc 得到「拼」
|
-- 示例:输入 U62fc 得到「拼」
|
||||||
-- 触发前缀默认为 recognizer/patterns/unicode 的第 2 个字符,即 U
|
-- 触发前缀默认为 recognizer/patterns/unicode 的第 2 个字符,即 U
|
||||||
-- 2024.02.26: 限定编码最大值
|
-- 2024.02.26: 限定编码最大值
|
||||||
|
-- 2024.06.01: 部分变量初始化,条件语句调整。
|
||||||
|
|
||||||
|
local path = 'recognizer/patterns/unicode'
|
||||||
local function unicode(input, seg, env)
|
local function unicode(input, seg, env)
|
||||||
|
if not seg:has_tag("unicode") or input == '' then return end
|
||||||
-- 获取 recognizer/patterns/unicode 的第 2 个字符作为触发前缀
|
-- 获取 recognizer/patterns/unicode 的第 2 个字符作为触发前缀
|
||||||
env.unicode_keyword = env.unicode_keyword or
|
-- config:get_string(path) 可能取得 nil 造成error
|
||||||
env.engine.schema.config:get_string('recognizer/patterns/unicode'):sub(2, 2)
|
if not env.unicode_keyword then
|
||||||
if seg:has_tag("unicode") and env.unicode_keyword ~= '' and input:sub(1, 1) == env.unicode_keyword then
|
local pattern = env.engine.schema.config:get_string(path) or "UU"
|
||||||
|
env.unicode_keyword = pattern:sub(2,2)
|
||||||
|
end
|
||||||
|
|
||||||
local ucodestr = input:match(env.unicode_keyword .. "(%x+)")
|
local ucodestr = input:match(env.unicode_keyword .. "(%x+)")
|
||||||
if ucodestr and #ucodestr > 1 then
|
if ucodestr and #ucodestr > 1 then
|
||||||
local code = tonumber(ucodestr, 16)
|
local code = tonumber(ucodestr, 16)
|
||||||
@ -24,7 +31,6 @@ local function unicode(input, seg, env)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return unicode
|
return unicode
|
||||||
|
Loading…
Reference in New Issue
Block a user