feat: cC键计算器 (#904)

* feat(lua): calculator

* fix(calc_translator): 修复若干逻辑错误和添加部分功能

- 修复了函数(英文)未输入完整时造成的 result 为 nil 的错误
- 修复了未写参数时,result 类型错误
- 修复了算式(express)为空时(以及用户错误设置了正则表达式时),意外进入生成候选的逻辑
- 添加:随机数函数添加 random 表达
- 添加:候选默认隐藏插件前缀(via cand.prefix),设置 calculator/show_prefix 可以显示
- 功能:该插件所有候选置顶(via cand.quality)
- 功能:从 calculator/prefix 设定项获取前缀,而非自动获取,默认 `cC`

* style(calc_translator.lua):format style, rename calc_translator

---------

Co-authored-by: mirtlecn <mirtle.cn+github@outlook.com>
This commit is contained in:
ChaosAlphard
2024-11-27 14:06:48 +08:00
committed by GitHub
parent a37e5d08a1
commit a79d76ecf3
10 changed files with 245 additions and 14 deletions

View File

@@ -79,6 +79,7 @@ engine:
- table_translator@radical_lookup # 部件拆字反查
- lua_translator@unicode # Unicode
- lua_translator@number_translator # 数字、金额大写
- lua_translator@calc_translator # 计算器
- lua_translator@force_gc # 暴力 GC
filters:
- lua_filter@corrector # 错音错字提示
@@ -289,12 +290,13 @@ radical_reverse_lookup:
# 处理符合特定规则的输入码,如网址、反查
recognizer:
import_preset: default # 从 default.yaml 继承通用的
patterns: # 再增加方案专有的:
import_preset: default # 从 default.yaml 继承通用的
patterns: # 再增加方案专有的:
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
radical_lookup: "^uU[a-z;]+$" # 响应部件拆字的反查,与 radical_lookup/prefix 匹配
unicode: "^U[a-f0-9]+" # 脚本将自动获取第 2 个字符 U 作为触发前缀,响应 lua_translator@unicode输出 Unicode 字符
number: "^R[0-9]+[.]?[0-9]*" # 脚本将自动获取第 2 个字符 R 作为触发前缀,响应 lua_translator@number_translator数字金额大写
calculator: "^cC.+" # 响应 lua_translator@calc_translator计算器。前缀设定项 calculator/prefix
gregorian_to_lunar: "^N[0-9]{1,8}" # 脚本将自动获取第 2 个字符 N 作为触发前缀,响应 lua_translator@lunar公历转农历输入 N20240115 得到「二〇二三年腊月初五」