__build_info:
  rime_version: 1.8.5
engine:
  filters:
    - simplifier
    - uniquifier
  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
    - reverse_lookup_translator
    - script_translator
key_binder:
  bindings:
    - {accept: "Control+p", send: Up, when: composing}
    - {accept: "Control+n", send: Down, when: composing}
    - {accept: "Control+b", send: Left, when: composing}
    - {accept: "Control+f", send: Right, when: composing}
    - {accept: "Control+a", send: Home, when: composing}
    - {accept: "Control+e", send: End, when: composing}
    - {accept: "Control+d", send: Delete, when: composing}
    - {accept: "Control+k", send: "Shift+Delete", when: composing}
    - {accept: "Control+h", send: BackSpace, when: composing}
    - {accept: "Control+g", send: Escape, when: composing}
    - {accept: "Control+bracketleft", send: Escape, when: composing}
    - {accept: "Control+y", send: Page_Up, when: composing}
    - {accept: "Alt+v", send: Page_Up, when: composing}
    - {accept: "Control+v", send: Page_Down, when: composing}
    - {accept: ISO_Left_Tab, send: "Shift+Left", when: composing}
    - {accept: "Shift+Tab", send: "Shift+Left", when: composing}
    - {accept: Tab, send: "Shift+Right", when: composing}
    - {accept: minus, send: Page_Up, when: has_menu}
    - {accept: equal, send: Page_Down, when: has_menu}
    - {accept: comma, send: Page_Up, when: paging}
    - {accept: period, send: Page_Down, when: has_menu}
    - {accept: "Control+Shift+1", select: .next, when: always}
    - {accept: "Control+Shift+2", toggle: ascii_mode, when: always}
    - {accept: "Control+Shift+3", toggle: full_shape, when: always}
    - {accept: "Control+Shift+4", toggle: simplification, when: always}
    - {accept: "Control+Shift+5", toggle: extended_charset, when: always}
    - {accept: "Control+Shift+exclam", select: .next, when: always}
    - {accept: "Control+Shift+at", toggle: ascii_mode, when: always}
    - {accept: "Control+Shift+numbersign", toggle: full_shape, when: always}
    - {accept: "Control+Shift+dollar", toggle: simplification, when: always}
    - {accept: "Control+Shift+percent", toggle: extended_charset, when: always}
  import_preset: default
menu:
  page_size: 5
punctuator:
  full_shape:
    " ": {commit: "　"}
    "!": {commit: "！"}
    "\"": {pair: ["“", "”"]}
    "#": ["＃", "⌘"]
    "$": ["￥", "$", "€", "£", "¥", "¢", "¤"]
    "%": ["％", "°", "℃"]
    "&": "＆"
    "'": {pair: ["‘", "’"]}
    "(": "（"
    ")": "）"
    "*": ["＊", "·", "・", "×", "※", "❂"]
    "+": "＋"
    ",": {commit: "，"}
    "-": "－"
    .: {commit: "。"}
    "/": ["／", "÷"]
    ":": {commit: "："}
    ";": {commit: "；"}
    "<": ["《", "〈", "«", "‹"]
    "=": "＝"
    ">": ["》", "〉", "»", "›"]
    "?": {commit: "？"}
    "@": ["＠", "☯"]
    "[": ["「", "【", "〔", "［"]
    "\\": ["、", "＼"]
    "]": ["」", "】", "〕", "］"]
    "^": {commit: "……"}
    _: "——"
    "`": "｀"
    "{": ["『", "〖", "｛"]
    "|": ["·", "｜", "§", "¦"]
    "}": ["』", "〗", "｝"]
    "~": "～"
  half_shape:
    "!": {commit: "！"}
    "\"": {pair: ["“", "”"]}
    "#": "#"
    "$": ["￥", "$", "€", "£", "¥", "¢", "¤"]
    "%": ["%", "％", "°", "℃"]
    "&": "&"
    "'": {pair: ["‘", "’"]}
    "(": "（"
    ")": "）"
    "*": ["*", "＊", "·", "・", "×", "※", "❂"]
    "+": "+"
    ",": {commit: "，"}
    "-": "-"
    .: {commit: "。"}
    "/": ["、", "/", "／", "÷"]
    ":": {commit: "："}
    ";": {commit: "；"}
    "<": ["《", "〈", "«", "‹"]
    "=": "="
    ">": ["》", "〉", "»", "›"]
    "?": {commit: "？"}
    "@": "@"
    "[": ["「", "【", "〔", "［"]
    "\\": ["、", "\\", "＼"]
    "]": ["」", "】", "〕", "］"]
    "^": {commit: "……"}
    _: "——"
    "`": "`"
    "{": ["『", "〖", "｛"]
    "|": ["·", "|", "｜", "§", "¦"]
    "}": ["』", "〗", "｝"]
    "~": ["~", "～"]
  import_preset: default
recognizer:
  import_preset: default
  patterns:
    email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$"
    reverse_lookup: "`[a-z]*'?$"
    uppercase: "[A-Z][-_+.'0-9A-Za-z]*$"
    url: "^(www[.]|https?:|ftp[.:]|mailto:|file:).*$|^[a-z]+[.].+$"
reverse_lookup:
  comment_format:
    - "xform/([nl])v/$1ü/"
  dictionary: stroke
  enable_completion: true
  preedit_format:
    - "xlit/hspnz/一丨丿丶乙/"
  prefix: "`"
  suffix: "'"
  tips: "〔筆畫〕"
schema:
  author:
    - "佛振 <chen.sst@gmail.com>"
  dependencies:
    - stroke
  description: |
    朙月拼音＋MSPY雙拼方案。

  name: "MSPY雙拼"
  schema_id: double_pinyin_mspy
  version: 0.15
speller:
  algebra:
    - "erase/^xx$/"
    - "derive/^([jqxy])u$/$1v/"
    - "derive/^([aoe].*)$/o$1/"
    - "xform/^([ae])(.*)$/$1$1$2/"
    - "xform/iu$/Q/"
    - "xform/[iu]a$/W/"
    - "xform/er$|[uv]an$/R/"
    - "xform/[uv]e$/T/"
    - "xform/v$|uai$/Y/"
    - "xform/^sh/U/"
    - "xform/^ch/I/"
    - "xform/^zh/V/"
    - "xform/uo$/O/"
    - "xform/[uv]n$/P/"
    - "xform/i?ong$/S/"
    - "xform/[iu]ang$/D/"
    - "xform/(.)en$/$1F/"
    - "xform/(.)eng$/$1G/"
    - "xform/(.)ang$/$1H/"
    - "xform/ian$/M/"
    - "xform/(.)an$/$1J/"
    - "xform/iao$/C/"
    - "xform/(.)ao$/$1K/"
    - "xform/(.)ai$/$1L/"
    - "xform/(.)ei$/$1Z/"
    - "xform/ie$/X/"
    - "xform/ui$/V/"
    - "derive/T$/V/"
    - "xform/(.)ou$/$1B/"
    - "xform/in$/N/"
    - "xform/ing$/;/"
    - "xlit/QWRTYUIOPSDFGHMJCKLZXVBN/qwrtyuiopsdfghmjcklzxvbn/"
  alphabet: "zyxwvutsrqponmlkjihgfedcba;"
  delimiter: " '"
  initials: zyxwvutsrqponmlkjihgfedcba
switches:
  - name: ascii_mode
    reset: 0
    states: ["中文", "西文"]
  - name: full_shape
    states: ["半角", "全角"]
  - name: simplification
    states: ["漢字", "汉字"]
  - name: ascii_punct
    states: ["。，", "．，"]
translator:
  dictionary: luna_pinyin
  preedit_format:
    - "xform/([aoe])(\\w)/0$2/"
    - "xform/([bpmnljqxy])n/$1in/"
    - "xform/(\\w)g/$1eng/"
    - "xform/(\\w)q/$1iu/"
    - "xform/([gkhvuirzcs])w/$1ua/"
    - "xform/(\\w)w/$1ia/"
    - "xform/([dtnlgkhjqxyvuirzcs])r/$1uan/"
    - "xform/0r/er/"
    - "xform/([dtgkhvuirzcs])v/$1ui/"
    - "xform/(\\w)v/$1ve/"
    - "xform/(\\w)t/$1ve/"
    - "xform/([gkhvuirzcs])y/$1uai/"
    - "xform/(\\w)y/$1v/"
    - "xform/([dtnlgkhvuirzcs])o/$1uo/"
    - "xform/(\\w)p/$1un/"
    - "xform/([jqx])s/$1iong/"
    - "xform/(\\w)s/$1ong/"
    - "xform/([jqxnl])d/$1iang/"
    - "xform/(\\w)d/$1uang/"
    - "xform/(\\w)f/$1en/"
    - "xform/(\\w)h/$1ang/"
    - "xform/(\\w)j/$1an/"
    - "xform/(\\w)k/$1ao/"
    - "xform/(\\w)l/$1ai/"
    - "xform/(\\w)z/$1ei/"
    - "xform/(\\w)x/$1ie/"
    - "xform/(\\w)c/$1iao/"
    - "xform/(\\w)b/$1ou/"
    - "xform/(\\w)m/$1ian/"
    - "xform/(\\w);/$1ing/"
    - "xform/0(\\w)/$1/"
    - "xform/(^|[ '])v/$1zh/"
    - "xform/(^|[ '])i/$1ch/"
    - "xform/(^|[ '])u/$1sh/"
    - "xform/([jqxy])v/$1u/"
    - "xform/([nl])v/$1ü/"
  prism: double_pinyin_mspy