SquirrelConfig/lua/cn_en_spacer.lua

29 lines
827 B
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

-- 为中英混输词条cn_en.dict.yaml自动空格
-- 示例:`VIP中P` → `VIP 中 P`
--
-- ChatGPT 写的
local function add_spaces(s)
-- 在中文字符后和英文字符前插入空格
s = s:gsub("([\228-\233][\128-\191]-)([%w%p])", "%1 %2")
-- 在英文字符后和中文字符前插入空格
s = s:gsub("([%w%p])([\228-\233][\128-\191]-)", "%1 %2")
return s
end
-- 是否同时包含中文和英文数字
local function is_mixed_cn_en_num(s)
return s:find("([\228-\233][\128-\191]-)") and s:find("[%a%d]")
end
local function cn_en_spacer(input, env)
for cand in input:iter() do
if is_mixed_cn_en_num(cand.text) then
cand = cand:to_shadow_candidate(cand.type, add_spaces(cand.text), cand.comment)
end
yield(cand)
end
end
return cn_en_spacer