rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器

本文主要是介绍rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在 rime中州韵小狼毫 help lua Translator 中我们分享了如何使用 lua 脚本定义一个 translator,并以 五笔・拼音 为例引用了该 translator,并且达到了预期的效果。

今天,我们继续通过 lua 脚本为 rime中州韵/小狼毫 输入法打造一个 translator,这个translator 的作用是将用户输入的原始字符,根据我们的需要,透传到候选项中,以便为将来的 filter 处理程序提供必要的输入。

inputShow.lua

我们在 inputShow.lua 文档内定义我们的 translator 逻辑,translator 逻辑定义如下👇:

--对于指定的输入符号,需要直接提供对应转换值的输入选项,供后处理使用
local cands={}
--以下单字母需要输出
cands['a']='a'
cands['b']='b'
cands['c']='c'
cands['d']='d'
cands['e']='e'
cands['f']='f'
cands['g']='g'
cands['h']='h'
cands['i']='i'
cands['j']='j'
cands['k']='k'
cands['l']='l'
cands['m']='m'
cands['n']='n'
cands['o']='o'
cands['p']='p'
cands['q']='q'
cands['r']='r'
cands['s']='s'
cands['t']='t'
cands['u']='u'
cands['v']='v'
cands['w']='w'
cands['x']='x'
cands['y']='y'
cands['z']='z'--以下是常用简写的输出
cands['id']='id'
cands['ip']='ip'--以下是化学元素简写,需要输出
cands['he']='He'
cands['li']='Li'
cands['be']='Be'
cands['ne']='Ne'
cands['na']='Na'
cands['mg']='Mg'
cands['al']='Al'
cands['si']='Si'
cands['cl']='Cl'
cands['ar']='Ar'
cands['ca']='Ca'
cands['sc']='Sc'
cands['ti']='Ti'
cands['cr']='Cr'
cands['mn']='Mn'
cands['fe']='Fe'
cands['co']='Co'
cands['ni']='Ni'
cands['cu']='Cu'
cands['zn']='Zn'
cands['ga']='Ga'
cands['ge']='Ge'
cands['as']='As'
cands['se']='Se'
cands['br']='Br'
cands['kr']='Kr'
cands['rb']='Rb'
cands['sr']='Sr'
cands['zr']='Zr'
cands['nb']='Nb'
cands['mo']='Mo'
cands['tc']='Tc'
cands['ru']='Ru'
cands['rh']='Rh'
cands['pd']='Pd'
cands['ag']='Ag'
cands['cd']='Cd'
cands['in']='In'
cands['sn']='Sn'
cands['sb']='Sb'
cands['te']='Te'
cands['xe']='Xe'
cands['cs']='Cs'
cands['ba']='Ba'
cands['la']='La'
cands['ce']='Ce'
cands['pr']='Pr'
cands['nd']='Nd'
cands['pm']='Pm'
cands['sm']='Sm'
cands['eu']='Eu'
cands['gd']='Gd'
cands['tb']='Tb'
cands['dy']='Dy'
cands['ho']='Ho'
cands['er']='Er'
cands['tm']='Tm'
cands['yb']='Yb'
cands['lu']='Lu'
cands['hf']='Hf'
cands['ta']='Ta'
cands['re']='Re'
cands['os']='Os'
cands['ir']='Ir'
cands['pt']='Pt'
cands['au']='Au'
cands['hg']='Hg'
cands['tl']='Tl'
cands['pb']='Pb'
cands['bi']='Bi'
cands['po']='Po'
cands['at']='At'
cands['rn']='Rn'
cands['fr']='Fr'
cands['ra']='Ra'
cands['ac']='Ac'
cands['th']='Th'
cands['pa']='Pa'
cands['np']='Np'
cands['pu']='Pu'
cands['am']='Am'
cands['cm']='Cm'
cands['bk']='Bk'
cands['cf']='Cf'
cands['es']='Es'
cands['fm']='Fm'
cands['md']='Md'
cands['no']='No'
cands['lr']='Lr'
cands['rf']='Rf'
cands['db']='Db'
cands['sg']='Sg'
cands['bh']='Bh'
cands['hs']='Hs'
cands['mt']='Mt'
cands['ds']='Ds'
cands['rg']='Rg'
cands['cn']='Cn'
cands['nh']='Nh'
cands['fl']='Fl'
cands['mc']='Mc'
cands['lv']='Lv'
cands['ts']='Ts'
cands['og']='Og'function translator(input, seg)--抛出一个选项,用于告诉下游输入的内容是什么,为了避免和正式输入内容混淆,加入一个 Str的前缀yield(Candidate("inputShow", seg.start, seg._end, 'Str'..input, "inputShowStr"))if nil~=cands[input] thenif ''==cands[input] thenyield(Candidate("inputShow", seg.start, seg._end, input, "inputShow"))elseyield(Candidate("inputShow", seg.start, seg._end, cands[input], "inputShow"))endend
endreturn translator

👆以上所展示的 lua 脚本中,定义了一组 cands 字符。当用户的输入与 cands 字符匹配时,则将这组输入的字符做为词组候选项抛出,效果如下👇:
20240102133208
👆如上图所示的效果,在我们的 inputShow.lua 脚本中, 我们会将用户的原始输入加 Str 前缀后抛出;如果所输入的字符存在于 cands 列表内,则抛出列表内的对应的值;同时,抛出的选项中,还加入了 inputShowStr 或者 inputShowcomment 内容以做标记。

👇如下,inputShow.lua 文档应该位于 用户文件夹 下的 lua 文件夹内:
20240102131351

rime.lua

如果你对 rime中州韵小狼毫 help lua Translator 还有印象,那么你应该已经猜到,我们在 inputShow.lua 中所定义的 translator 方法,需要在 用户文件夹 下的 rime.lua 内转换成 translator 接口,方可被 rime中州韵小狼毫输入引擎所引用。我们在 rime.lua 中配置以下👇内容以转换 inputShow_translator

help_translator = require("help")
inputShow_translator = require("inputShow")

如果你的 用户文件夹 下没有 rime.lua 文档,你需要创建它,然后对其进行配置:

touch rime.lua

wubi_pinyin.custom.yaml

经过以上步骤,我们已经完成了对 inputShow_translator 的定义,根据我们的需要,我们在我们的输入方案的补丁文档中的 translators 节点下引用 inputShow_translator即可。

本文依旧以 五笔・拼音 输入方案为例演示 inputShow_translator 的配置方式。我们需要在 五笔・拼音 输入方案的方案文档 wubi_pinyin.schema.yaml 的补丁文档 wubi_pinyin.custom.yaml 中做如下👇配置:

# encoding:utf-8
patch:engine/translators/+:  #增加以下translator- lua_translator@inputShow_translator- table_translator@custom_phrase  # 指定使用 custom_phrase 进行输入字符的翻译- lua_translator@help_translatorcustom_phrase:  # 设置用户字/词典dictionary: ""user_dict: Custom_phrase  # 指向 Custom_phrase.txt 文档db_class: stabledbenable_completion: falseenable_sentence: trueinitial_quality: 1punctuator:  # 设置标点符号集import_preset: symbols# 设置以下 translator 相关的开关translator/enable_sentence: true          #是否整句连打translator/enable_user_dict: true         #开启用户词典translator/enable_encoder: true           #是否自动造词translator/encode_commit_history: false 	#对已上屏的内容整合成词条,看需求translator/max_phrase_length: 4          	#自动造词的最长字数translator/enable_completion: true  		#编码逐渐提示开关;编码提示

最后,当你完成以上所有的文档和配置后,你需要 重新部署 你的 rime中州韵小狼毫输入法,方可使以上所做的配置生效。

inputShow.lua 文档

👆上述 inputShow.lua 文档,你也可以通过 inputShow.lua 下载取用。

rime.lua 文档

👆上述 rime.lua 文档,你也可以通过 rime.lua 下载取用。

wubi_pinyin.custom.yaml 文档

👆上述 wubi_pinyin.custom.yaml 文档,你也可以通过 wubi_pinyin.custom.yaml 下载取用。

小结

以上就是今天分享的如何在 rime中州韵小狼毫输入法中配置 inputShow_translator 的过程。今天所做的配置本身没有十分惊艳的效果,但这却是将来其它增强功能的基础。希望可以帮助到大家。

这篇关于rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/566041

相关文章

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

由Lua 粘合的Nginx生态环境

转自:http://blog-zq-org.qiniucdn.com/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html -- agentzh tech-club.org 演讲听录 免责聲明 Lua 粘合的 Nginx 生态环境 2.1. openresty 2.2. 配置小语言 2.3. ngx_drizzle 2.4.

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

当你输入一个网址后都发生什么

原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/  作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。 本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

如何将一个文件里不包含某个字符的行输出到另一个文件?

第一种: grep -v 'string' filename > newfilenamegrep -v 'string' filename >> newfilename 第二种: sed -n '/string/!'p filename > newfilenamesed -n '/string/!'p filename >> newfilename

Debugging Lua Project created in Cocos Code IDE creates “Waiting for debugger to connect” in Win-7

转自 I Installed Cocos Code IDE and created a new Lua Project. When Debugging the Project(F11) the game window pops up and gives me the message waiting for debugger to connect and then freezes. Also a