feat: 中英混输词条自动空格; close #327
This commit is contained in:
parent
de3892c841
commit
1eed724c8d
35
lua/cn_en_spacer.lua
Normal file
35
lua/cn_en_spacer.lua
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
-- 为中英混输词条(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)
|
||||||
|
-- 检查是否含有中文
|
||||||
|
if not s:find("([\228-\233][\128-\191]-)") then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
-- 检查是否含有英文或数字
|
||||||
|
if not s:find("[%a%d]") then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
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
|
17
rime.lua
17
rime.lua
@ -7,16 +7,10 @@ v_filter = require("v_filter")
|
|||||||
-- 长词优先(全拼)
|
-- 长词优先(全拼)
|
||||||
long_word_filter = require("long_word_filter")
|
long_word_filter = require("long_word_filter")
|
||||||
|
|
||||||
-- 降低部分英语单词在候选项的位置
|
-- 以词定字,可在 default.yaml key_binder 下配置快捷键,默认为左右中括号 [ ]
|
||||||
-- 可在方案中配置要降低的单词
|
|
||||||
reduce_english_filter = require("reduce_english_filter")
|
|
||||||
|
|
||||||
-- 以词定字
|
|
||||||
-- 可在 default.yaml key_binder 下配置快捷键,默认为左右中括号 [ ]
|
|
||||||
select_character = require("select_character")
|
select_character = require("select_character")
|
||||||
|
|
||||||
-- 日期时间
|
-- 日期时间,可在方案中配置触发关键字。
|
||||||
-- 可在方案中配置触发关键字。
|
|
||||||
date_translator = require("date_translator")
|
date_translator = require("date_translator")
|
||||||
|
|
||||||
-- Unicode,U 开头
|
-- Unicode,U 开头
|
||||||
@ -28,9 +22,16 @@ number_translator = require("number_translator")
|
|||||||
-- 自动大写英文词汇
|
-- 自动大写英文词汇
|
||||||
autocap_filter = require("autocap_filter")
|
autocap_filter = require("autocap_filter")
|
||||||
|
|
||||||
|
-- 降低部分英语单词在候选项的位置,可在方案中配置要降低的单词
|
||||||
|
reduce_english_filter = require("reduce_english_filter")
|
||||||
|
|
||||||
|
|
||||||
-- 默认未启用:
|
-- 默认未启用:
|
||||||
|
|
||||||
|
-- 中英混输词条自动空格
|
||||||
|
-- 在 engine/filters 增加 - lua_filter@cn_en_spacer
|
||||||
|
cn_en_spacer = require("cn_en_spacer")
|
||||||
|
|
||||||
-- 九宫格,手机用。
|
-- 九宫格,手机用。
|
||||||
-- 在 engine/filters 增加 - lua_filter@t9_preedit
|
-- 在 engine/filters 增加 - lua_filter@t9_preedit
|
||||||
t9_preedit = require("t9_preedit")
|
t9_preedit = require("t9_preedit")
|
||||||
|
@ -69,8 +69,8 @@ engine:
|
|||||||
filters:
|
filters:
|
||||||
- simplifier@emoji # Emoji
|
- simplifier@emoji # Emoji
|
||||||
- simplifier@traditionalize # 简繁切换
|
- simplifier@traditionalize # 简繁切换
|
||||||
- lua_filter@autocap_filter # 英文自动大写
|
|
||||||
- lua_filter@v_filter # v 模式 symbols 优先(否则是英文优先)
|
- lua_filter@v_filter # v 模式 symbols 优先(否则是英文优先)
|
||||||
|
- lua_filter@autocap_filter # 英文自动大写
|
||||||
- lua_filter@reduce_english_filter # 降低部分英语单词在候选项的位置
|
- lua_filter@reduce_english_filter # 降低部分英语单词在候选项的位置
|
||||||
- lua_filter@long_word_filter # 长词优先
|
- lua_filter@long_word_filter # 长词优先
|
||||||
- uniquifier # 去重
|
- uniquifier # 去重
|
||||||
|
Loading…
Reference in New Issue
Block a user