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

能否为特定前缀的输入码在候选项两端加上特定符号

Open Ding-Vic opened this issue 1 year ago • 7 comments

比如输入ofkhceshi,识别到以ofkh开头,则后面的ceshi正常生成测试,侧室,侧视等候选项并在两端加上书名号[[测试]],[[侧室]],[[侧视]]等候选项,请问下各位大佬,这个需求能用Lua实现吗?如果能的话大概思路是怎么样的呢?

Ding-Vic avatar Dec 23 '24 06:12 Ding-Vic

这已经是很简单的需求了,只需要把你描述的内容转成代码就可以了,如果帮忙,我认为只能给答案了,找AI的话,应该直接能帮你写出来

MokOopsing avatar Dec 23 '24 09:12 MokOopsing

打 tag ([a-z]+)['")]$ 可以參照 recognizer affix_segmentor 做個 lua_segmentor@*pair lua_filter@*pair

shewer avatar Dec 23 '24 16:12 shewer

这已经是很简单的需求了,只需要把你描述的内容转成代码就可以了,如果帮忙,我认为只能给答案了,找AI的话,应该直接能帮你写出来

感谢回复!代码小白思考了很久不得要领只能请教各位大佬了

Ding-Vic avatar Dec 23 '24 18:12 Ding-Vic

打 tag

([a-z]+)['")]$

可以參照 recognizer affix_segmentor

做個 lua_segmentor@*pair lua_filter@*pair

谢谢大佬回复!大佬你说的这个我去研究下,使用rime很久了都没研究那么深,我去看看相关概念先

Ding-Vic avatar Dec 23 '24 18:12 Ding-Vic

这已经是很简单的需求了,只需要把你描述的内容转成代码就可以了,如果帮忙,我认为只能给答案了,找AI的话,应该直接能帮你写出来

看了一整天,不知道怎么下手😢大佬如果这个脚本写起来比较简单的话就麻烦了,太难写或者太费时间就先不理了

Ding-Vic avatar Dec 24 '24 13:12 Ding-Vic

@Ding-Vic [差不多是这样] image

local logger = require("./cold_word_drop/logger")
--logger.writeLog("这是一个测试日志")

local function filter(translation, env)
    local code = env.engine.context.input -- 当前编码
    for cand in translation:iter() do
        local new_text = '[' .. cand.text .. ']'
        yield(Candidate(cand.type, 0, cand._end, new_text, ''))
    end
end

return filter

我这里只实现了 lua_filter, 没做 [ofkh] 的识别,可能需要参考

打 tag ([a-z]+)['")]$ 可以參照 recognizer affix_segmentor 做個 lua_segmentor@*pair lua_filter@*pair

你可以看看这里的资料 https://github.com/hchunhui/librime-lua/wiki/API https://github.com/hchunhui/librime-lua/wiki/Objects

maplelost avatar Jan 09 '25 09:01 maplelost

@maplelost 感谢感谢!我研究研究

Ding-Vic avatar Jan 24 '25 01:01 Ding-Vic