improve: 改进 v_filter 的性能 (#147)
This commit is contained in:
parent
d859ee255e
commit
58e5a08ac2
43
rime.lua
43
rime.lua
@ -237,29 +237,36 @@ end
|
|||||||
-- 把候选项应改为「ā á ǎ à …… van vain」,让单个字符的排在前面
|
-- 把候选项应改为「ā á ǎ à …… van vain」,让单个字符的排在前面
|
||||||
function v_filter(input, env)
|
function v_filter(input, env)
|
||||||
local code = env.engine.context.input -- 当前编码
|
local code = env.engine.context.input -- 当前编码
|
||||||
local l = {}
|
-- 仅当当前输入以 v 开头,并且编码长度为 2,才进行处理
|
||||||
for cand in input:iter() do
|
if (string.len(code) == 2 and string.find(code, "v") == 1) then
|
||||||
-- 特殊情况处理
|
local l = {}
|
||||||
if (cand.text == "Vs.") then
|
for cand in input:iter() do
|
||||||
yield(cand)
|
-- 特殊情况处理
|
||||||
end
|
if (cand.text == "Vs.") then
|
||||||
-- 特殊情况处理
|
|
||||||
local arr = {"1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣"}
|
|
||||||
for _, v in ipairs(arr) do
|
|
||||||
if (v == cand.text and string.len(code) == 2 and string.find(code, "v") == 1) then
|
|
||||||
yield(cand)
|
yield(cand)
|
||||||
break
|
end
|
||||||
|
-- 特殊情况处理
|
||||||
|
local arr = { "1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣" }
|
||||||
|
for _, v in ipairs(arr) do
|
||||||
|
if (v == cand.text) then
|
||||||
|
yield(cand)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- 候选项为单个字符的,提到前面来。
|
||||||
|
if (utf8.len(cand.text) == 1) then
|
||||||
|
yield(cand)
|
||||||
|
else
|
||||||
|
table.insert(l, cand)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- 以 v 开头、2 个长度的编码、候选项为单个字符的,提到前面来。
|
for _, cand in ipairs(l) do
|
||||||
if (string.len(code) == 2 and string.find(code, "v") == 1 and utf8.len(cand.text) == 1) then
|
yield(cand)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
for cand in input:iter() do
|
||||||
yield(cand)
|
yield(cand)
|
||||||
else
|
|
||||||
table.insert(l, cand)
|
|
||||||
end
|
end
|
||||||
end
|
|
||||||
for _, cand in ipairs(l) do
|
|
||||||
yield(cand)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-------------------------------------------------------------
|
-------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user