hchunhui / librime-lua Goto Github PK
View Code? Open in Web Editor NEWExtending RIME with Lua scripts
License: BSD 3-Clause "New" or "Revised" License
Extending RIME with Lua scripts
License: BSD 3-Clause "New" or "Revised" License
例如输入了 abc
,要上屏或获取 ab
对应的任意候选。不知道这和 context
的 pop_input()
reopen_previous_segment()
等方法有没有关系?尝试通过修改 caret_pos
来改变光标位置,没有起作用。
例如想要按 7 来发出 2,选第 2 个候选。因为可能需要动态判断,数字不固定,不能用方案配置的 key_binder 实现。
如果 lua_processor 不能发送任意按键(代码中也确实没有 send
这样的关键词),那么有没有函数来提交已生成的任意候选?
说到了候选,不知道函数 get_selected_candidate
的确切用法,随意讨论一下。
if context:get_selected_candidate() then
cand:get_genuine().comment = context:get_selected_candidate().text
end
在 page_size 为 5 和 10 两种条件下测试。
结果是,除开第一页的边界情况外,每一页从第三个候选起,至下一页第二个候选,共计 page_size 个,其 comment 都是一样的,都是从上一页翻页过来之前被选中的候选的 text。
不知道这样的特性有什么应用场景?
如题.
安装的时候找不到$PATH_TO_RIME_SOURCE的位置.
很棒的项目!请问能否实现如下需求:
其中,云请求的字符串应能适配双拼展开
我看了之前的issue有提到librime的异步缺失问题,这种主动的云输入请求可以接受librime被阻塞,只要给定合理的timeout值。
实现这个feature的动机:
I can see Squirrel (latest v14.0) crashes during initialization, and I can probably make some guesses based on the crash log below: (full log is attached at the very end)
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000008
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [47911]
VM Regions Near 0x8:
-->
__TEXT 000000010551b000-000000010552d000 [ 72K] r-x/r-x SM=COW /Library/Input Methods/Squirrel.app/Contents/MacOS/Squirrel
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libluajit-5.1.2.dylib 0x0000000105b544b3 lua_pushcclosure + 19
1 librime.1.dylib 0x000000010565564d types_init(lua_State*) + 77
2 librime.1.dylib 0x0000000105653f44 lua_init(lua_State*) + 36
3 librime.1.dylib 0x0000000105660702 Lua::to_state(std::__1::function<void (lua_State*)>) + 34
4 librime.1.dylib 0x0000000105653a9e rime_lua_initialize() + 222
5 librime.1.dylib 0x0000000105639f55 rime::ModuleManager::LoadModule(rime_module_t*) + 709
6 librime.1.dylib 0x0000000105642969 rime::LoadModules(char const**) + 217
7 librime.1.dylib 0x0000000105648cb9 RimeInitialize + 57
8 im.rime.inputmethod.Squirrel 0x000000010551e713 -[SquirrelApplicationDelegate startRimeWithFullCheck:] + 34
9 im.rime.inputmethod.Squirrel 0x000000010551dae1 main + 750
10 im.rime.inputmethod.Squirrel 0x000000010551caf4 start + 52
The assembly code near types_init() +77 (+0x4d)
shows:
__Z10types_initP9lua_State:
11a600: 55 pushq %rbp
11a601: 48 89 e5 movq %rsp, %rbp
11a604: 41 57 pushq %r15
11a606: 41 56 pushq %r14
11a608: 41 55 pushq %r13
11a60a: 41 54 pushq %r12
11a60c: 53 pushq %rbx
11a60d: 50 pushq %rax
11a60e: 48 89 fb movq %rdi, %rbx
11a611: 4c 8d 2d 28 6f 10 00 leaq 1077032(%rip), %r13
11a618: 4c 89 2c 24 movq %r13, (%rsp)
11a61c: 48 8b 35 1d b3 0f 00 movq 1028893(%rip), %rsi
11a623: 48 8b 15 be ad 0f 00 movq 1027518(%rip), %rdx
11a62a: 4c 8d 35 ef 6d 10 00 leaq 1076719(%rip), %r14
11a631: 4c 8d 3d 08 6e 10 00 leaq 1076744(%rip), %r15
11a638: 4c 8d 25 71 6e 10 00 leaq 1076849(%rip), %r12
11a63f: 4c 89 f1 movq %r14, %rcx
11a642: 4d 89 f8 movq %r15, %r8
11a645: 4d 89 e1 movq %r12, %r9
11a648: e8 83 b3 00 00 callq 45955 <__Z11export_typeP9lua_StatePKcPFiS0_EPK8luaL_RegS7_S7_S7_>
11a64d: 4c 89 2c 24 movq %r13, (%rsp)
Key registers seems to be OK (at least they're not zeros) but I have a feeling that the Lua state handler (lua_State *L
) is not properly allocated. However I'm not familiar with C++ enough to understand the logic of these statements:
an<Lua> lua(new Lua);
lua->to_state(lua_init);
Hopefully we can figure this out easier then all by myself. Thanks a lot.
Create PATH_TO_RIME_USER_DATA_DIR
这个PATH_TO_RIME_USER_DATA_DIR在linux是什么目录??
主要是想确认是否无法获取 map
和 list
的数据,因为 config
没有 get_map()
或 get_list()
这样的方法。
In file included from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h:14,
from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua.cc:2:
/build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h: In member function ‘LuaResult<O> Lua::resume(std::shared_ptr<LuaObj>)’:
/build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua-compat.h:13:48: error: too few arguments to function ‘int lua_resume(lua_State*, lua_State*, int, int*)’
13 | #define xlua_resume(L, a) lua_resume(L, NULL, a)
| ^
/build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h:372:16: note: in expansion of macro ‘xlua_resume’
372 | int status = xlua_resume(C, 0);
| ^~~~~~~~~~~
In file included from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h:11,
from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua.cc:2:
/usr/include/lua.h:300:15: note: declared here
300 | LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg,
| ^~~~~~~~~~
make[2]: *** [plugins/librime-lua/CMakeFiles/rime-lua-objs.dir/build.make:135: plugins/librime-lua/CMakeFiles/rime-lua-objs.dir/src/lib/lua.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h:14,
from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lua_gears.cc:1:
/build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h: In member function ‘LuaResult<O> Lua::resume(std::shared_ptr<LuaObj>)’:
/build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua-compat.h:13:48: error: too few arguments to function ‘int lua_resume(lua_State*, lua_State*, int, int*)’
13 | #define xlua_resume(L, a) lua_resume(L, NULL, a)
| ^
/build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h:372:16: note: in expansion of macro ‘xlua_resume’
372 | int status = xlua_resume(C, 0);
| ^~~~~~~~~~~
In file included from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h:11,
from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lua_gears.cc:1:
/usr/include/lua.h:300:15: note: declared here
300 | LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg,
| ^~~~~~~~~~
In file included from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h:14,
from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/modules.cc:4:
/build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h: In member function ‘LuaResult<O> Lua::resume(std::shared_ptr<LuaObj>)’:
/build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua-compat.h:13:48: error: too few arguments to function ‘int lua_resume(lua_State*, lua_State*, int, int*)’
13 | #define xlua_resume(L, a) lua_resume(L, NULL, a)
| ^
/build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h:372:16: note: in expansion of macro ‘xlua_resume’
372 | int status = xlua_resume(C, 0);
| ^~~~~~~~~~~
In file included from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/lib/lua_templates.h:11,
from /build/librime/src/librime-1.5.3/plugins/librime-lua/src/modules.cc:4:
/usr/include/lua.h:300:15: note: declared here
300 | LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg,
| ^~~~~~~~~~
要修改的话,只能通过 cand.preedit
,在没有候选时,有办法修改吗?
切換反查 DB正常 工作 一應該在 process中有小BUG
E0721 01:29:24.772047 16536 lua_gears.cc:113] LuaProcessor::ProcessKeyEvent error(2): bad argument #1 to '?' (number expected, got nil)
長的很快 每秒 8條
三個判斷式都可正常工作 , 感覺像 return KAccepted KNoop 的問題
對processor return 用義為何?? 謝謝
local function processor(key,env) -- 攔截 trig_key 循環切換反查表 index_num +1 % base
local kAccepted = 1
local kNoop=2
local engine = env.engine
local context = engine.context
-- 正循環
if key:repr() == trig_nkey then -- 循環切換反查字典 0 off
index_num= (index_num +1 ) % base
context:refresh_non_confirmed_composition()
return kAccepted
-- 反循環
elseif key:repr() == trig_pkey then --
index_num = (index_num -1 + base) % base
context:refresh_non_confirmed_composition() -- 刷新 filter data
return kAccepted
-- 快碼字串比對 符合才進入修改 index_num
elseif "number" == type( pattern[context.input] ) then -- context.input 可調出 比對 快碼 符合
index_num = pattern[context.input] or index_num -- 如果 無值 時 不異動 index_num
context:clear() -- 清除 contex data
return kNoop
end
end
很喜欢多多输入法的直通车功能,可以通过按键触发调用制定的程序。多多输入法是通过run函数实现的,在lua里面我尝试通过translator引擎在函数定义里面调用os.execute也可以实现,但存在一个问题,在translator里面输入的按键候选框会一直显示,不会自我关闭。我想应该在proceesors引擎里实现,但具体该如何写我试了几次都没成功。具体方法如下,在
if (input == "time" or input == "iuju" or input == "sj" or input == "dqsj") then
......
end
代码段下面添加如下代码
if (input == "otc") then
os.execute("C:\TotalCommander922\TOTALCMD.EXE")
end
如何调试脚本内容,想看日志。
套用 rime/librime#248 的例子来说明:
-- Control+v 转大写,加空格
local function do_capital_space(s)
return string.upper(s .. " ")
end
local function myproc(key, env)
local engine = env.engine
local context = engine.context
local page_size = engine.schema.page_size
--- accept: Control+v
if (key:repr() == 'Control+v') then
--- when: composing
if (context:is_composing()) then
local s_orig = context:get_commit_text()
--- do_capital_space
local s = do_capital_space(s_orig) .. ' <' .. key:repr() .. '>'
engine:commit_text(s)
context:clear()
return 0 -- kAccepted
end
end
return 2 -- kNoop
end
return myproc
方案配置:
...
engine:
processors:
- ascii_composer
- recognizer
- lua_processor@myproc
- key_binder
- speller
- punctuator
- selector
- navigator
- express_editor
...
使用时,在选字状态下按 Ctrl + v,成功加了空格,但是也发生了粘贴操作。又如,将按键判断改为 key:repr() == '8'
,那么上屏时除加了空格以外,还会加个「8」。
通过在一个 lua_processor@key_counter
中将每一个按键 key:repr()
存入一个全局列表变量 keys
,发现只要是被绑定的一对按键,如 {accept: "Control+g", send: Escape, when: composing}
,按被绑的键,则两键都会依次存入 keys
,即按 Control+g
,就会依次存入 Control+g
、Escape
。方案中 processor
的顺序如下:
engine:
processors:
- ascii_composer
- lua_processor@key_counter
- recognizer
- key_binder
- speller
- punctuator
- selector
- navigator
- express_editor
key_counter
在 key_binder
之前,怎么会收到根据后者绑定而发送的按键呢?要辨别出哪个是真实按键,有什么思路吗?我唯一的思路是读取绑定配置列表,对最近两次接收到的按键作一一比对来判断它们是不是一对绑定键。
I have a problem when using lua script rime/librime#332 (comment)
I did not compile and install from source, but directly installed binary packages.
$ whereis librime
librime: /usr/lib/librime.so
Please help me how to add librime-lua support on the existing basis.
TKS.
自己写的lua如debug是否生成?函数是否执行了。能否有一个教程?
内容太多了,找了一个,闲来问问。想理解一下这个,有什么用例吗?
weasel 支持。trime 原版已知不支持,Linux 的从一个用户反馈来看也不支持。
目前已完成 顯示最簡碼 想再進一步 , 如果 上屏時 text 長度 大於 reverse_lookup_filter 最小長度時
發告警聲
furction beep()
print( string.char(07))
end
我想應該類似在 express_editor 這種程序且放在 processes 最後檢查上屏 keyevent 插入程序
這樣會不會與 express_editor 衝突 或是 取代
使用单字过滤时,时间日期等定义将无法上屏。
这个冲突的逻辑可以理解,但是想问一下作者大大,
有没有解决的预期?
当然,这只是一个小问题。
build against latest librime
and luajit 2.0.5
, repro on Linux and macOS.
perhaps due to incompatible API between latest lua
and luajit
.
the error can be temporarily fixed by changing dependency luajit
to lua
in CMakeLists.txt
.
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lua_gears.cc:1:
/Users/lotem/code/rime/librime/plugins/lua/src/lib/lua_templates.h:86:18: error: use of undeclared identifier 'luaL_testudata'; did you mea
T *o = (T *) luaL_testudata(L, i, name());
^~~~~~~~~~~~~~
luaL_checkudata
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lua_gears.cc:1:
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lib/lua_templates.h:12:
/usr/local/Cellar/luajit/2.0.5/include/luajit-2.0/lauxlib.h:53:19: note: 'luaL_checkudata' declared here
LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname);
^
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lua_gears.cc:1:
/Users/lotem/code/rime/librime/plugins/lua/src/lib/lua_templates.h:112:5: error: use of undeclared identifier 'luaL_setmetatable'; did you
luaL_setmetatable(L, name());
^~~~~~~~~~~~~~~~~
lua_setmetatable
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lua_gears.cc:1:
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lib/lua_templates.h:10:
/usr/local/Cellar/luajit/2.0.5/include/luajit-2.0/lua.h:194:16: note: 'lua_setmetatable' declared here
LUA_API int (lua_setmetatable) (lua_State *L, int objindex);
^
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lua_gears.cc:1:
/Users/lotem/code/rime/librime/plugins/lua/src/lib/lua_templates.h:112:26: error: cannot initialize a parameter of type 'int' with an rvalu
luaL_setmetatable(L, name());
^~~~~~
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lua_gears.cc:1:
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lib/lua_templates.h:10:
/usr/local/Cellar/luajit/2.0.5/include/luajit-2.0/lua.h:194:53: note: passing argument to parameter 'objindex' here
LUA_API int (lua_setmetatable) (lua_State *L, int objindex);
^
...
In file included from /Users/lotem/code/rime/librime/plugins/lua/src/lua_gears.cc:1:
/Users/lotem/code/rime/librime/plugins/lua/src/lib/lua_templates.h:357:17: error: use of undeclared identifier 'LUA_OK'
if (status != LUA_OK) {
^
full build log:
build.log
如題
該在 processor translator or filter 中 ?? 感覺應該在processor 內
用途。 反查 CNS1643 碼, 開啟 WEB 查全字庫
送字時兼發音
cns-1642 轉碼表
男女發音檔案mp3 ,檔名以 terry_pinyin 編碼
链接:https://pan.baidu.com/s/1zjH0k5-DeF8tvQfjeJV2sA
提取码:hzsr
已通过修改 cand:get_genuine().comment
实现修改候选注释,但是对 simplifier 返回的候选无效,对其余候选有效。
如题,小狼毫中使用 os.execute执行命令或程序时闪现cmd黑窗口,可以避免吗
或者有方法单独执行run命令而不依赖cmd
再一个执行lua脚本时如何确定相对路径呢,比如小狼毫的安装目录及用户目录,因为有时候会读取一些文件,而每个用户的安装目录可能会有所不同,使用相对路径方便读取文件
尝试阅读源代码,但不懂,想结合一个例子来理解。
尝试了 env.schema.config:get_int('menu/page_size')
,没成功。
添加好对应输入translator的编码 没有对应提示
输入词组时:
ciz¦
如 orq 时
or¦
期望效果例如
or¦
我是用来做字符串操作,修改 cand.preedit
。直接读 cand.preedit
应该是出错了,因为不生成候选。目前我用的是 context:get_script_text()
,这个应该是变换后的输入码吧?不过我的方案看不出来,因为本身没有做变换。
按照Readme从源码编译,/usr/lib中新增librime-lua.so,试用 - lua_translator@date_translator
但出现报错E1208 00:16:36.506965 15620 engine.cc:349] error creating translator: 'lua_translator'
现在的 librime 对 rime.lua 的读取,限制在「用户文件夹」下面。
如果在「程序文件夹」的「data」位置上,就不会生效。
「data」是程序的「yaml」文件目录。
win之外,mac 、linux 也都尝试过,一样限制在「用户文件夹」下面。
是否可以放宽 librime 对 rime.lua 读取位置的限制?
或者,如果我想改一改,应该做哪些事情?
求指点。
lua_filter 基本写法都懂,只简单提示一下核心部分吧。
Librime 升了一个版本,添加了对 librime-lua 插件的支持。
现在,无插件的新 librime 1.5 版本,可以成功编译,编译 librime 所需环境,是没问题了。
但是发现不能支持 lua,看了一下,原来是主代码的树目录里,plugins 下面并没有对咱们这款插件代码的引用,所以 git clone 时,没有一并拉下来。
现在,已经在「plugins」下使用 git bash 拉入了「librime-lua」的代码。
但是在编译时,提示缺少文件。
按照 cmakelist 中写的指引,我建了符合要求的依赖路径
但是,现在往里面补了以下内容后,出现大量报错:
报错信息如下:
请问, lua 插件的具体依赖,是 lua 的源代码,还是已编译好的 lua 库?
求指点。
user_dict_manager.cc
正在生成代码...
正在创建库 D:/librime/build/lib/Release/rime.lib 和对象 D:/librime/build/lib/Release/rime.exp
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_settop,该符号在函数 "public: struct Result<int,struct LuaErr> __thiscall Lua::c
all<int,class std::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj> >(class st
d::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj>)" (??$call@HV?$shared_ptr@
VLuaObj@@@std@@ABVKeyEvent@rime@@V12@@Lua@@QAE?AU?$Result@HULuaErr@@@@V?$shared_ptr@VLuaObj@@@std@@ABVKeyEvent@rime@@0@
Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
modules.obj : error LNK2001: 无法解析的外部符号 _lua_settop [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_settop [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_settop [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_pushvalue,该符号在函数 "struct Result<int,struct LuaErr> __cdecl todata_safe<in
t>(struct lua_State *,int)" (??$todata_safe@H@@YA?AU?$Result@HULuaErr@@@@PAUlua_State@@H@Z) 中被引用 [D:\librime\build\src\
rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_pushvalue [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_pushvalue [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_rotate,该符号在函数 "struct Result<int,struct LuaErr> __cdecl todata_safe<int>(
struct lua_State *,int)" (??$todata_safe@H@@YA?AU?$Result@HULuaErr@@@@PAUlua_State@@H@Z) 中被引用 [D:\librime\build\src\rim
e.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_rotate [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_type,该符号在函数 "void __cdecl pushdataX<class std::shared_ptr<class LuaObj>,c
lass std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj> >(struct lua_State *,class std::share
d_ptr<class LuaObj> &,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj>)" (??$pushdata
X@V?$shared_ptr@VLuaObj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@@YAXPAUlua_State@@AAV?$shared_ptr@VLuaObj@@@std
@@V?$shared_ptr@VTranslation@rime@@@2@V12@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_type [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_type [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_toboolean,该符号在函数 "public: static int __cdecl `struct Result<bool,struct L
uaErr> __cdecl todata_safe<bool>(struct lua_State *,int)'::`2'::X::runner(struct lua_State *)" (?runner@X@?1???$todata_
safe@_N@@YA?AU?$Result@_NULuaErr@@@@PAUlua_State@@H@Z@SAH0@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_toboolean [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_tolstring,该符号在函数 "public: struct Result<int,struct LuaErr> __thiscall Lua
::call<int,class std::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj> >(class
std::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj>)" (??$call@HV?$shared_p
tr@VLuaObj@@@std@@ABVKeyEvent@rime@@V12@@Lua@@QAE?AU?$Result@HULuaErr@@@@V?$shared_ptr@VLuaObj@@@std@@ABVKeyEvent@rime@
@0@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
modules.obj : error LNK2001: 无法解析的外部符号 _lua_tolstring [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_touserdata,该符号在函数 "public: static int __cdecl `struct Result<int,struct L
uaErr> __cdecl todata_safe<int>(struct lua_State *,int)'::`2'::X::runner(struct lua_State *)" (?runner@X@?1???$todata_s
afe@H@@YA?AU?$Result@HULuaErr@@@@PAUlua_State@@H@Z@SAH0@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_touserdata [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_tothread,该符号在函数 "public: struct Result<class std::shared_ptr<class rime::
Candidate>,struct LuaErr> __thiscall Lua::resume<class std::shared_ptr<class rime::Candidate> >(class std::shared_ptr<c
lass LuaObj>)" (??$resume@V?$shared_ptr@VCandidate@rime@@@std@@@Lua@@QAE?AU?$Result@V?$shared_ptr@VCandidate@rime@@@std
@@ULuaErr@@@@V?$shared_ptr@VLuaObj@@@std@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_pushnil,该符号在函数 "void __cdecl pushdataX<class std::shared_ptr<class LuaObj
>,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj> >(struct lua_State *,class std::sh
ared_ptr<class LuaObj> &,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj>)" (??$pushd
ataX@V?$shared_ptr@VLuaObj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@@YAXPAUlua_State@@AAV?$shared_ptr@VLuaObj@@@
std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_pushnil [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_pushnil [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_pushstring,该符号在函数 "void __cdecl pushdataX<class std::shared_ptr<class Lua
Obj>,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct rime::Segme
nt const &,class std::shared_ptr<class LuaObj> >(struct lua_State *,class std::shared_ptr<class LuaObj> &,class std::ba
sic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,struct rime::Segment const &,class s
td::shared_ptr<class LuaObj>)" (??$pushdataX@V?$shared_ptr@VLuaObj@@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$a
llocator@D@2@@2@ABUSegment@rime@@V12@@@YAXPAUlua_State@@AAV?$shared_ptr@VLuaObj@@@std@@ABV?$basic_string@DU?$char_trait
s@D@std@@V?$allocator@D@2@@2@ABUSegment@rime@@V12@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_pushstring [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_pushfstring,该符号在函数 "public: static int __cdecl `struct Result<class std::
shared_ptr<class rime::Candidate>,struct LuaErr> __cdecl todata_safe<class std::shared_ptr<class rime::Candidate> >(str
uct lua_State *,int)'::`2'::X::runner(struct lua_State *)" (?runner@X@?1???$todata_safe@V?$shared_ptr@VCandidate@rime@@
@std@@@@YA?AU?$Result@V?$shared_ptr@VCandidate@rime@@@std@@ULuaErr@@@@PAUlua_State@@H@Z@SAH0@Z) 中被引用 [D:\librime\build\
src\rime.vcxproj]
modules.obj : error LNK2001: 无法解析的外部符号 _lua_pushfstring [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_pushfstring [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_pushcclosure,该符号在函数 "void __cdecl pushdataX<class std::shared_ptr<class L
uaObj>,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj> >(struct lua_State *,class st
d::shared_ptr<class LuaObj> &,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj>)" (??$
pushdataX@V?$shared_ptr@VLuaObj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@@YAXPAUlua_State@@AAV?$shared_ptr@VLuaO
bj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_pushcclosure [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_pushcclosure [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_pushlightuserdata,该符号在函数 "struct Result<int,struct LuaErr> __cdecl todata
_safe<int>(struct lua_State *,int)" (??$todata_safe@H@@YA?AU?$Result@HULuaErr@@@@PAUlua_State@@H@Z) 中被引用 [D:\librime\bu
ild\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_pushlightuserdata [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_getglobal,该符号在函数 "void __cdecl rime::raw_init(struct lua_State *,struct r
ime::Ticket const &,class std::shared_ptr<class LuaObj> *,class std::shared_ptr<class LuaObj> *)" (?raw_init@rime@@YAXP
AUlua_State@@ABUTicket@1@PAV?$shared_ptr@VLuaObj@@@std@@2@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
modules.obj : error LNK2001: 无法解析的外部符号 _lua_getglobal [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_getglobal [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_getfield,该符号在函数 "void __cdecl pushdataX<class std::shared_ptr<class LuaOb
j>,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj> >(struct lua_State *,class std::s
hared_ptr<class LuaObj> &,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj>)" (??$push
dataX@V?$shared_ptr@VLuaObj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@@YAXPAUlua_State@@AAV?$shared_ptr@VLuaObj@@
@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
modules.obj : error LNK2001: 无法解析的外部符号 _lua_getfield [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_getfield [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_createtable,该符号在函数 "void __cdecl rime::raw_init(struct lua_State *,struct
rime::Ticket const &,class std::shared_ptr<class LuaObj> *,class std::shared_ptr<class LuaObj> *)" (?raw_init@rime@@YA
XPAUlua_State@@ABUTicket@1@PAV?$shared_ptr@VLuaObj@@@std@@2@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_createtable [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_createtable [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_newuserdata,该符号在函数 "public: struct Result<int,struct LuaErr> __thiscall L
ua::call<int,class std::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj> >(cla
ss std::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj>)" (??$call@HV?$shared
_ptr@VLuaObj@@@std@@ABVKeyEvent@rime@@V12@@Lua@@QAE?AU?$Result@HULuaErr@@@@V?$shared_ptr@VLuaObj@@@std@@ABVKeyEvent@rim
e@@0@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_newuserdata [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_settable,该符号在函数 "void __cdecl pushdataX<class std::shared_ptr<class LuaOb
j>,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj> >(struct lua_State *,class std::s
hared_ptr<class LuaObj> &,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj>)" (??$push
dataX@V?$shared_ptr@VLuaObj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@@YAXPAUlua_State@@AAV?$shared_ptr@VLuaObj@@
@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_settable [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_settable [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_setfield,该符号在函数 "void __cdecl rime::raw_init(struct lua_State *,struct ri
me::Ticket const &,class std::shared_ptr<class LuaObj> *,class std::shared_ptr<class LuaObj> *)" (?raw_init@rime@@YAXPA
Ulua_State@@ABUTicket@1@PAV?$shared_ptr@VLuaObj@@@std@@2@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
modules.obj : error LNK2001: 无法解析的外部符号 _lua_setfield [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_setfield [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_setmetatable,该符号在函数 "void __cdecl pushdataX<class std::shared_ptr<class L
uaObj>,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj> >(struct lua_State *,class st
d::shared_ptr<class LuaObj> &,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj>)" (??$
pushdataX@V?$shared_ptr@VLuaObj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@@YAXPAUlua_State@@AAV?$shared_ptr@VLuaO
bj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _lua_setmetatable [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_pcallk,该符号在函数 "public: struct Result<int,struct LuaErr> __thiscall Lua::c
all<int,class std::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj> >(class st
d::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj>)" (??$call@HV?$shared_ptr@
VLuaObj@@@std@@ABVKeyEvent@rime@@V12@@Lua@@QAE?AU?$Result@HULuaErr@@@@V?$shared_ptr@VLuaObj@@@std@@ABVKeyEvent@rime@@0@
Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
modules.obj : error LNK2001: 无法解析的外部符号 _lua_pcallk [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_pcallk [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_resume,该符号在函数 "public: struct Result<class std::shared_ptr<class rime::Ca
ndidate>,struct LuaErr> __thiscall Lua::resume<class std::shared_ptr<class rime::Candidate> >(class std::shared_ptr<cla
ss LuaObj>)" (??$resume@V?$shared_ptr@VCandidate@rime@@@std@@@Lua@@QAE?AU?$Result@V?$shared_ptr@VCandidate@rime@@@std@@
ULuaErr@@@@V?$shared_ptr@VLuaObj@@@std@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _luaL_argerror,该符号在函数 "public: static int __cdecl `struct Result<class std::sh
ared_ptr<class rime::Candidate>,struct LuaErr> __cdecl todata_safe<class std::shared_ptr<class rime::Candidate> >(struc
t lua_State *,int)'::`2'::X::runner(struct lua_State *)" (?runner@X@?1???$todata_safe@V?$shared_ptr@VCandidate@rime@@@s
td@@@@YA?AU?$Result@V?$shared_ptr@VCandidate@rime@@@std@@ULuaErr@@@@PAUlua_State@@H@Z@SAH0@Z) 中被引用 [D:\librime\build\sr
c\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _luaL_argerror [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _luaL_checkinteger,该符号在函数 "public: static int __cdecl `struct Result<int,struc
t LuaErr> __cdecl todata_safe<int>(struct lua_State *,int)'::`2'::X::runner(struct lua_State *)" (?runner@X@?1???$todat
a_safe@H@@YA?AU?$Result@HULuaErr@@@@PAUlua_State@@H@Z@SAH0@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _luaL_checkinteger [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _luaL_newmetatable,该符号在函数 "void __cdecl pushdataX<class std::shared_ptr<class
LuaObj>,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj> >(struct lua_State *,class s
td::shared_ptr<class LuaObj> &,class std::shared_ptr<class rime::Translation>,class std::shared_ptr<class LuaObj>)" (??
$pushdataX@V?$shared_ptr@VLuaObj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@@YAXPAUlua_State@@AAV?$shared_ptr@VLua
Obj@@@std@@V?$shared_ptr@VTranslation@rime@@@2@V12@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _luaL_newmetatable [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _luaL_newmetatable [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _luaL_setmetatable,该符号在函数 "public: struct Result<int,struct LuaErr> __thiscall
Lua::call<int,class std::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj> >(c
lass std::shared_ptr<class LuaObj>,class rime::KeyEvent const &,class std::shared_ptr<class LuaObj>)" (??$call@HV?$shar
ed_ptr@VLuaObj@@@std@@ABVKeyEvent@rime@@V12@@Lua@@QAE?AU?$Result@HULuaErr@@@@V?$shared_ptr@VLuaObj@@@std@@ABVKeyEvent@r
ime@@0@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _luaL_setmetatable [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _luaL_setmetatable [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _luaL_testudata,该符号在函数 "public: static int __cdecl `struct Result<class std::s
hared_ptr<class rime::Candidate>,struct LuaErr> __cdecl todata_safe<class std::shared_ptr<class rime::Candidate> >(stru
ct lua_State *,int)'::`2'::X::runner(struct lua_State *)" (?runner@X@?1???$todata_safe@V?$shared_ptr@VCandidate@rime@@@
std@@@@YA?AU?$Result@V?$shared_ptr@VCandidate@rime@@@std@@ULuaErr@@@@PAUlua_State@@H@Z@SAH0@Z) 中被引用 [D:\librime\build\s
rc\rime.vcxproj]
types.obj : error LNK2001: 无法解析的外部符号 _luaL_testudata [D:\librime\build\src\rime.vcxproj]
lua_gears.obj : error LNK2019: 无法解析的外部符号 _luaL_checkudata,该符号在函数 "public: static int __cdecl LuaType<class rime::Engine
*>::gc(struct lua_State *)" (?gc@?$LuaType@PAVEngine@rime@@@@SAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxp
roj]
types.obj : error LNK2001: 无法解析的外部符号 _luaL_checkudata [D:\librime\build\src\rime.vcxproj]
modules.obj : error LNK2019: 无法解析的外部符号 _lua_concat,该符号在函数 "void __cdecl lua_init(struct lua_State *)" (?lua_init@@YAXPA
Ulua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
modules.obj : error LNK2019: 无法解析的外部符号 _luaL_loadfilex,该符号在函数 "void __cdecl lua_init(struct lua_State *)" (?lua_init@@Y
AXPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _lua_gettop,该符号在函数 "int __cdecl TranslationReg::raw_make(struct lua_State *)" (?ra
w_make@TranslationReg@@YAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_gettop [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _lua_rawlen,该符号在函数 "public: static class std::vector<struct rime::Segment,class st
d::allocator<struct rime::Segment> > __cdecl LuaType<class std::vector<struct rime::Segment,class std::allocator<struct
rime::Segment> > >::todata(struct lua_State *,int)" (?todata@?$LuaType@V?$vector@USegment@rime@@V?$allocator@USegment@
rime@@@std@@@std@@@@SA?AV?$vector@USegment@rime@@V?$allocator@USegment@rime@@@std@@@std@@PAUlua_State@@H@Z) 中被引用 [D:\li
brime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_rawlen [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _lua_pushnumber,该符号在函数 "public: static int __cdecl LuaWrapper<class boost::optiona
l<double> (__cdecl*)(class rime::Config &,class std::basic_string<char,struct std::char_traits<char>,class std::allocat
or<char> > const &),&class boost::optional<double> __cdecl ConfigReg::get_double(class rime::Config &,class std::basic_
string<char,struct std::char_traits<char>,class std::allocator<char> > const &)>::wrap(struct lua_State *)" (?wrap@?$Lu
aWrapper@P6A?AV?$optional@N@boost@@AAVConfig@rime@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$1
?get_double@ConfigReg@@YA?AV12@01@Z@@SAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _lua_pushinteger,该符号在函数 "public: static int __cdecl LuaWrapper<unsigned int (__cde
cl*)(class rime::Context const &),&public: static unsigned int __cdecl MemberWrapper<unsigned int (__thiscall rime::Con
text::*)(void)const ,&public: unsigned int __thiscall rime::Context::caret_pos(void)const >::wrap(class rime::Context c
onst &)>::wrap(struct lua_State *)" (?wrap@?$LuaWrapper@P6AIABVContext@rime@@@Z$1?wrap@?$MemberWrapper@P8Context@rime@@
BEIXZ$1?caret_pos@12@QBEIXZ@@SAI0@Z@@SAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _lua_pushboolean,该符号在函数 "public: static int __cdecl LuaWrapper<bool (__cdecl*)(cla
ss rime::Context &),&public: static bool __cdecl MemberWrapper<bool (__thiscall rime::Context::*)(void),&public: bool _
_thiscall rime::Context::Commit(void)>::wrap(class rime::Context &)>::wrap(struct lua_State *)" (?wrap@?$LuaWrapper@P6A
_NAAVContext@rime@@@Z$1?wrap@?$MemberWrapper@P8Context@rime@@AE_NXZ$1?Commit@12@QAE_NXZ@@SA_N0@Z@@SAHPAUlua_State@@@Z)
中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_pushboolean [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _lua_rawgeti,该符号在函数 "public: static class std::vector<struct rime::Segment,class s
td::allocator<struct rime::Segment> > __cdecl LuaType<class std::vector<struct rime::Segment,class std::allocator<struc
t rime::Segment> > >::todata(struct lua_State *,int)" (?todata@?$LuaType@V?$vector@USegment@rime@@V?$allocator@USegment
@rime@@@std@@@std@@@@SA?AV?$vector@USegment@rime@@V?$allocator@USegment@rime@@@std@@@std@@PAUlua_State@@H@Z) 中被引用 [D:\l
ibrime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_rawgeti [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _lua_rawset,该符号在函数 "public: static int __cdecl LuaWrapper<class std::set<class std
::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string
<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class std::basic_string<char,st
ruct std::char_traits<char>,class std::allocator<char> > > > (__cdecl*)(struct rime::Segment const &),&public: static c
lass std::set<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class st
d::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > __cdecl MemberWrapper<class std::se
t<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::b
asic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class std::basic_str
ing<char,struct std::char_traits<char>,class std::allocator<char> > > > rime::Segment::*,16>::wrap_get(struct rime::Seg
ment const &)>::wrap(struct lua_State *)" (?wrap@?$LuaWrapper@P6A?AV?$set@V?$basic_string@DU?$char_traits@D@std@@V?$all
ocator@D@2@@std@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@V?$basic_string@
DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@ABUSegment@rime@@@Z$1?wrap_get@?$MemberWrapper@PQSegment@rime@@V
?$set@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$a
llocator@D@2@@std@@@2@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@$0BA@@@SA?AV1
2@0@Z@@SAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_rawset [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _lua_rawseti,该符号在函数 "public: static int __cdecl LuaWrapper<class std::vector<class
std::shared_ptr<class rime::Candidate>,class std::allocator<class std::shared_ptr<class rime::Candidate> > > (__cdecl*
)(class std::shared_ptr<class rime::Candidate> const &),&public: static class std::vector<class std::shared_ptr<class r
ime::Candidate>,class std::allocator<class std::shared_ptr<class rime::Candidate> > > __cdecl rime::Candidate::GetGenui
neCandidates(class std::shared_ptr<class rime::Candidate> const &)>::args<class std::vector<class std::shared_ptr<class
rime::Candidate>,class std::allocator<class std::shared_ptr<class rime::Candidate> > >,class std::shared_ptr<class rim
e::Candidate> const &>::aux<>::wrap<1>(struct lua_State *)" (??$wrap@$00@?$aux@$$V@?$args@V?$vector@V?$shared_ptr@VCand
idate@rime@@@std@@V?$allocator@V?$shared_ptr@VCandidate@rime@@@std@@@2@@std@@ABV?$shared_ptr@VCandidate@rime@@@2@@?$Lua
Wrapper@P6A?AV?$vector@V?$shared_ptr@VCandidate@rime@@@std@@V?$allocator@V?$shared_ptr@VCandidate@rime@@@std@@@2@@std@@
ABV?$shared_ptr@VCandidate@rime@@@2@@Z$1?GetGenuineCandidates@Candidate@rime@@SA?AV12@0@Z@@SAHPAUlua_State@@@Z) 中被引用 [D
:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _lua_next,该符号在函数 "public: static class std::set<class std::basic_string<char,struc
t std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_tr
aits<char>,class std::allocator<char> > >,class std::allocator<class std::basic_string<char,struct std::char_traits<cha
r>,class std::allocator<char> > > > __cdecl LuaType<class std::set<class std::basic_string<char,struct std::char_traits
<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class s
td::allocator<char> > >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allo
cator<char> > > > >::todata(struct lua_State *,int)" (?todata@?$LuaType@V?$set@V?$basic_string@DU?$char_traits@D@std@@V
?$allocator@D@2@@std@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@V?$basic_st
ring@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@@SA?AV?$set@V?$basic_string@DU?$char_traits@D@std@@V?$allo
cator@D@2@@std@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@V?$basic_string@D
U?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@PAUlua_State@@H@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2001: 无法解析的外部符号 _lua_next [D:\librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _luaL_checklstring,该符号在函数 "public: static int __cdecl LuaWrapper<bool (__cdecl*)(c
lass rime::Context &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &),&
bool __cdecl ContextReg::push_input(class rime::Context &,class std::basic_string<char,struct std::char_traits<char>,cl
ass std::allocator<char> > const &)>::wrap(struct lua_State *)" (?wrap@?$LuaWrapper@P6A_NAAVContext@rime@@ABV?$basic_st
ring@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$1?push_input@ContextReg@@YA_N01@Z@@SAHPAUlua_State@@@Z) 中被引用 [D:\
librime\build\src\rime.vcxproj]
types.obj : error LNK2019: 无法解析的外部符号 _luaL_checknumber,该符号在函数 "public: static int __cdecl LuaWrapper<bool (__cdecl*)(cl
ass rime::Config &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,doub
le),&public: static bool __cdecl MemberWrapper<bool (__thiscall rime::Config::*)(class std::basic_string<char,struct st
d::char_traits<char>,class std::allocator<char> > const &,double),{public: bool __thiscall rime::Config::SetDouble(clas
s std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,double),0}>::wrap(class rim
e::Config &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,double)>::w
rap(struct lua_State *)" (?wrap@?$LuaWrapper@P6A_NAAVConfig@rime@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator
@D@2@@std@@N@Z$1?wrap@?$MemberWrapper@P8Config@rime@@AE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std
@@N@Z$H?SetDouble@12@QAE_N0N@ZA@@@SA_N01N@Z@@SAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _lua_close,该符号在函数 "public: __thiscall Lua::~Lua(void)" (??1Lua@@QAE@XZ) 中被引用 [D:\lib
rime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _lua_newthread,该符号在函数 "public: class std::shared_ptr<class LuaObj> __thiscall Lua::n
ewthreadx(struct lua_State *,int)" (?newthreadx@Lua@@QAE?AV?$shared_ptr@VLuaObj@@@std@@PAUlua_State@@H@Z) 中被引用 [D:\libr
ime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _lua_xmove,该符号在函数 "public: class std::shared_ptr<class LuaObj> __thiscall Lua::newth
readx(struct lua_State *,int)" (?newthreadx@Lua@@QAE?AV?$shared_ptr@VLuaObj@@@std@@PAUlua_State@@H@Z) 中被引用 [D:\librime\
build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _lua_tocfunction,该符号在函数 "int __cdecl LuaImpl::index(struct lua_State *)" (?index@Lua
Impl@@YAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _lua_gettable,该符号在函数 "public: static class Lua * __cdecl Lua::from_state(struct lua_
State *)" (?from_state@Lua@@SAPAV1@PAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _lua_rawget,该符号在函数 "int __cdecl LuaImpl::index(struct lua_State *)" (?index@LuaImpl@
@YAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _lua_setglobal,该符号在函数 "void __cdecl LuaImpl::export_set(struct lua_State *)" (?expor
t_set@LuaImpl@@YAXPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _lua_callk,该符号在函数 "public: __thiscall Lua::Lua(void)" (??0Lua@@QAE@XZ) 中被引用 [D:\libr
ime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _lua_yieldk,该符号在函数 "int __cdecl LuaImpl::yield(struct lua_State *)" (?yield@LuaImpl@
@YAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _luaL_openlibs,该符号在函数 "int __cdecl LuaImpl::pmain(struct lua_State *)" (?pmain@LuaIm
pl@@YAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _luaL_getmetafield,该符号在函数 "int __cdecl LuaImpl::index(struct lua_State *)" (?index@L
uaImpl@@YAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _luaL_ref,该符号在函数 "private: __thiscall LuaObj::LuaObj(struct lua_State *,int)" (??0Lu
aObj@@AAE@PAUlua_State@@H@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _luaL_unref,该符号在函数 "public: __thiscall LuaObj::~LuaObj(void)" (??1LuaObj@@QAE@XZ) 中被
引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _luaL_loadstring,该符号在函数 "int __cdecl LuaImpl::pmain(struct lua_State *)" (?pmain@Lua
Impl@@YAHPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _luaL_newstate,该符号在函数 "public: __thiscall Lua::Lua(void)" (??0Lua@@QAE@XZ) 中被引用 [D:\
librime\build\src\rime.vcxproj]
lua.obj : error LNK2019: 无法解析的外部符号 _luaL_setfuncs,该符号在函数 "void __cdecl LuaImpl::export_set(struct lua_State *)" (?expor
t_set@LuaImpl@@YAXPAUlua_State@@@Z) 中被引用 [D:\librime\build\src\rime.vcxproj]
D:\librime\build\lib\Release\rime.dll : fatal error LNK1120: 57 个无法解析的外部命令 [D:\librime\build\src\rime.vcxproj]
error building la rime.
例如像 sample/charset.lua 中的 charset_comment_filter,能放入 switches 切换,选择要不要显示字符集吗?如果可以的话,应该怎么写?
switches:
- name: ascii_mode
reset: 0
states: [ 中文, 西文 ]
用lua脚本写filter实现在输入英文单词时自动添加空格,但是标点符号也添加空格了。我想让在输入标点符号时,前移一个字符再进行输入。
➜ librime-master make merged-plugins
cmake . -Bbuild \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_MERGED_PLUGINS=ON
CMake Error at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
Could NOT find Boost (missing: Boost_INCLUDE_DIR filesystem regex system)
(Required is at least version "1.46.0")
Call Stack (most recent call first):
/usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.17/Modules/FindBoost.cmake:2162 (find_package_handle_standard_args)
CMakeLists.txt:69 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/baloneo/Downloads/librime-master/build/CMakeFiles/CMakeOutput.log".
make: *** [Makefile:51:merged-plugins] 错误 1
依赖问题
看不懂啊。可以直白一些吗?例如一步一步的操作说明书?😅
history
翻译器的候选好像没有什么特征,在和其他候选混在一起的时候,无法完全可靠地区分两者。顺便提一下,虽然和 lua 无关,history
的配置项也很少,比如没有 comment_format
,还有退格和回车会清空历史这样的限制,各种不便。更一般性地,rime 没有让翻译器给候选打标记的机制,有些需求解决起来就比较绕。
/*
** @maomao
** thousand add comma.
*/
function formatnumberthousands(sum)
local function checknumber(value)
return tonumber(value) or 0
end
local sum = checknumber(sum)
local newNum = ""
repeat
print("value of sum:", sum)
if sum <= 1000 then
newNum = sum .. newNum
return newNum
end
newNum = "," .. sum % 1000 ..newNum
sum = math.floor((sum - sum % 1000)/1000) --为了得到的是整数没有.0
until(false)
end
版权声明:本文为CSDN博主「@maomao」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_38138390/article/details/83834309
請問這個模組有辦法放到rime-lua,變成輸入\\+數字
,然後自動在千位數的地方增加逗號,如輸入\\150000
輸出變成150,000
這樣,跪求一個修改的方向,不然完全不知道怎麼下手,感激不盡……
7.3.5.4 成文日期中的数字
用阿拉伯数字将年、月、日标全,年份应标全称,月、日不编虚位(即1不编为01)。
另外,党、政的公文日期格式是不同的,党口的公文是小写阿拉伯如2020年2月14日,政口的是大写二〇二〇这样的
即需要1、小写不编虚位;2、增加大写
另外:
week
也加入示例吧如題
參照 reverse.lua 己完成 熱鍵切換 反查碼 ,但是得在下次變更 input 才會變更
有沒有辦法 熱鍵 時 重新刷新 filter
試了一個辦法是可行的 在 出現候選字時 按左鍵 就可以刷新
只要在 processor 內 ctrl +t 時 is_composing() 狀態下 send 左鍵 右鍵
這樣可以實現嗎 謝謝
control+t 只是 count 內變數 +1 % reverseDBs (0 1 2 3 4 5 0 1 2 3 4 5 )
reverse_lookup_filetr
init : 將 需要的 reverseDB 及 反查字根 func 插入 env.revdb (array)
---- schema
engine/processors/lua_processor@reverse_switch
engine/filter/lua_filter@reverse_lookup_filter
------ rime.lua
local rever_lookup_tab= require("reverse_switch")("Control+t", "whaleliu.extended", "luna_pinyin" , "cangjie5liu.extended","newcjliu.extended", "cangjie6liu.extended")
reverse_lookup_filter = rever_lookup_tab.reverse
reverse_switch = rever_lookup_tab.processor
我按说明,在 *.schema.yaml 文件里改,
已经弄好了,可以了。
就是想再问一个,如果不想在 *.schema.yaml 文件里改,想在 *.custom.yaml 文件改,应该怎样操作。
因为 在 *.custom.yaml 文件改,成功的话,同类型的输入法,需要相同的设置,可以直接把文件复制一下,改成另一个输入法的名字,就可以用了。而在 在 *.schema.yaml 文件里改 ,每个输入法得单独弄一下。
在网上搜到的方法,只能设置一条选项。
比如,在 *.custom.yaml 文件里这样写:
patch:
engine/translators/@next: lua_translator@date_translator
这样就一条的话,可以。
但是如果这种写法,多于一条,前面的就无效了,
patch:
engine/translators/@next: lua_translator@date_translator
engine/translators/@next: lua_translator@time_translator
像上面写了两条,就最后一条才有效。
不怎么懂,还是在网上搜来的方法,只能单独使用其中的一条设置。
所以来问一下,如果在 *.custom.yaml 文件里 打补丁,需要设置这样内容不只一条,应该怎样操作?
大家好,我想要試著使用這個套件來實現自動填寫當下日期,但是我跟著教學一步一步做還是沒辦法……,下面是我實作的步驟:
rime.lua
的文件(UTF-8,不帶簽名格式),並且複製程式碼function date_translator(input, seg)
if (input == "date") then
--- Candidate(type, start, end, text, comment)
yield(Candidate("date", seg.start, seg._end, os.date("%Y年%m月%d日"), " 日期"))
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
luna_pinyin_tw.custom.yaml
內放入functions
patch:
"recognizer/patterns/punct": "^/([A-Z|a-z]*|[0-9]|10)$"
ascii_composer:
switch_key:
Shift_L: noop
Shift_R: noop
punctuator:
import_preset: symbols
full_shape:
"`": "……"
half_shape:
"`": "……"
"#": "#"
"@": "@"
"$": "$"
"%": "%"
"*": "*"
"~": "~"
"(": "("
")": ")"
"_": "_"
"/": ["、"]
symbols:
"/dh": ["≒","≧","≦","■","□","±","÷","×","☑"]
translator:
dictionary: luna_pinyin_tw.extended
engine:
translators:
- lua_translator@date_translator
- lua_translator@other_lua_function1
filters:
- lua_filter@single_char_first_filter
- lua_filter@other_lua_function2
做完之後輸入date還是反應@@,請問還缺什麼步驟嗎?小狼毫的版本是0.14.2。
如题,请问怎么修改,可以手动修改lua脚本产生的候选词位置
从releases下载了插件,无论是readme.md还是下载的压缩包中,都没有描述,如何在Windows上安装这个插件。
后知后觉地替换了rime.dll文件。
如题。
修改 cand.comment 的方法
cand:get_genuine().comment = foo
用在 cand.text 上不正常,只有标点符号起作用了。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.