-
Notifications
You must be signed in to change notification settings - Fork 12
/
rime.lua
108 lines (84 loc) · 2.71 KB
/
rime.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
-- 增加 KeySequence(string)
-- 1
-- local ks= KeySequence()
-- ks:parse("abc")
-- 2
-- local ks= KeySequence("abc")
--
local _KeySequence=KeySequence
KeySequence = function(str)
local ks = _KeySequence()
if type(str)== "string" then
ks:parse(str)
end
return ks
end
--[[
librime-lua 样例
调用方法:
在配方文件中作如下修改:
```
engine:
...
translators:
...
- lua_translator@lua_function3
- lua_translator@lua_function4
...
filters:
...
- lua_filter@lua_function1
- lua_filter@lua_function2
...
```
其中各 `lua_function` 为在本文件所定义变量名。
--]]
--[[
本文件的后面是若干个例子,按照由简单到复杂的顺序示例了 librime-lua 的用法。
每个例子都被组织在 `lua` 目录下的单独文件中,打开对应文件可看到实现和注解。
各例可使用 `require` 引入。
如:
```
foo = require("bar")
```
可认为是载入 `lua/bar.lua` 中的例子,并起名为 `foo`。
配方文件中的引用方法为:`...@foo`。
--]]
-- I. translators:
-- date_translator: 将 `date` 翻译为当前日期
-- 详见 `lua/date.lua`:
date_translator = require("date")
-- time_translator: 将 `time` 翻译为当前时间
-- 详见 `lua/time.lua`
time_translator = require("time")
-- number_translator: 将 `/` + 阿拉伯数字 翻译为大小写汉字
-- 详见 `lua/number.lua`
number_translator = require("number")
-- II. filters:
-- charset_filter: 滤除含 CJK 扩展汉字的候选项
-- charset_comment_filter: 为候选项加上其所属字符集的注释
-- 详见 `lua/charset.lua`
local charset = require("charset")
charset_filter = charset.filter
charset_comment_filter = charset.comment_filter
-- single_char_filter: 候选项重排序,使单字优先
-- 详见 `lua/single_char.lua`
single_char_filter = require("single_char")
-- reverse_lookup_filter: 依地球拼音为候选项加上带调拼音的注释
-- 详见 `lua/reverse.lua`
reverse_lookup_filter = require("reverse")
--use wildcard to search code
expand_translator = require("expand_translator")
-- III. processors:
-- switch_processor: 通过选择自定义的候选项来切换开关(以简繁切换和下一方案为例)
-- 详见 `lua/switch.lua`
switch_processor = require("switch")
-- 由lua 導入 engine/下的組件 processor segmentor translator filters
-- 生成一個processor 於自己 schema speller 取得 config
-- processor=Component.Processor(env.engine,"","speller")
-- 生成一每translator 由 luna_pinyin.schema:/translator 取得 translator config
--
-- tran = Component.Translator(env.engine,Schema('luna_pinyin'),"","script_translator")
--
-- 配合 test.schema.yaml
--require 'component_test'