# Rime schema settings
# encoding: utf-8

schema:
  schema_id: smzm
  name: 三码郑码
  version: "V20220210"
  author:
    - 郑易里、郑珑<svc@zmsjit.com>
    - 史岳（至至）<65003074@qq.com>
  description: |
    *重码率低，编码确定性高，为盲打而生。重码率仅0.16%（单字版本为0.16%，整句版本为0.07%）。可轻松实现不看键盘、不看屏幕、不看候选框的真正盲打！
    *高效率、字均按键少。综合码长2.35（平均2.35键一字），纯单字效率即可达到传统形码词组输入的效率水平。按每秒击键7次计算，可以轻松实现170字/分钟的水平。效率可轻松达到拼音输入法两至三倍！
    *极其规律易学难忘的字根体系。输入法基于汉字形码理论体系的奠基人郑易里教授的科学字根体系。该体系汉字拆分直观符直觉，规律性极强，完全理解记忆不死记硬背，绝对无需记忆字根口诀！
    *纯单字输入，无需人工分词。无需像传统形码输入法一样人工分词输入词组，输入体验舒适度极佳，类似拼音整句，却无需选重！
    *易于精通。全部简码仅约300字，数量不到传统形码的二分之一，且完全无需对词组作任何特殊训练。这使得该输入法从入门到精通（140字/分）的总时间远短于，总成本远低于传统形码。
    *高度符合人机工程学的键位设计。左右手负荷均衡，两手顺序交替频率高相同手指连击频率低，食中无名小指使用率依次降低，任一手指负荷适当。卓越的人机工程学设计有效保证了高速输入的持久性。
    *规范。在基本字根选用、字根笔画分类、笔形分区、取码笔顺及根顺等主要方面符合国家语言文字规范，与汉语语文识字教学背景一致。
    *均衡。达到了效率、易学性、速学性、舒适度的极佳均衡。
    *敲“`”键（数字排数字键1左边的按键）进入拼音反查
  dependencies:
    - pinyin_simp

switches:
  - name: ascii_mode
    reset: 0
    states: [ 中文, 西文 ]
  - name: full_shape
    states: [ 半角, 全角 ]
  - name: ascii_punct
    states: [ ，。, ，． ]
  - name: gb2312
    states: [不滤生僻字, 过滤生僻字]
    reset: 0
  - name: simplification
    states: [繁体字, 简体字]
    reset: 0
  - name: pinyin_tip
    states: ["拼", "pin"]
    reset: 0
  - name: chaifen
    states: ["拆", "扌斥"]
    reset: 0


engine:
  processors:
    - ascii_composer
    - recognizer
    - key_binder
    - speller
    - punctuator
    - selector
    - navigator
    - express_editor

  segmentors:
    - ascii_segmentor
    - matcher
    - abc_segmentor
    - punct_segmentor
    - fallback_segmentor
  translators:
    - punct_translator  #英文标点符号转换成中文标点
    - table_translator
    - reverse_lookup_translator
  filters:
    - simplifier
    - charset_filter@gb2312
    - simplifier@pinyin_tip
    - reverse_lookup_filter@smzm_lookup
    - simplifier@chaifen
    - uniquifier


speller:
  algebra:
    - 'derive/_$//'
    - 'derive/;$//'

  alphabet: zyxwvutsrqponmlkjihgfedcba;_/.
  initials: zyxwvutsrqponmlkjihgfedcba;/
  # use_space: true
  # delimiter: ' '
  #max_code_length: 6  #形碼最大碼長，超過則頂字上屛
  auto_select: true #无重码自动上屏
  #auto_clear: 6

translator:
  dictionary: &dict smzm
  enable_charset_filter: false #关闭字符集过滤
  enable_sentence: false #打开关闭自动造句。关闭码表输入法连打，屏蔽形码中带有太极图章「☯」的连打词句选项
  enable_encoder: false  #关闭自动造词
  encode_commit_history: false #不对已上屏词自动成词
  #max_phrase_length: 1
  enable_user_dict: false
  enable_completion: true #打开关闭逐键提示
  comment_format:
    - 'xform/([_;])\1/$1/'

gb2312:
  option_name: gb2312
  charset: gb2312

pinyin_tip:
  opencc_config: smzm_py.json
  option_name: pinyin_tip
  show_in_comment: true
  comment_format:
    - "xform@_@/@"
  tags: [abc]
  tips: all

chaifen:
  opencc_config: smzm_cf.json
  option_name: chaifen
  show_in_comment: true
  comment_format:
    - "xform@_@ @"
  tags:
    - abc
    - reverse_lookup
  tips: char

reverse_lookup:
  dictionary: pinyin_simp
  prefix: "`"
  tips: 〔拼音反查〕
  closing_tips: 〔三码郑码〕
  preedit_format:
    - xform/([nl])v/$1ü/
    - xform/([nl])ue/$1üe/
    - xform/([jqxy])v/$1u/

smzm_lookup:
  tags:
    - abc
    - pinyin
  dictionary: *dict

simplifier:
  opencc_config: s2t.json
  option_name: simplification

punctuator:
  import_preset: default
  half_shape:
    '_': ''


key_binder:
  import_preset: default
  bindings:
    - { when: has_menu, accept: apostrophe, send: 2 }
    #- { when: has_menu, accept: semicolon,  send: 2 }
    - { when: has_menu, accept: Tab, send: 3 }
    - { when: has_menu, accept: Shift+Shift_R, send: 3 }
    #- { when: has_menu, accept: Shift+Shift_L, send: 3 }
    - { when: composing, accept: Return, send: Escape }
    - { when: has_menu, accept: space, send: "_" }
    - { when: has_menu, accept: equal, send: Page_Down }
    - { when: has_menu, accept: minus, send: Page_Up }
    - { when: has_menu, accept: period, send: period }  #使得“。”可以顶首选字上屏。
    - {when: always, accept: Control+Shift+P, toggle: pinyin_tip}
    - {when: always, accept: Control+Shift+D, toggle: chaifen}

recognizer:
  import_preset: default
  patterns:
    reverse_lookup: "^`[a-z]*$"

