[+] Rime: Date input

This commit is contained in:
Azalea Gui
2023-01-01 22:57:46 -05:00
parent def092fc14
commit 8ef0fff0cc
2 changed files with 34 additions and 1 deletions
@@ -2,4 +2,6 @@
# 文件中“patch:”应只存在一个,若已存在只需粘贴后面的代码
# 此文件用于修改特定输入方案,把上方的luna_pinyin改为其它输入方案名即可完成对其它输入方案的修改
patch:
"translator/dictionary": extended #词典名字可自定义,与下方文件名保持一致即可
"translator/dictionary": extended #词典名字可自定义,与下方文件名保持一致即可
'engine/translators/+':
- lua_translator@date_translator
+31
View File
@@ -0,0 +1,31 @@
function date_translator(input, seg)
if (input == "dd") then
--- Candidate(type, start, end, text, comment)
yield(Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d"), ""))
yield(Candidate("date", seg.start, seg._end, os.date("%Y年%m月%d日"), ""))
end
if (input == "ww") then
arr = {"","","","","",""}
arr[0] = ""
yield(Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d 星期"..arr[tonumber(os.date("%w"))]), ""))
end
if (input == "tt") then
yield(Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d %H:%M:%S"), ""))
yield(Candidate("date", seg.start, seg._end, os.date("%H:%M:%S"), ""))
end
end
--- 过滤器:单字在先
function single_char_first_filter(input)
local l = {}
for cand in input:iter() do
if (utf8.len(cand.text) == 1) then
yield(cand)
else
table.insert(l, cand)
end
end
for i, cand in ipairs(l) do
yield(cand)
end
end