---
name: "go"
description: >-
  This mode is used to edit Go code.
initiallyActive: false
exclusive: false
commands:
  - name: "integer"
    description: >-
      Types "int".
    alternates:
      - "imgur"
    functions:
      - name: "type"
        fixedArguments:
          - "int"
    spaceLeft: true
    spaceRight: true
  - name: "float"
    description: >-
      Types float64".
    functions:
      - name: "type"
        fixedArguments:
          - "float64"
    spaceLeft: true
    spaceRight: true
  - name: "boolean"
    description: >-
      Types "bool".
    alternates:
      - "bullion"
      - "bullying"
      - "polian"
    functions:
      - name: "type"
        fixedArguments:
          - "bool"
    spaceLeft: true
    spaceRight: true
  - name: "for"
    description: >-
      Types "for".
    alternates:
      - "four"
      - "fore"
    functions:
      - name: "type"
        fixedArguments:
          - "for"
    spaceLeft: true
    spaceRight: true
  - name: "variable"
    description: >-
      Types "var".
    functions:
      - name: "type"
        fixedArguments:
          - "var"
    spaceLeft: true
    spaceRight: true
  - name: "nil"
    description: >-
      Types "nil".
    alternates:
      - "null"
    functions:
      - name: "type"
        fixedArguments:
          - "nil"
    spaceLeft: true
    spaceRight: true
  - name: "bite"
    description: >-
      Types "byte".
    functions:
      - name: "type"
        fixedArguments:
          - "byte"
    spaceLeft: true
    spaceRight: true
  - name: "channel"
    description: >-
      Types "chan".
    functions:
      - name: "type"
        fixedArguments:
          - "chan"
    spaceLeft: true
    spaceRight: true
  - name: "constant"
    description: >-
      Types "const".
    functions:
      - name: "type"
        fixedArguments:
          - "const"
    spaceLeft: true
    spaceRight: true
  - name: "sink"
    description: >-
      Types "sync".
    functions:
      - name: "type"
        fixedArguments:
          - "sync"
    spaceLeft: true
    spaceRight: false
  - name: "fumble"
    description: >-
      Types "error".
    functions:
      - name: "type"
        fixedArguments:
          - "error"
    spaceLeft: true
    spaceRight: true
  - name: "short fumble"
    description: >-
      Types "err".
    functions:
      - name: "type"
        fixedArguments:
          - "err"
    spaceLeft: true
    spaceRight: true
  - name: "format fumble"
    description: >-
      Inserts fmt.Errorf().
    functions:
      - name: "type"
        fixedArguments:
          - "fmt.Errorf()"
      - name: "keyRepeat"
        fixedArguments:
          - "left"
          - "1"
    spaceLeft: true
    spaceRight: true
  - name: "handle fumble"
    description: >-
      Inserts code to handle an error.
    functions:
      - name: "type"
        fixedArguments:
          - "if err != nil {\nreturn fmt.Errorf(\"failed to : %v\", err)\n}"
      - name: "keyPress"
        fixedArguments:
          - "up"
      - name: "keyRepeat"
        fixedArguments:
          - "right"
          - "30"
  - name: "format"
    description: >-
      Types "fmt".
    functions:
      - name: "type"
        fixedArguments:
          - "fmt"
    spaceLeft: true
    spaceRight: false
  - name: "colon equals"
    description: >-
      Types ":=".
    alternates:
      - "calling eagles"
      - "calling equals"
      - "colin equals"
      - "colen equals"
      - "cullen equals"
      - "cohen equals"
      - "kolin equals"
    functions:
      - name: "type"
        fixedArguments:
          - ":="
    spaceLeft: true
    spaceRight: true
  - name: "equals"
    description: >-
      Types "=".
    functions:
      - name: "type"
        fixedArguments:
          - "="
    spaceLeft: true
    spaceRight: true
  - name: "equals equals"
    description: >-
      Types "==".
    functions:
      - name: "type"
        fixedArguments:
          - "=="
    spaceLeft: true
    spaceRight: true
  - name: "not equals"
    description: >-
      Types "!=".
    functions:
      - name: "type"
        fixedArguments:
          - "!="
    spaceLeft: true
    spaceRight: true
  - name: "greater than equals"
    description: >-
      Types ">=".
    functions:
      - name: "type"
        fixedArguments:
          - ">="
    spaceLeft: true
    spaceRight: true
  - name: "less than equals"
    description: >-
      Types "<=".
    functions:
      - name: "type"
        fixedArguments:
          - "<="
    spaceLeft: true
    spaceRight: true
  - name: "less than hyphen"
    description: >-
      Types "<-".
    functions:
      - name: "type"
        fixedArguments:
          - "<-"
    spaceLeft: true
    spaceRight: true
  - name: "plus plus"
    description: >-
      Types "++".
    functions:
      - name: "type"
        fixedArguments:
          - "++"
    spaceLeft: false
    spaceRight: true
  - name: "plus equals"
    description: >-
      Types "+=".
    functions:
      - name: "type"
        fixedArguments:
          - "+="
    spaceLeft: true
    spaceRight: true
  - name: "times"
    description: >-
      Types "*".
    functions:
      - name: "type"
        fixedArguments:
          - "*"
    spaceLeft: true
    spaceRight: true
  - name: "divided by"
    description: >-
      Types "/".
    functions:
      - name: "type"
        fixedArguments:
          - "/"
    spaceLeft: true
    spaceRight: true
  - name: "percent"
    description: >-
      Types "%".
    alternates:
      - "per cent"
    functions:
      - name: "type"
        fixedArguments:
          - "%"
    spaceLeft: true
    spaceRight: true
  - name: "minus"
    description: >-
      Types "-".
    functions:
      - name: "type"
        fixedArguments:
          - "-"
    spaceLeft: true
    spaceRight: true
  - name: "plus"
    description: >-
      Types "+".
    functions:
      - name: "type"
        fixedArguments:
          - "+"
    spaceLeft: true
    spaceRight: true
  - name: "and"
    description: >-
      Types "&&".
    alternate:
      - "end"
    functions:
      - name: "type"
        fixedArguments:
          - "&&"
    spaceLeft: true
    spaceRight: true
  - name: "or"
    description: >-
      Types "||".
    functions:
      - name: "type"
        fixedArguments:
          - "||"
    spaceLeft: true
    spaceRight: true
  - name: "not"
    description: >-
      Types "!".
    functions:
      - name: "type"
        fixedArguments:
          - "!"
    spaceLeft: true
    spaceRight: false
  - name: "single"
    description: >-
      Types the first letter of one utterance word.
      For example, "single athens" -&gt; "a".
      The advantage of this command over "lower",
      is that you can keep talking without having to say "stop".
    functions:
      - name: "lower"
        utteranceArguments: 1
    spaceLeft: true
    spaceRight: true
  - name: "double"
    description: >-
      Types the first letter of two utterance words.
      For example, "double athens bristol" -&gt; "ab".
      The advantage of this command over "lower",
      is that you can keep talking without having to say "stop".
    alternates:
      - "w"
    functions:
      - name: "lower"
        utteranceArguments: 2
    spaceLeft: true
    spaceRight: true
  - name: "triple"
    description: >-
      Types the first letter of three utterance words.
      For example, "triple athens bristol cuba" -&gt; "abc".
      The advantage of this command over "lower",
      is that you can keep talking without having to say "stop".
    functions:
      - name: "lower"
        utteranceArguments: 3
    spaceLeft: true
    spaceRight: true
  - name: "append"
    description: >-
      Types an empty append().
    alternates:
      - "abend"
      - "upend"
      - "a pinned"
    functions:
      - name: "type"
        fixedArguments:
          - "append()"
      - name: "keyRepeat"
        fixedArguments:
          - "left"
          - "1"
    spaceLeft: true
    spaceRight: false
  - name: "length"
    description: >-
      Types an empty len().
    alternates:
      - "links"
    functions:
      - name: "type"
        fixedArguments:
          - "len()"
      - name: "keyRepeat"
        fixedArguments:
          - "left"
          - "1"
    spaceLeft: true
    spaceRight: false
  - name: "function"
    description: >-
      Inserts an empty function.
    functions:
      - name: "type"
        fixedArguments:
          - "func () {\n}"
      - name: "keyPress"
        fixedArguments:
          - "up"
      - name: "keyRepeat"
        fixedArguments:
          - "right"
          - "4"
  - name: "parentheses"
    description: >-
      Inserts a pair of parentheses.
    functions:
      - name: "type"
        fixedArguments:
          - "()"
      - name: "keyRepeat"
        fixedArguments:
          - "left"
          - "1"
  - name: "print line"
    description: >-
      Inserts fmt.Println().
    functions:
      - name: "type"
        fixedArguments:
          - "fmt.Println()"
      - name: "keyRepeat"
        fixedArguments:
          - "left"
          - "1"
  - name: "print"
    description: >-
      Inserts fmt.Printf().
    functions:
      - name: "type"
        fixedArguments:
          - "fmt.Printf()"
      - name: "keyRepeat"
        fixedArguments:
          - "left"
          - "1"
  - name: "sprint"
    description: >-
      Inserts fmt.Sprintf().
    functions:
      - name: "type"
        fixedArguments:
          - "fmt.Sprintf()"
      - name: "keyRepeat"
        fixedArguments:
          - "left"
          - "1"
  - name: "quotes"
    description: >-
      Inserts a pair of quotes.
    functions:
      - name: "type"
        fixedArguments:
          - "\"\""
      - name: "keyRepeat"
        fixedArguments:
          - "left"
          - "1"
  - name: "brackets"
    description: >-
      Inserts a pair of brackets.
    functions:
      - name: "type"
        fixedArguments:
          - "[]"
      - name: "keyRepeat"
        fixedArguments:
          - "left"
          - "1"
  - name: "braces"
    description: >-
      Inserts a pair of curly braces.
    alternate:
      - "prices"
    functions:
      - name: "type"
        fixedArguments:
          - "{\n\n}"
      - name: "keyPress"
        fixedArguments:
          - "up"
      - name: "type"
        fixedArguments:
          - "\t"
    spaceLeft: true
    spaceRight: false
  - name: "imports"
    description: >-
      Inserts an import statement.
    alternate:
      - "in ports"
    functions:
      - name: "type"
        fixedArguments:
          - "import (\n\n)"
      - name: "keyPress"
        fixedArguments:
          - "up"
      - name: "type"
        fixedArguments:
          - "\t"
  - name: "structure"
    description: >-
      Types an empty structure.
    functions:
      - name: "type"
        fixedArguments:
          - "type  struct {\n}"
      - name: "keyPress"
        fixedArguments:
          - "up"
      - name: "keyRepeat"
        fixedArguments:
          - "right"
          - "4"
    spaceLeft: true
    spaceRight: false
