---
name: "advanced"
description: >-
  Advanced typing and editing commands.
  These commands are more difficult to memorize,
  but they are more efficient when writing and editing a lot of text.
  These command names are somewhat experimental,
  so they may change from release to release for improvement.
  Feel free to experiment with your own command names
  and share effective command names with the Google group.
initiallyActive: false
exclusive: false
commands:

  # Deleting text
  
  - name: "bag"
    description: >-
      Presses the backspace key one or more times.
      To easily remember this command,
      remember that "bag" and "back" both start with "b".
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "backspace"
        utteranceArguments: 1
  - name: "baggy"
    description: >-
      Deletes one or more words to the left of the cursor.
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    alternates:
      - "peggy"
      - "pegi"
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "control"
          - "backspace"
        utteranceArguments: 1
  - name: "fish"
    description: >-
      Presses the delete key one or more times.
      To easily remember this command,
      remember that "fish" and "forward" both start with "f".
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "delete"
        utteranceArguments: 1
  - name: "fishy"
    description: >-
      Deletes one or more words to the right of the cursor.
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "control"
          - "delete"
        utteranceArguments: 1

  # Directional

  - name: "wiki"
    description: >-
      Presses the up key one or more times.
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "up"
        utteranceArguments: 1
  - name: "tiki"
    description: >-
      Presses the down key one or more times.
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "down"
        utteranceArguments: 1
  - name: "army"
    description: >-
      Presses the left key one or more times.
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "left"
        utteranceArguments: 1
  - name: "navy"
    description: >-
      Presses the right key one or more times.
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "right"
        utteranceArguments: 1

  # Special characters
  
  - name: "quid"
    description: >-
      Types "?".
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - "?"
    spaceLeft: false
    spaceRight: true
  - name: "bang"
    description: >-
      Types "!".
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - "!"
    spaceLeft: false
    spaceRight: true
  - name: "pipe"
    description: >-
      Types "|".
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - "|"
    spaceLeft: true
    spaceRight: true
  - name: "pause"
    description: >-
      Presses the , key. This has better recognition than "comma".
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - ","
    spaceLeft: false
    spaceRight: true

  # Container characters

  - name: "quote"
    description: >-
      Presses the " key, prefers space on the left.
    alternates:
      - "quot"
      - "quota"
      - "kwoat"
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - '"'
    spaceLeft: true
    spaceRight: false
  - name: "quoting"
    description: >-
      Presses the " key, prefers space on the right.
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - '"'
    spaceLeft: false
    spaceRight: true
  - name: "parent"
    description: >-
      Presses the ( key.
    alternates:
      - "parrot"
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - "("
    spaceLeft: true
    spaceRight: false
  - name: "parenting"
    description: >-
      Presses the ) key.
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - ")"
    spaceLeft: false
    spaceRight: true
  - name: "brace"
    description: >-
      Presses the { key.
    alternates:
      - "breeze"
      - "brees"
      - "priests"
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - "{"
    spaceLeft: true
    spaceRight: false
  - name: "bracing"
    description: >-
      Presses the } key.
    alternates:
      - "braising"
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - "}"
    spaceLeft: false
    spaceRight: true
  - name: "bracket"
    description: >-
      Presses the [ key.
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - "["
    spaceLeft: true
    spaceRight: false
  - name: "bracketing"
    description: >-
      Presses the ] key.
    pseudoCommand: true
    functions:
      - name: "type"
        fixedArguments:
          - "]"
    spaceLeft: false
    spaceRight: true

  # Paging and scrolling

  - name: "shim"
    description: >-
      Presses the pagedown key one or more times.
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    alternates:
      - "shin"
      - "tion"
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "pagedown"
        utteranceArguments: 1
  - name: "shimmy"
    description: >-
      Presses the pageup key one or more times.
      The optional utterance argument is the number of times the key should be pressed.
      If the argument is not provided,
      the key is pressed once.
    functions:
      - name: "keyRepeat"
        fixedArguments:
          - "pageup"
        utteranceArguments: 1
  - name: "zip"
    description: >-
      Scrolls the mouse down three times.
    functions:
      - name: "mouseScroll"
        fixedArguments:
          - "down"
          - "3"
  - name: "zippy"
    description: >-
      Scrolls the mouse up three times.
    functions:
      - name: "mouseScroll"
        fixedArguments:
          - "up"
          - "3"

