Skip to content

Commit

Permalink
fix: en_spacer 现在不会在中英标点、空字符前添加空格
Browse files Browse the repository at this point in the history
  • Loading branch information
mirtlecn committed Jul 27, 2024
1 parent 2b4bf3a commit 5460175
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 16 deletions.
24 changes: 10 additions & 14 deletions lua/en_spacer.lua
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
-- 这个 Lua 给英文单词后面自动加一个空格 #496
-- 中文或者英文后,再输入英文单词自动添加空格
local F = {}

local function add_space_to_english_word(input)
-- 匹配纯英文单词(don't 算纯英文单词)并在单词后添加空格
input = input:gsub("(%a+'?%a*)", "%1 ")
return input
end

-- 在候选项上屏时触发的函数
local function en_spacer(input, env)
function F.func( input, env )
local latest_text = env.engine.context.commit_history:latest_text()
for cand in input:iter() do
if cand.text:match("^[%a']+[%a']*$") then
-- 如果候选项是纯英文单词,则在输入后添加一个空格
cand = cand:to_shadow_candidate(cand.type, add_space_to_english_word(cand.text), cand.comment)
if cand.text:match( '^[%a\']+[%a\']*$' ) and latest_text and #latest_text > 0 and
not latest_text:find( '[%p%s。,;?:—!《》‘’“”、¥…()【】「」『』]$' ) then
cand = cand:to_shadow_candidate( 'en_spacer', cand.text:gsub( '(%a+\'?%a*)', ' %1' ), cand.comment )
end
yield(cand)
yield( cand )
end
end

return en_spacer
return F

4 changes: 2 additions & 2 deletions rime.lua
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ long_word_filter = require("long_word_filter")
-- 在 engine/filters 增加 - lua_filter@cn_en_spacer
cn_en_spacer = require("cn_en_spacer")

-- 英文词条上屏自动空格
-- 在 engine/filters 增加 - lua_filter@en_spacer
-- 英文词条上屏自动添加空格
-- 在 engine/filters 的倒数第二个位置,增加 - lua_filter@en_spacer
en_spacer = require("en_spacer")

-- 九宫格,将输入框的数字转为对应的拼音或英文,iRime 用,Hamster 不需要。
Expand Down

0 comments on commit 5460175

Please sign in to comment.