librime-lua icon indicating copy to clipboard operation
librime-lua copied to clipboard

小狼毫扩展,lua不能用loadstring函数么?

Open lqqgis opened this issue 5 years ago • 5 comments

想实现计算功能,即 输入 /123+123,候选项为 246 ,想用loadstring执行字符串函数,但是没有效果,难道小狼毫中使用lua不支持loadstring函数?

local function translator(input, seg, env)
  if string.sub(input, 1, 1) == "/" then
    local param = string.sub(input, 2)
    local result = loadstring("return " .. param)() # 加了此函数,后面不会运行
    yield(Candidate("string", seg.start, seg._end, param, "calculate"))
  end
end 

lqqgis avatar Oct 17 '20 14:10 lqqgis

取决于链接的lua版本,最新默认值是lua 5.4。lua 5.2以后是load()

hchunhui avatar Oct 18 '20 00:10 hchunhui

之前也在納悶 怎沒有 loadstring() 上次 debug 只能查表 無法call function 終於可以再進行了 。

shewer avatar Oct 18 '20 13:10 shewer

哈哈,果然是load(),十分感谢

lqqgis avatar Oct 19 '20 13:10 lqqgis

@lqqgis 如何做到输入 /123+123, 当我输入数字的时候就自动上屏了,根本执行不到这个 translator

MwumLi avatar Feb 22 '24 04:02 MwumLi

要設定 recognizer/pattern “/[\d+-/]+" +-/ 可能要加上 \

shewer avatar Feb 22 '24 04:02 shewer