================================================================================
1. File knausj_talon/misc/splits.talon
================================================================================

tag: user.splits
-
split right: user.split_window_right()
split left: user.split_window_left()
split down: user.split_window_down()
split up: user.split_window_up()
split (vertically | vertical): user.split_window_vertically()
split (horizontally | horizontal): user.split_window_horizontally()
split flip: user.split_flip()
split max: user.split_maximize()
split reset: user.split_reset()
split window: user.split_window()
split clear: user.split_clear()
split clear all: user.split_clear_all()
split next: user.split_next()
split last: user.split_last()
go split <number>: user.split_number(number)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
2. File knausj_talon/misc/talon_helpers.talon
================================================================================

talon check updates: menu.check_for_updates()
talon open log: menu.open_log()
talon open rebel: menu.open_repl()
talon home: menu.open_talon_home()
talon copy context pie: user.talon_add_context_clipboard_python()
talon copy context: user.talon_add_context_clipboard()
talon copy name:
    name = app.name()
    clip.set_text(name)
talon copy executable:
    executable = app.executable()
    clip.set_text(executable)
talon copy bundle:
    bundle = app.bundle()
    clip.set_text(bundle)
talon copy title:
    title = win.title()
    clip.set_text(title)
talon dump version:
    result = user.talon_version_info()
    print(result)
talon insert version:
    result = user.talon_version_info()
    user.paste(result)
talon dump context:
    result = user.talon_get_active_context()
    print(result)
^talon test last$:
    phrase = user.history_get(1)
    user.talon_sim_phrase(phrase)
^talon test numb <number_small>$:
    phrase = user.history_get(number_small)
    user.talon_sim_phrase(phrase)
^talon test <phrase>$:
    user.talon_sim_phrase(phrase)
^talon debug action {user.talon_actions}$:
    user.talon_action_find("{user.talon_actions}")
^talon debug list {user.talon_lists}$:
    user.talon_debug_list(talon_lists)
^talon copy list {user.talon_lists}$:
    user.talon_copy_list(talon_lists)
^talon debug tags$:
    user.talon_debug_tags()
^talon debug modes$:
    user.talon_debug_modes()
^talon debug scope {user.talon_scopes}$:
    user.talon_debug_scope(talon_scopes)
^talon debug setting {user.talon_settings}$:
    user.talon_debug_setting(talon_settings)
^talon debug all settings$:
    user.talon_debug_all_settings()
^talon debug active app$:
    result = user.talon_get_active_application_info()
    print("**** Dumping active application **** ")
    print(result)
    print("***********************")
^talon copy active app$:
    result = user.talon_get_active_application_info()
    clip.set_text(result)

talon (bug report|report bug): user.open_url('https://github.com/knausj85/knausj_talon/issues')

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (integer))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
3. File knausj_talon/misc/messaging.talon
================================================================================

tag: user.messaging
-
# Navigation
previous (workspace | server): user.messaging_workspace_previous()
next (workspace | server): user.messaging_workspace_next()
channel: user.messaging_open_channel_picker()
channel <user.text>:
    user.messaging_open_channel_picker()
    insert(user.formatted_text(user.text, "ALL_LOWERCASE"))
channel up: user.messaging_channel_previous()
channel down: user.messaging_channel_next()
([channel] unread last | gopreev): user.messaging_unread_previous()
([channel] unread next | goneck): user.messaging_unread_next()
go (find | search): user.messaging_open_search()
mark (all | workspace | server) read: user.messaging_mark_workspace_read()
mark channel read: user.messaging_mark_channel_read()
upload file: user.messaging_upload_file()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (optional
                (word))
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (optional
                (word))
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
4. File knausj_talon/misc/standard.talon
================================================================================

#(jay son | jason ): "json"
#(http | htp): "http"
#tls: "tls"
#M D five: "md5"
#word (regex | rejex): "regex"
#word queue: "queue"
#word eye: "eye"
#word iter: "iter"
#word no: "NULL"
#word cmd: "cmd"
#word dup: "dup"
#word shell: "shell".
zoom in: edit.zoom_in()
zoom out: edit.zoom_out()
zoom reset: edit.zoom_reset()
scroll up: edit.page_up()
scroll down: edit.page_down()
copy that: edit.copy()
cut that: edit.cut()
paste that: edit.paste()
undo that: edit.undo()
redo that: edit.redo()
paste match: edit.paste_match_style()
file save: edit.save()
wipe: key(backspace)
(pad | padding):
  insert("  ")
  key(left)
slap: edit.line_insert_down()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
5. File knausj_talon/misc/chapters.talon
================================================================================

tag: user.chapters
-
chapter next: user.chapter_next()
chapter last: user.chapter_previous()
go chapter <number>: user.chapter_jump(number)
go chapter final: user.chapter_final()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
6. File knausj_talon/misc/window_management.talon
================================================================================

window (new|open): app.window_open()
window next: app.window_next()
window last: app.window_previous()
window close: app.window_close()
focus <user.running_applications>: user.switcher_focus(running_applications)
# following only works on windows. Can't figure out how to make it work for mac. No idea what the equivalent for linux would be.
focus$: user.switcher_menu()
running list: user.switcher_toggle_running()
running close: user.switcher_hide_running()
launch <user.launch_applications>: user.switcher_launch(launch_applications)

snap <user.window_snap_position>: user.snap_window(window_snap_position)
snap next [screen]: user.move_window_next_screen()
snap last [screen]: user.move_window_previous_screen()
snap screen <number>: user.move_window_to_screen(number)
snap <user.running_applications> <user.window_snap_position>:
    user.snap_app(running_applications, window_snap_position)
snap <user.running_applications> [screen] <number>:
    user.move_app_to_screen(running_applications, number)

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (word)
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))))))

================================================================================
7. File knausj_talon/misc/microphone_selection.talon
================================================================================

^microphone show$: user.microphone_selection_toggle()
^microphone close$: user.microphone_selection_hide()
^microphone pick <number_small>$: user.microphone_select(number_small)

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
8. File knausj_talon/misc/media.talon
================================================================================

volume up: key(volup)
volume down: key(voldown)
set volume <number>: user.media_set_volume(number)
(volume|media) mute: key(mute)
[media] play next: key(next)
[media] play previous: key(prev)
media (play | pause): user.play_pause()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
9. File knausj_talon/misc/macro.talon
================================================================================

macro record: user.macro_record()
macro stop: user.macro_stop()
macro play: user.macro_play()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
10. File knausj_talon/misc/abbreviate.talon
================================================================================

-
(abbreviate|abreviate|brief) {user.abbreviation}: "{abbreviation}"

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (list
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))))

================================================================================
11. File knausj_talon/misc/formatters.talon
================================================================================

#provide both anchored and unachored commands via 'over'
phrase <user.text>$: user.insert_with_history(text)
phrase <user.text> over: user.insert_with_history(text)
{user.prose_formatter} <user.prose>$: user.insert_formatted(prose, prose_formatter)
{user.prose_formatter} <user.prose> over: user.insert_formatted(prose, prose_formatter)
<user.format_text>+$: user.insert_many(format_text_list)
<user.format_text>+ over: user.insert_many(format_text_list)
<user.formatters> that: user.formatters_reformat_selection(user.formatters)
word <user.word>: user.insert_with_history(user.word)
recent list: user.toggle_phrase_history()
recent close: user.phrase_history_hide()
recent repeat <number_small>: user.insert_with_history(user.get_recent_phrase(number_small))
recent copy <number_small>: clip.set_text(user.get_recent_phrase(number_small))
select that: user.select_last_phrase()
before that: user.before_last_phrase()
nope that | scratch that: user.clear_last_phrase()
nope that was <user.formatters>: user.formatters_reformat_last(formatters)

--------------------------------------------------------------------------------

(source_file
  (matches)
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (list
            (identifier))
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (list
            (identifier))
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (repeat1
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (repeat1
            (capture
              (identifier)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (choice
          (seq
            (word)
            (word))
          (seq
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
12. File knausj_talon/misc/websites_and_search_engines.talon
================================================================================

open {user.website}: user.open_url(website)
{user.search_engine} hunt <user.text>$: user.search_with_search_engine(search_engine, user.text)
{user.search_engine} (that|this):
    text = edit.selected_text()
    user.search_with_search_engine(search_engine, text)

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (list
            (identifier))
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (list
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))))))

================================================================================
13. File knausj_talon/misc/help_scope_open.talon
================================================================================

mode: user.help_scope
-

scope (hide | close)$:   user.help_scope_toggle()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word))))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
14. File knausj_talon/misc/git_add_patch.talon
================================================================================

tag: terminal
and tag: user.git
title: /git add .*\-p/
-
yank:
  key(y)
  key(enter)
near:
  key(n)
  key(enter)
quench:
  key(q)
  key(enter)
drum:
  key(d)
  key(enter)
air:
  key(a)
  key(enter)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
15. File knausj_talon/misc/repeater.talon
================================================================================

# -1 because we are repeating, so the initial command counts as one
<user.ordinals>: core.repeat_command(ordinals-1)
<number_small> times: core.repeat_command(number_small-1)
(repeat that|twice): core.repeat_command(1)
repeat that <number_small> [times]: core.repeat_command(number_small)

--------------------------------------------------------------------------------

(source_file
  (matches)
  (comment)
  (declarations
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
16. File knausj_talon/misc/cancel.talon
================================================================================

# allows you to prevent a command executing by ending it with "cancel cancel"
cancel cancel$: skip()
# the actual behavior of "cancel cancel" is implemented in code/cancel.py; if you want to use a different phrase you must also change cancel_phrase there.

# allows you to say something (eg to a human) that you don't want talon to hear, eg "ignore hey Jerry"
ignore [<phrase>]$: app.notify("Command ignored")

--------------------------------------------------------------------------------

(source_file
  (matches)
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier))))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
17. File knausj_talon/misc/git.talon
================================================================================

tag: terminal
and tag: user.git
-
# Standard commands
git add patch: "git add . -p\n"
git add: "git add "
git add everything: "git add -u\n"
git bisect: "git bisect "
git blame: "git blame "
git branch: "git branch "
git branch list: "git branch -vv\n"
git remote branches: "git branch --remote\n"
git branch <user.text>: "git branch {text}"
git checkout: "git checkout "
git checkout master: "git checkout master\n"
git checkout main: "git checkout main\n"
git checkout <user.text>: "git checkout {text}"
git cherry pick: "git cherry-pick "
git cherry pick continue: "git cherry-pick --continue "
git cherry pick abort: "git cherry-pick --abort "
git cherry pick skip: "git cherry-pick --skip "
git clone: "git clone "
# Leave \n out for confirmation since the operation is destructive
git clean everything: "git clean -dfx"
git commit message <user.text>: "git commit -m '{text}'"
git commit: "git commit\n"
git commit amend: "git commit --amend\n"
git commit no verify: "git commit -n"
git commit existing: "git commit -a\n"
git diff (colour|color) words: "git diff --color-words "
git diff: "git diff "
git diff cached: "git diff --cached\n"
git diff tool: "git difftool -d\n"
git diff tool cached: "git difftool --cached -d\n"
git fetch: "git fetch\n"
git fetch all: "git fetch --all\n"
git fetch <user.text>: "git fetch {text}"
git fetch prune: "git fetch --prune\n"
git in it: "git init\n"
git log all: "git log\n"
git log all changes: "git log -c\n"
git log: "git log "
git log changes: "git log -c "
git merge: "git merge "
git merge <user.text>:"git merge {text}"
git merge tool: "git mergetool\n"
git move: "git mv "
git pull: "git pull\n"
git pull origin: "git pull origin "
git pull rebase: "git pull --rebase\n"
git pull fast forward: "git pull --ff-only\n"
git pull <user.text>: "git pull {text} "
git push: "git push\n"
git push origin: "git push origin "
git push up stream origin: "git push -u origin"
git push <user.text>: "git push {text} "
git push tags: "git push --tags\n"
git rebase: "git rebase "
git rebase continue: "git rebase --continue"
git rebase skip: "git rebase --skip"
git remove: "git rm "
git (remove|delete) branch: "git branch -d "
git (remove|delete) remote branch: "git push --delete origin "
git reset: "git reset "
git reset soft: "git reset --soft "
git reset hard: "git reset --hard "
git restore: "git restore "
git restore staged: "git restore --staged "
git restore source: "git restore --source="
git remote: "git remote "
git remote add: "git remote add "
git remote list: "git remote -v\n"
git remote set url: "git remote set-url "
git remote add upstream: "git remote add upstream "
git remote remove: "git remote remove "
git remote show origin: "git remote show origin\n"
git show: "git show "
git stash pop: "git stash pop\n"
git stash: "git stash\n"
git stash push:
  insert("git stash push -m ''")
  key(left)
git stash apply: "git stash apply\n"
git stash list: "git stash list\n"
git stash show: "git stash show"
git status: "git status\n"
git switch [<user.text>]: "git switch {user.formatted_text(text or '', 'DASH_SEPARATED')}"
git switch master: "git switch master "
git switch main: "git switch main "
git switch detached: "git switch --detach "
git (switch create | new branch) [<user.text>]:
  "git switch -c {user.formatted_text(text or '', 'DASH_SEPARATED')}"
git switch orphan: "git switch --orphan "
git submodule add:  "git submodule add "
git tag: "git tag "

# Convenience
git edit config: "git config --local -e\n"

git clone clipboard:
  insert("git clone ")
  edit.paste()
  key(enter)
git diff highlighted:
    edit.copy()
    insert("git diff ")
    edit.paste()
    key(enter)
git diff clipboard:
    insert("git diff ")
    edit.paste()
    key(enter)
git add highlighted:
    edit.copy()
    insert("git add ")
    edit.paste()
    key(enter)
git add clipboard:
    insert("git add ")
    edit.paste()
    key(enter)
git commit highlighted:
    edit.copy()
    insert("git add ")
    edit.paste()
    insert("\ngit commit\n")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (seq
                (word)
                (word))))
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_escape_sequence)
                (string_content)
                (string_escape_sequence)))))))))

================================================================================
18. File knausj_talon/misc/history.talon
================================================================================

command history: user.history_toggle()
command history close: user.history_disable()
command history clear: user.history_clear()
command history less: user.history_less()
command history more: user.history_more()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
19. File knausj_talon/misc/vocabulary.talon
================================================================================

mode: command
mode: dictation
-
copy to vocab [as <phrase>]$: user.add_selection_to_vocabulary(phrase or "")
# Automatically adds possessive form by appending "'s".
copy name to vocab [as <phrase>]$: user.add_selection_to_vocabulary(phrase or "", "name")
# Automatically adds plural form by simply appending "s".
copy noun to vocab [as <phrase>]$: user.add_selection_to_vocabulary(phrase or "", "noun")
copy to replacements as <phrase>$: user.add_selection_to_words_to_replace(phrase)
# Automatically adds possessive form by appending "'s".
copy name to replacements as <phrase>$: user.add_selection_to_words_to_replace(phrase, "name")
# Automatically adds plural form by simply appending "s".
copy noun to replacements as <phrase>$: user.add_selection_to_words_to_replace(phrase, "noun")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (seq
              (word)
              (capture
                (identifier)))))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (optional
            (seq
              (word)
              (capture
                (identifier)))))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string))
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (optional
            (seq
              (word)
              (capture
                (identifier)))))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string
                (string_content)))))))))

================================================================================
20. File knausj_talon/misc/desktops.talon
================================================================================

desk <number_small>: user.desktop(number_small)
desk next: user.desktop_next()
desk last: user.desktop_last()
desk show: user.desktop_show()
window move desk <number>: user.window_move_desktop(number)
window move desk left: user.window_move_desktop_left()
window move desk right: user.window_move_desktop_right()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
21. File knausj_talon/misc/edit_settings.talon
================================================================================

customize {user.talon_settings_csv}:
  user.edit_text_file(talon_settings_csv)
  sleep(500ms)
  edit.file_end()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
22. File knausj_talon/misc/keys.talon
================================================================================

go <user.arrow_keys>: user.move_cursor(arrow_keys)
<user.letter>: key(letter)
(ship | uppercase) <user.letters> [(lowercase | sunk)]:
    user.insert_formatted(letters, "ALL_CAPS")
<user.symbol_key>: key(symbol_key)
<user.function_key>: key(function_key)
<user.special_key>: key(special_key)
<user.modifiers> <user.unmodified_key>: key("{modifiers}-{unmodified_key}")
# for key combos consisting only of modifiers, eg. `press super`.
press <user.modifiers>: key(modifiers)
# for consistency with dictation mode and explicit arrow keys if you need them.
press <user.keys>: key(keys)

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))
          (optional
            (parenthesized_rule
              (choice
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (capture
            (identifier))
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
23. File knausj_talon/misc/screenshot.talon
================================================================================

^grab screen$:                       user.screenshot()
^grab screen <number_small>$:        user.screenshot(number_small)
^grab window$:                       user.screenshot_window()
^grab selection$:                    user.screenshot_selection()
^grab settings$:                     user.screenshot_settings()
^grab screen clip$:                  user.screenshot_clipboard()
^grab screen <number_small> clip$:   user.screenshot_clipboard(number_small)
^grab window clip$:                  user.screenshot_window_clipboard()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
24. File knausj_talon/misc/tabs.talon
================================================================================

tag: user.tabs
-
tab (open | new): app.tab_open()
tab (last | previous): app.tab_previous()
tab next: app.tab_next()
tab close: user.tab_close_wrapper()
tab (reopen|restore): app.tab_reopen()
go tab <number>: user.tab_jump(number)
go tab final: user.tab_final()
tab duplicate: user.tab_duplicate()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
25. File knausj_talon/misc/screens.talon
================================================================================

screen numbers:   user.screens_show_numbering()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
26. File knausj_talon/misc/extensions.talon
================================================================================

{user.file_extension}: "{file_extension}"

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (list
          (identifier)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))))

================================================================================
27. File knausj_talon/misc/multiple_cursors.talon
================================================================================

tag: user.multiple_cursors
-
cursor multiple: user.multi_cursor_enable()
cursor stop: user.multi_cursor_disable()
cursor up: user.multi_cursor_add_above()
cursor down: user.multi_cursor_add_below()
cursor less: user.multi_cursor_select_fewer_occurrences()
cursor more: user.multi_cursor_select_more_occurrences()
cursor skip: user.multi_cursor_skip_occurrence()
cursor all: user.multi_cursor_select_all_occurrences()
cursor lines: user.multi_cursor_add_to_line_ends()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
28. File knausj_talon/misc/pages.talon
================================================================================

tag: user.pages
-
page next: user.page_next()
page last: user.page_previous()
go page <number>: user.page_jump(number)
go page final: user.page_final()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
29. File knausj_talon/misc/datetimeinsert.talon
================================================================================

date insert:
    insert(user.time_format("%Y-%m-%d"))
date insert UTC:
    insert(user.time_format_utc("%Y-%m-%d"))
timestamp insert:
    insert(user.time_format("%Y-%m-%d %H:%M:%S"))
timestamp insert high resolution:
    insert(user.time_format("%Y-%m-%d %H:%M:%S.%f"))
timestamp insert UTC:
    insert(user.time_format_utc("%Y-%m-%d %H:%M:%S"))
timestamp insert UTC high resolution:
    insert(user.time_format_utc("%Y-%m-%d %H:%M:%S.%f"))

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (string
                    (string_content)))))))))))

================================================================================
30. File knausj_talon/misc/help_open.talon
================================================================================

mode: user.help
-
help next$: user.help_next()
help previous$: user.help_previous()
help <number>$: user.help_select_index(number - 1)
help return$: user.help_return()
help refresh$: user.help_refresh()
help close$: user.help_hide()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
31. File knausj_talon/misc/mouse.talon
================================================================================

control mouse: user.mouse_toggle_control_mouse()
zoom mouse: user.mouse_toggle_zoom_mouse()
camera overlay: user.mouse_toggle_camera_overlay()
run calibration: user.mouse_calibrate()
touch:
  mouse_click(0)
  # close the mouse grid if open
  user.grid_close()
      # End any open drags
  # Touch automatically ends left drags so this is for right drags specifically
  user.mouse_drag_end()

righty:
  mouse_click(1)
  # close the mouse grid if open
  user.grid_close()

midclick:
  mouse_click(2)
  # close the mouse grid
  user.grid_close()

#see keys.py for modifiers.
#defaults
#command
#control
#option = alt
#shift
#super = windows key
<user.modifiers> touch:
  key("{modifiers}:down")
  mouse_click(0)
  key("{modifiers}:up")
  # close the mouse grid
  user.grid_close()
<user.modifiers> righty:
  key("{modifiers}:down")
  mouse_click(1)
  key("{modifiers}:up")
  # close the mouse grid
  user.grid_close()
(dubclick | duke):
  mouse_click()
  mouse_click()
  # close the mouse grid
  user.grid_close()
(tripclick | triplick):
  mouse_click()
  mouse_click()
  mouse_click()
  # close the mouse grid
  user.grid_close()
left drag | drag:
  user.mouse_drag(0)
  # close the mouse grid
  user.grid_close()
right drag | righty drag:
  user.mouse_drag(1)
  # close the mouse grid
  user.grid_close()
end drag | drag end:
    user.mouse_drag_end()
wheel down: user.mouse_scroll_down()
wheel down here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_down()
wheel tiny [down]: user.mouse_scroll_down(0.2)
wheel tiny [down] here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_down(0.2)
wheel downer: user.mouse_scroll_down_continuous()
wheel downer here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_down_continuous()
wheel up: user.mouse_scroll_up()
wheel up here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_up()
wheel tiny up: user.mouse_scroll_up(0.2)
wheel tiny up here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_up(0.2)
wheel upper: user.mouse_scroll_up_continuous()
wheel upper here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_up_continuous()
wheel gaze: user.mouse_gaze_scroll()
wheel gaze here:
    user.mouse_move_center_active_window()
    user.mouse_gaze_scroll()
wheel stop: user.mouse_scroll_stop()
wheel stop here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_stop()
wheel left: user.mouse_scroll_left()
wheel left here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_left()
wheel tiny left: user.mouse_scroll_left(0.5)
wheel tiny left here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_left(0.5)
wheel right: user.mouse_scroll_right()
wheel right here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_right()
wheel tiny right: user.mouse_scroll_right(0.5)
wheel tiny right here:
    user.mouse_move_center_active_window()
    user.mouse_scroll_right(0.5)
copy mouse position: user.copy_mouse_position()
curse no:
    # Command added 2021-12-13, can remove after 2022-06-01
    app.notify("Please activate the user.mouse_cursor_commands_enable tag to enable this command")

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (comment)
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))
        (expression_statement
          (key_action
            (implicit_string)))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))
        (expression_statement
          (key_action
            (implicit_string)))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (choice
          (seq
            (word)
            (word))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (choice
          (seq
            (word)
            (word))
          (seq
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (choice
          (seq
            (word)
            (word))
          (seq
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (float))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (float))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (float))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (float))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (float))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (float))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (float))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (float))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
32. File knausj_talon/misc/help.talon
================================================================================

help alphabet: user.help_list("user.letter")
help symbols: user.help_list("user.symbol_key")
help numbers: user.help_list("user.number_key")
help punctuation: user.help_list("user.punctuation")
help modifier: user.help_list("user.modifier_key")
help special keys: user.help_list("user.special_key")
help function keys: user.help_list("user.function_key")
help arrows: user.help_list("user.arrow_key")
(help formatters | help format | format help) : user.help_formatters(user.get_formatters_words())
help context$: user.help_context()
help active$: user.help_context_enabled()
help search <user.text>$: user.help_search(text)
help context {user.help_contexts}$: user.help_selected_context(help_contexts)
help help: user.help_search("help")
help scope$: user.help_scope_toggle()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
33. File knausj_talon/misc/mouse_cursor.talon
================================================================================

tag: user.mouse_cursor_commands_enable
-
curse yes: user.mouse_show_cursor()
curse no: user.mouse_hide_cursor()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
34. File knausj_talon/draft_editor/draft_editor.talon
================================================================================

user.draft_editor_running: True
not tag: user.draft_editor_app_focused
-

draft this:
  user.draft_editor_open()

draft all:
  edit.select_all()
  user.draft_editor_open()

draft line:
  edit.select_line()
  user.draft_editor_open()

draft top:
  edit.extend_file_start()
  user.draft_editor_open()

draft bottom:
  edit.extend_file_end()
  user.draft_editor_open()

draft submit:
  user.draft_editor_paste_last()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
35. File knausj_talon/draft_editor/draft_editor_open.talon
================================================================================

tag: user.draft_editor_active
and tag: user.draft_editor_app_focused
-

draft submit:    user.draft_editor_submit()
draft discard:   user.draft_editor_discard()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
36. File knausj_talon/modes/language_modes.talon
================================================================================

^force {user.language_mode}$: user.code_set_language_mode(language_mode)
^clear language modes$: user.code_clear_language_mode()
[enable] debug mode:
    mode.enable("user.gdb")
disable debug mode:
    mode.disable("user.gdb")

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
37. File knausj_talon/modes/dictation_mode.talon
================================================================================

mode: dictation
-
^press <user.modifiers>$: key(modifiers)
^press <user.keys>$: key(keys)

# Everything here should call `auto_insert()` (instead of `insert()`), to preserve the state to correctly auto-capitalize/auto-space.
# (Talonscript string literals implicitly call `auto_insert`, so there's no need to wrap those)
<user.raw_prose>: auto_insert(raw_prose)
cap: user.dictation_format_cap()
# Hyphenated variants are for Dragon.
(no cap | no-caps): user.dictation_format_no_cap()
(no space | no-space): user.dictation_format_no_space()
^cap that$: user.dictation_reformat_cap()
^(no cap | no-caps) that$: user.dictation_reformat_no_cap()
^(no space | no-space) that$: user.dictation_reformat_no_space()

# Navigation
go up <number_small> (line|lines):
    edit.up()
    repeat(number_small - 1)
go down <number_small> (line|lines):
    edit.down()
    repeat(number_small - 1)
go left <number_small> (word|words):
    edit.word_left()
    repeat(number_small - 1)
go right <number_small> (word|words):
    edit.word_right()
    repeat(number_small - 1)
go line start: edit.line_start()
go line end: edit.line_end()

# Selection
select left <number_small> (word|words):
    edit.extend_word_left()
    repeat(number_small - 1)
select right <number_small> (word|words):
    edit.extend_word_right()
    repeat(number_small - 1)
select left <number_small> (character|characters):
    edit.extend_left()
    repeat(number_small - 1)
select right <number_small> (character|characters):
    edit.extend_right()
    repeat(number_small - 1)
clear left <number_small> (word|words):
    edit.extend_word_left()
    repeat(number_small - 1)
    edit.delete()
clear right <number_small> (word|words):
    edit.extend_word_right()
    repeat(number_small - 1)
    edit.delete()
clear left <number_small> (character|characters):
    edit.extend_left()
    repeat(number_small - 1)
    edit.delete()
clear right <number_small> (character|characters):
    edit.extend_right()
    repeat(number_small - 1)
    edit.delete()

# Formatting
formatted <user.format_text>:
    user.dictation_insert_raw(format_text)
^format selection <user.formatters>$:
    user.formatters_reformat_selection(formatters)

# Corrections
scratch that: user.clear_last_phrase()
scratch selection: edit.delete()
select that: user.select_last_phrase()
spell that <user.letters>: auto_insert(letters)
spell that <user.formatters> <user.letters>:
    result = user.formatted_text(letters, formatters)
    user.dictation_insert_raw(result)

# Escape, type things that would otherwise be commands
^escape <user.text>$:
    auto_insert(user.text)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (capture
            (identifier))))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
38. File knausj_talon/modes/dragon_modes.talon
================================================================================

#defines modes specific to Dragon.
speech.engine: dragon
mode: all
-
# wakes Dragon on Mac, deactivates talon speech commands
dragon mode: user.dragon_mode()
#sleep dragon on Mac, activates talon speech commands
talon mode: user.talon_mode()

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
39. File knausj_talon/modes/sleep_mode.talon
================================================================================

mode: sleep
-
settings():
  #stop continuous scroll/gaze scroll with a pop
  user.mouse_enable_pop_stops_scroll = 0
  #enable pop click with 'control mouse' mode
  user.mouse_enable_pop_click = 0

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (settings_declaration
      (comment)
      (block
        (assignment_statement
          (identifier)
          (integer))
        (comment)
        (assignment_statement
          (identifier)
          (integer))))))

================================================================================
40. File knausj_talon/modes/modes.talon
================================================================================

not mode: sleep
-
^dictation mode$:
    mode.disable("sleep")
    mode.disable("command")
    mode.enable("dictation")
    user.code_clear_language_mode()
    mode.disable("user.gdb")
^command mode$:
    mode.disable("sleep")
    mode.disable("dictation")
    mode.enable("command")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
41. File knausj_talon/modes/wake_up.talon
================================================================================

#defines the commands that sleep/wake Talon
mode: all
-
^welcome back$:
    user.mouse_wake()
    user.history_enable()
    user.talon_mode()
^sleep all [<phrase>]$:
    user.switcher_hide_running()
    user.history_disable()
    user.homophones_hide()
    user.help_hide()
    user.mouse_sleep()
    speech.disable()
    user.engine_sleep()
^talon sleep [<phrase>]$: speech.disable()
^talon wake$: speech.enable()

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier))))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier))))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
42. File knausj_talon/modes/sleep_mode_wav2letter.talon
================================================================================

mode: sleep
speech.engine: wav2letter
-
#this exists solely to prevent talon from waking up super easily in sleep mode at the moment with wav2letter
#you probably shouldn't have any other commands here
<phrase>: skip()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (comment)
  (declarations
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
43. File knausj_talon/emoji/emoji.talon
================================================================================

tag: user.emoji
-
emoticon {user.emoticon}: "{emoticon}"
emoji {user.emoji}: user.paste(emoji)
kaomoji {user.kaomoji}: user.paste(kaomoji)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
44. File knausj_talon/talon_draft_window/draft_window_open.talon
================================================================================

# These are available when the draft window is open, but not necessarily focussed
tag: user.draft_window_showing
-
draft hide: user.draft_hide()

draft submit:
  content = user.draft_get_text()
  user.draft_hide()
  insert(content)
  # user.paste may be somewhat faster, but seems to be unreliable on MacOSX, see
  # https://github.com/talonvoice/talon/issues/254#issuecomment-789355238
  # user.paste(content)

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (comment)
        (comment)
        (comment)))))

================================================================================
45. File knausj_talon/talon_draft_window/draft_window.talon
================================================================================

# These are active when we have focus on the draft window
title:Talon Draft
-
settings():
  # Enable 'Smart dictation mode', see https://github.com/knausj85/knausj_talon/pull/356
  user.context_sensitive_dictation = 1

# Replace a single word with a phrase
replace <user.draft_anchor> with <user.text>:
  user.draft_select("{draft_anchor}")
  result = user.formatted_text(text, "NOOP")
  insert(result)

# Position cursor before word
(pre | cursor | cursor before) <user.draft_anchor>:
  user.draft_position_caret("{draft_anchor}")

# Position cursor after word
(post | cursor after) <user.draft_anchor>:
  user.draft_position_caret("{draft_anchor}", 1)

# Select a whole word
(take | select) <user.draft_anchor>:
  user.draft_select("{draft_anchor}")

# Select a range of words
(take | select) <user.draft_anchor> (through | past) <user.draft_anchor>:
  user.draft_select("{draft_anchor_1}", "{draft_anchor_2}")

# Delete a word
(change | chuck | clear) <user.draft_anchor>:
  user.draft_select("{draft_anchor}", "", 1)
  key(backspace)

# Delete a range of words
(change | chuck | clear) <user.draft_anchor> (through | past) <user.draft_anchor>:
  user.draft_select(draft_anchor_1, draft_anchor_2, 1)
  key(backspace)

# reformat word
<user.formatters> word <user.draft_anchor>:
  user.draft_select("{draft_anchor}", "", 1)
  user.formatters_reformat_selection(user.formatters)

# reformat range
<user.formatters> <user.draft_anchor> (through | past) <user.draft_anchor>:
    user.draft_select(draft_anchor_1, draft_anchor_2, 1)
    user.formatters_reformat_selection(user.formatters)

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (settings_declaration
      (comment)
      (block
        (assignment_statement
          (identifier)
          (integer))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (seq
                (word)
                (word))))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content))
              (integer))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content))
              (string
                (string_content)
                (string_content)
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content))
              (string)
              (integer))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier))
              (integer))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content))
              (string)
              (integer))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (capture
            (identifier))
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier))
              (integer))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
46. File knausj_talon/talon_draft_window/draft_global.talon
================================================================================

# These are available globally (in command mode)
mode: command
-
^draft show:
    # Do this toggle so we can have focus when saying 'draft show'
    user.draft_hide()
    user.draft_show()

^draft show <user.draft_window_position>:
    # Do this toggle so we can have focus when saying 'draft show'
    user.draft_hide()
    user.draft_show()
    user.draft_named_move(draft_window_position)

^draft show small:
    # Do this toggle so we can have focus when saying 'draft show'
    user.draft_hide()
    user.draft_show()
    user.draft_resize(600, 200)

^draft show large:
    # Do this toggle so we can have focus when saying 'draft show'
    user.draft_hide()
    user.draft_show()
    user.draft_resize(800, 500)

^draft empty: user.draft_show("")

^draft edit:
    text = edit.selected_text()
    key(backspace)
    user.draft_show(text)

^draft edit all:
    edit.select_all()
    text = edit.selected_text()
    key(backspace)
    user.draft_show(text)

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)))
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)))
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer)
              (integer))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)))
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer)
              (integer))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
47. File knausj_talon/lang/terraform/terraform.talon
================================================================================

tag: user.terraform
-
tag(): user.code_comment_block_c_like
tag(): user.code_comment_line
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_imperative
tag(): user.code_operators_assignment
tag(): user.code_operators_lambda
tag(): user.code_operators_math

state {user.terraform_module_block}:
    user.code_terraform_module_block(user.terraform_module_block)

resource <user.text>:
    user.code_terraform_resource(text)

data [source] <user.text>:
    user.code_terraform_data_source(text)

[state] prop {user.terraform_common_property}:
    insert(user.terraform_common_property)
    user.code_operator_assignment()

type {user.code_type}: insert("{code_type}")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))))))

================================================================================
48. File knausj_talon/lang/talon/talon.talon
================================================================================

tag: user.talon
-
tag(): user.code_operators_math
tag(): user.code_operators_assignment
tag(): user.code_comment_line
tag(): user.code_functions_common
# uncomment user.talon_populate_lists tag to activate talon-specific lists of actions, scopes, modes etcetera.
# Do not enable this tag with dragon, as it will be unusable.
# with conformer, the latency increase may also be unacceptable depending on your cpu
# see https://github.com/knausj85/knausj_talon/issues/600
# tag(): user.talon_populate_lists

dot talon: insert(".talon")
#defintion blocks for the context
action block:
    user.insert_between("action(", "):")
setting block:
    insert("settings():\n\t")
setting {user.talon_settings}:
    user.paste("{talon_settings} = ")
#context requirements
win require:
    insert("os: windows\n")
mac require:
    insert("os: mac\n")
linux require:
    insert("os: linux\n")
title require:
    insert("win.title: ")
application [require] [{user.talon_apps}]:
    app = talon_apps or ""
    user.paste("app: {app}")
mode require [{user.talon_modes}]:
    mode = talon_modes or ""
    user.paste("mode: {mode}")
tag require [{user.talon_tags}]:
    tag = talon_tags or ""
    user.paste("tag: {tag}")
tag set [{user.talon_tags}]:
    tag = talon_tags or ""
    user.paste("tag(): {tag}")
# requires user.talon_populate_lists tag. do not use with dragon
list {user.talon_lists}: "{{{talon_lists}}}"
# requires user.talon_populate_lists tag. do not use with dragon
capture {user.talon_captures}: "<{talon_captures}>"

#commands for dictating key combos
key <user.keys> over: "{keys}"
key <user.modifiers> over: "{modifiers}"

# all actions (requires uncommenting user.talon_populate_lists tag above)
funk {user.talon_actions}: user.code_insert_function(talon_actions, edit.selected_text())
funk cell <number>:
    user.code_select_function(number - 1, "")
funk wrap <user.code_common_function>:
    user.code_insert_function(code_common_function, edit.selected_text())
funk wrap <number>:
    user.code_select_function(number - 1, edit.selected_text())

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (list
              (identifier)))))
      (block
        (assignment_statement
          (identifier)
          (binary_operator
            (variable
              (identifier))
            (operator)
            (string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (list
              (identifier)))))
      (block
        (assignment_statement
          (identifier)
          (binary_operator
            (variable
              (identifier))
            (operator)
            (string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (list
              (identifier)))))
      (block
        (assignment_statement
          (identifier)
          (binary_operator
            (variable
              (identifier))
            (operator)
            (string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (list
              (identifier)))))
      (block
        (assignment_statement
          (identifier)
          (binary_operator
            (variable
              (identifier))
            (operator)
            (string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (action
                (identifier)
                (argument_list)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer))
              (string))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (action
                (identifier)
                (argument_list)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer))
              (action
                (identifier)
                (argument_list)))))))))

================================================================================
49. File knausj_talon/lang/vimscript/vimscript.talon
================================================================================

tag: user.vimscript
-
tag(): user.code_imperative
tag(): user.code_operators_assignment
tag(): user.code_operators_math
tag(): user.code_comment_line

# XXX - revisit these
settings():
    user.code_private_function_formatter = "SNAKE_CASE"
    user.code_protected_function_formatter = "SNAKE_CASE"
    user.code_public_function_formatter = "SNAKE_CASE"
    user.code_private_variable_formatter = "SNAKE_CASE"
    user.code_protected_variable_formatter = "SNAKE_CASE"
    user.code_public_variable_formatter = "SNAKE_CASE"

###
# VIM Script Specific
###
assign [<user.vimscript_scope>] (variable|var) [<user.text>] [over]:
    insert("let ")
    insert(vimscript_scope or '')
    user.code_private_variable_formatter(text)

[<user.vimscript_scope>] (variable|var) [<user.text>] [over]:
    insert(vimscript_scope or '')
    user.code_private_variable_formatter(text)

# see lang/vimscript/vimscript.py for list
<user.vimscript_functions>:
    insert("{vimscript_functions} ")

# XXX - possibly overlap with some programming.talon
state command: "command! "
state end if: "endif"
state end for: "endfor"
state end while: "endwhile"
state end function: "endfunction"
state continue: "continue"

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (capture
              (identifier)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (optional
            (capture
              (identifier)))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (capture
              (identifier)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))))

================================================================================
50. File knausj_talon/lang/go/go.talon
================================================================================

tag: user.go
-
variadic: "..."
logical and: " && "
logical or: " || "
# Many of these add extra terrible spacing under the assumption that
# gofmt/goimports will erase it.
state comment: "// "
[line] comment <user.text>:
    key("cmd-right")
    insert(" // ")
    insert(user.formatted_text(text, "sentence"))

# "add comment <user.text> [over]:
#     key("cmd-right")
#     text_with_leading(" // ")
# ]
# "[state] context: insert("ctx")
state (funk | func | fun): "func "
function (Annette | init) [over]: "func init() {\n"
function <user.text> [over]:
    insert("func ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))
    insert("(")
    sleep(100ms)

method <user.text> [over]:
    insert("meth ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))
    sleep(100ms)

state var: "var "
variable [<user.text>] [over]:
    insert("var ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))
    # insert(" ")
    sleep(100ms)

of type [<user.text>] [over]:
    insert(" ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

# "set <user.text> [over]:
#     insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))
#     insert(" := ")
#     sleep(100ms)
# ]
state break: "break"
state (chan | channel): " chan "
state go: "go "
state if: "if "
if <user.text> [over]:
  insert("if ")
  insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))
spawn <user.text> [over]:
  insert("go ")
  insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))
state else if: " else if "
else if <user.text> [over]:
    insert(" else if ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

state else: " else "
else <user.text> [over]:
    insert(" else {")
    key("enter")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

state while: "while "
while <user.text> [over]:
    insert("while ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

state for: "for "
for <user.text> [over]:
    insert("for ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

state for range: "forr "
range <user.text> [over]:
    insert("forr ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

state format: "fmt"
format <user.text> [over]:
    insert("fmt.")
    insert(user.formatted_text(text, "PUBLIC_CAMEL_CASE"))

state switch: "switch "
switch <user.text> [over]:
    insert("switch ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

state select: "select "
# "select <user.text>:insert("select "), insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE")]
state (const | constant): " const "
constant <user.text> [over]:
    insert("const ")
    insert(user.formatted_text(text, "PUBLIC_CAMEL_CASE"))

state case: " case "
state default: " default:"
case <user.text> [over]:
    insert("case ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

state type: " type "
type <user.text> [over]:
    insert("type ")
    insert(user.formatted_text(text, "PUBLIC_CAMEL_CASE"))
state true: " true "
state false: " false "
state (start | struct | struck):
  insert(" struct {")
  key("enter")
(struct | struck) <user.text> [over]:
    insert(" struct {")
    key("enter")
    insert(user.formatted_text(text, "PUBLIC_CAMEL_CASE"))

[state] empty interface: " interface{} "
state interface:
  insert(" interface {")
  key("enter")
interface <user.text> [over]:
    insert(" interface {")
    key("enter")
    insert(user.formatted_text(text, "PUBLIC_CAMEL_CASE"))

state string: " string "
[state] (int | integer | ant): "int"
state slice: " []"
slice of: "[]"
[state] (no | nil): "nil"
state (int | integer | ant) 64: " int64 "
state tag:
  user.insert_between(" `", "`")
field tag <user.text> [over]:
    user.insert_between(" `", "`")
    sleep(100ms)
    insert(user.formatted_text(text, "snake"))
    insert(" ")
    sleep(100ms)

state return: " return "
return  <user.text> [over]:
    insert("return ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

map of string to string: " map[string]string "
map of <user.text> [over]:
    insert("map[")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))
    key("right")
    sleep(100ms)

receive: " <- "
make: "make("
loggers [<user.text>] [over]:
    insert("logrus.")
    insert(user.formatted_text(text, "PUBLIC_CAMEL_CASE"))

length <user.text> [over]:
    insert("len(")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

append <user.text> [over]:
    insert("append(")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

state (air | err): "err"
error: " err "
loop over [<user.text>] [over]:
    insert("forr ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

item <user.text> [over]:
  insert(", ")
  insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

value <user.text> [over]:
    insert(": ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

address of [<user.text>] [over]:
    insert("&")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

pointer to [<user.text>] [over]:
    insert("*")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

swipe [<user.text>] [over]:
    key("right")
    insert(", ")
    insert(user.formatted_text(text, "PRIVATE_CAMEL_CASE"))

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))
        (comment)
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))))

================================================================================
51. File knausj_talon/lang/proto/proto.talon
================================================================================

tag: user.protobuf
-

# this is pretty bare-bones, further contributions welcome
state message: "message "
state package: "package "
state reserved: "reserved "
state enum: "enum "
op equals: " = "
state import: "import "
state import public: "import public "
state option: "option "
state repeated: "repeated "

type {user.code_type}: "{code_type}"
repeated type {user.code_type}: "repeated {code_type}"

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))))

================================================================================
52. File knausj_talon/lang/python/python.talon
================================================================================

tag: user.python
-
tag(): user.code_imperative
tag(): user.code_object_oriented

tag(): user.code_comment_line
tag(): user.code_comment_documentation
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_functions
tag(): user.code_functions_common
tag(): user.code_keywords
tag(): user.code_libraries
tag(): user.code_libraries_gui
tag(): user.code_operators_array
tag(): user.code_operators_assignment
tag(): user.code_operators_bitwise
tag(): user.code_operators_math

settings():
    user.code_private_function_formatter = "SNAKE_CASE"
    user.code_protected_function_formatter = "SNAKE_CASE"
    user.code_public_function_formatter = "SNAKE_CASE"
    user.code_private_variable_formatter = "SNAKE_CASE"
    user.code_protected_variable_formatter = "SNAKE_CASE"
    user.code_public_variable_formatter = "SNAKE_CASE"

#python-specific grammars
dunder in it: "__init__"
state (def | deaf | deft): "def "
state try: "try:\n"
state except: "except "
state raise: "raise "
self taught: "self."
pie test: "pytest"
state past: "pass"

raise {user.python_exception}: user.insert_between("raise {python_exception}(", ")")
except {user.python_exception}: "except {python_exception}:"

dock string:
    user.code_comment_documentation()
dock {user.python_docstring_fields}:
    insert("{python_docstring_fields}")
    edit.left()
dock type {user.code_type}:
    user.insert_between(":type ", ": {code_type}")
dock returns type {user.code_type}:
    user.insert_between(":rtype ", ": {code_type}")

toggle imports: user.code_toggle_libraries()
import <user.code_libraries>:
    user.code_insert_library(code_libraries, "")
    key(end enter)

from import: user.insert_between("from ", " import ")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))))

================================================================================
53. File knausj_talon/lang/css/css.talon
================================================================================

tag: user.css
-
tag(): user.code_comment_block_c_like
tag(): user.code_functions_common
tag(): user.code_libraries
tag(): user.code_operators_math

settings():
    user.code_public_variable_formatter = "DASH_SEPARATED"

block: user.code_block()

attribute [<user.text>]:
    name = user.formatted_text(text or "", "DASH_SEPARATED")
    user.insert_between("[{name}", "]")

prop <user.text>:
    name = user.formatted_text(text, "DASH_SEPARATED")
    user.insert_between("{name}: ", ";")

# for media/supports queries, or if you don't like prop
rule <user.text>:
    name = user.formatted_text(text, "DASH_SEPARATED")
    insert("{name}: ")

value <user.number_string> [{user.css_unit}]:
    "{number_string}{css_unit or ''}"
value <user.number_string> point <digit_string> [{user.css_unit}]:
    "{number_string}.{digit_string}{css_unit or ''}"

(value|state) {user.css_global_value}: "{css_global_value}"
value <user.text>: user.insert_formatted(text, "DASH_SEPARATED")

variable <user.text>:
    name = user.formatted_text(text, settings.get("user.code_public_variable_formatter"))
    insert("var(--{name})")

op var: user.insert_between("var(--", ")")

at {user.css_at_rule}: "@{css_at_rule} "
unit {user.css_unit}: insert(css_unit)

[value] current color: "currentColor"
op important: " !important"

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string))
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content))
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (list
              (identifier)))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))
          (optional
            (list
              (identifier)))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (list
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (action
                (identifier)
                (argument_list
                  (string
                    (string_content)))))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))))

================================================================================
54. File knausj_talon/lang/markdown/markdown.talon
================================================================================

tag: user.markdown
-
level one: "# "
level two: "## "
level three: "### "
level four: "#### "
level five: "##### "
level six: "###### "

{user.markdown_code_block_language} block:
    "```{markdown_code_block_language}"
    key(enter:2)
    "```"
    key(up)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (list
            (identifier))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (string
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
55. File knausj_talon/lang/typescript/typescript.talon
================================================================================

tag: user.typescript
-
tag(): user.javascript

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))))

================================================================================
56. File knausj_talon/lang/typescript/typescriptreact.talon
================================================================================

tag: user.typescriptreact
-
tag(): user.typescript
tag(): user.javascriptreact

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))))

================================================================================
57. File knausj_talon/lang/rust/rust.talon
================================================================================

tag: user.rust
-
tag(): user.code_comment_line
tag(): user.code_comment_block_c_like
tag(): user.code_comment_documentation

tag(): user.code_imperative
tag(): user.code_object_oriented

tag(): user.code_data_bool
tag(): user.code_data_null

tag(): user.code_functions
tag(): user.code_functions_common
tag(): user.code_libraries
tag(): user.code_libraries_gui

tag(): user.code_operators_array
tag(): user.code_operators_assignment
tag(): user.code_operators_bitwise
tag(): user.code_operators_math

settings():
    user.code_private_function_formatter = "SNAKE_CASE"
    user.code_protected_function_formatter = "SNAKE_CASE"
    user.code_public_function_formatter = "SNAKE_CASE"
    user.code_private_variable_formatter = "SNAKE_CASE"
    user.code_protected_variable_formatter = "SNAKE_CASE"
    user.code_public_variable_formatter = "SNAKE_CASE"

# rust-specific grammars

## for unsafe rust
state unsafe: "unsafe "
unsafe block: user.code_state_unsafe()

## rust centric struct and enum definitions
state (struct | structure) <user.text>:
    insert("struct ")
    insert(user.formatted_text(text, "PUBLIC_CAMEL_CASE"))

state enum <user.text>:
    insert("enum ")
    insert(user.formatted_text(text, "PUBLIC_CAMEL_CASE"))

toggle use: user.code_toggle_libraries()

## Simple aliases
borrow: "&"
borrow mutable: "&mut "
state (pub | public): "pub "
state (pub | public) crate: "pub(crate) "
state (dyn | dynamic): "dyn "
state constant: "const "
state (funk | func | function): "fn "
state (imp | implements): "impl "
state let mute: "let mut "
state let: "let "
state (mute | mutable): "mut "
state (mod | module): "mod "
state ref (mute | mutable): "ref mut "
state ref: "ref "
state trait: "trait "
state match: user.code_state_switch()
state (some | sum): "Some"
state static: "static "
self taught: "self."
state use: user.code_import()

use <user.code_libraries>:
    user.code_insert_library(code_libraries, "")
    key(semicolon enter)

## specialist flow control
state if let some: user.code_insert_if_let_some()
state if let error: user.code_insert_if_let_error()

## rust centric synonyms
is some: user.code_insert_is_not_null()

## for implementing
implement (struct | structure): user.code_state_implements()

## for annotating function parameters
is implemented trait {user.code_trait}: user.code_insert_trait_annotation(code_trait)
is implemented trait: ": impl "
returns implemented trait {user.code_trait}: user.code_insert_return_trait(code_trait)
returns implemented trait: " -> impl "

## for generic reference of traits
trait {user.code_trait}: insert("{code_trait}")
implemented trait {user.code_trait}: insert("impl {code_trait}")
dynamic trait {user.code_trait}: insert("dyn {code_trait}")

## for generic reference of macro
macro {user.code_macros}:
    user.code_insert_macro(code_macros, "")
macro wrap {user.code_macros}:
    user.code_insert_macro(code_macros, edit.selected_text())

## rust specific document comments
block dock comment: user.code_comment_documentation_block()
inner dock comment: user.code_comment_documentation_inner()
inner block dock comment: user.code_comment_documentation_block_inner()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (action
                (identifier)
                (argument_list)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
58. File knausj_talon/lang/r/r.talon
================================================================================

tag: user.r
-
tag(): user.code_imperative

tag(): user.code_comment_line
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_functions
tag(): user.code_functions_common
tag(): user.code_libraries
tag(): user.code_libraries_gui
tag(): user.code_operators_assignment
tag(): user.code_operators_bitwise
tag(): user.code_operators_math

settings():
    user.code_private_function_formatter = "SNAKE_CASE"
    user.code_protected_function_formatter = "SNAKE_CASE"
    user.code_public_function_formatter = "SNAKE_CASE"
    user.code_private_variable_formatter = "SNAKE_CASE"
    user.code_protected_variable_formatter = "SNAKE_CASE"
    user.code_public_variable_formatter = "SNAKE_CASE"

# NOTE: migrated from generic as it is only use here
(op | is) in: " %in% "

toggle library: user.code_toggle_libraries()
library <user.code_libraries>:
    user.code_insert_library(code_libraries, "")
    key(end enter)

# R specific commands
(chain|pipe that):
    key(end)
    " %>%"
    key(enter)
state na:
    insert("NA")

# TODO: migrate to function tag
^function define <user.text>$: user.code_private_function(text)

named arg {user.code_parameter_name}: user.code_insert_named_argument(code_parameter_name)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (string
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
59. File knausj_talon/lang/java/java.talon
================================================================================

tag: user.java
-
tag(): user.code_imperative
tag(): user.code_object_oriented

tag(): user.code_comment_line
tag(): user.code_comment_block_c_like
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_functions
tag(): user.code_libraries
tag(): user.code_operators_array
tag(): user.code_operators_assignment
tag(): user.code_operators_bitwise
tag(): user.code_operators_lambda
tag(): user.code_operators_math

settings():
    user.code_private_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_public_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_private_variable_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_variable_formatter = "PRIVATE_CAMEL_CASE"
    user.code_public_variable_formatter = "PRIVATE_CAMEL_CASE"

# Types Commands
boxed [type] {user.java_boxed_type}:
    insert(user.java_boxed_type + " ")

generic [type] {user.java_generic_data_structure}:
    user.insert_between(java_generic_data_structure + "<", ">")

# Arrays
type {user.code_type} array:
    insert(user.code_type)
    user.code_operator_subscript()

[state] {user.java_modifier}:
    insert(user.java_modifier + " ")

op array:
    user.code_operator_subscript()

op new:
    insert("new ")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string
                  (string_content))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string
                  (string_content)))
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string
                  (string_content))))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
60. File knausj_talon/lang/php/php.talon
================================================================================

tag: user.php
-
tag(): user.code_imperative
tag(): user.code_object_oriented
tag(): user.code_libraries

tag(): user.code_comment_line
tag(): user.code_comment_block
tag(): user.code_comment_documentation
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_operators_assignment
tag(): user.code_operators_math
tag(): user.code_functions

settings():
    user.code_private_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_public_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_private_variable_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_variable_formatter = "PRIVATE_CAMEL_CASE"
    user.code_public_variable_formatter = "PRIVATE_CAMEL_CASE"

(op | is) loosely equal: " == "
(op | is) loosely not equal: " != "

state try: "try {\n"
state catch: "catch (\\Throwable $exception) {\n"

var <phrase> [over]:
    insert("$")
    insert(user.formatted_text(phrase, "PRIVATE_CAMEL_CASE"))

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))))

================================================================================
61. File knausj_talon/lang/tags/comment_block.talon
================================================================================

tag: user.code_comment_block
-
block comment: user.code_comment_block()
block comment line:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  edit.line_start()
  user.code_comment_block_prefix()
  key(space)
  edit.line_end()
  key(space)
  user.code_comment_block_suffix()
#adds comment to the start of the line
block comment line <user.text> over:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  edit.line_start()
  user.code_comment_block()
  insert(user.text)
block comment <user.text> over:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  user.code_comment_block()
  insert(user.text)
block comment <user.text>$:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  user.code_comment_block()
  insert(user.text)
(line | inline) block comment <user.text> over:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  edit.line_end()
  user.code_comment_block_prefix()
  key(space)
  insert(user.text)
  key(space)
  user.code_comment_block_suffix()
(line | inline) block comment <user.text>$:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  edit.line_end()
  user.code_comment_block_prefix()
  key(space)
  insert(user.text)
  key(space)
  user.code_comment_block_suffix()
open block comment:
  user.code_comment_block_prefix()
close block comment:
  user.code_comment_block_suffix()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (capture
            (identifier))
          (word)))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (word)))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)
          (capture
            (identifier))
          (word)))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
62. File knausj_talon/lang/tags/comment_documentation.talon
================================================================================

tag: user.code_comment_documentation
-
dock comment: user.code_comment_documentation()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
63. File knausj_talon/lang/tags/keywords.talon
================================================================================

tag: user.code_keywords
-
keyword (<user.code_keyword>+): user.code_keyword(code_keyword_list)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (repeat1
              (capture
                (identifier))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
64. File knausj_talon/lang/tags/functions_common.talon
================================================================================

tag: user.code_functions_common
-
toggle funk: user.code_toggle_functions()
funk <user.code_common_function>:
    user.code_insert_function(code_common_function, "")
funk cell <number>:
    user.code_select_function(number - 1, "")
funk wrap <user.code_common_function>:
    user.code_insert_function(code_common_function, edit.selected_text())
funk wrap <number>:
    user.code_select_function(number - 1, edit.selected_text())

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer))
              (string))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (action
                (identifier)
                (argument_list)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer))
              (action
                (identifier)
                (argument_list)))))))))

================================================================================
65. File knausj_talon/lang/tags/comment_line.talon
================================================================================

tag: user.code_comment_line
-
comment: user.code_comment_line_prefix()
comment line:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  edit.line_start()
  user.code_comment_line_prefix()
#adds comment to the start of the line
comment line <user.text> over:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  edit.line_start()
  user.code_comment_line_prefix()
  insert(user.text)
  insert(" ")
comment <user.text> over:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  user.code_comment_line_prefix()
  insert(user.text)
comment <user.text>$:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  user.code_comment_line_prefix()
  insert(user.text)
(line | inline) comment <user.text> over:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  edit.line_end()
  user.code_comment_line_prefix()
  insert(user.text)
(line | inline) comment <user.text>$:
  #todo: this should probably be a single function once
  #.talon supports implementing actions with parameters?
  edit.line_end()
  user.code_comment_line_prefix()
  insert(user.text)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (word)))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (capture
            (identifier))
          (word)))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
66. File knausj_talon/lang/tags/data_null.talon
================================================================================

tag: user.code_data_null
-
state (no | none | nil | null): user.code_insert_null()
is not (none|null): user.code_insert_is_not_null()
is (none|null): user.code_insert_is_null()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
67. File knausj_talon/lang/tags/object_oriented.talon
================================================================================

tag: user.code_object_oriented
-

self dot:
      user.code_self()
      user.code_operator_object_accessor()

state self:
      user.code_self()

state class:
      user.code_define_class()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
68. File knausj_talon/lang/tags/data_bool.talon
================================================================================

tag: user.code_data_bool
-
state true: user.code_insert_true()
state false: user.code_insert_false()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
69. File knausj_talon/lang/tags/library_gui_open.talon
================================================================================

tag: user.code_libraries_gui_showing
-
# The show functions for this have language specific names, e.g. toggle imports for Python
# but let's use a generic name for the close one. Having it behind this tag allows it to be closed
# even if your editor isn't visible.
toggle libraries close: user.code_toggle_libraries()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (comment)
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
70. File knausj_talon/lang/tags/operators_lambda.talon
================================================================================

tag: user.code_operators_lambda
-

# In many languages, anonymous functions aren't merely infix syntax:
#
#       Haskell  '\x -> bla'
#       OCaml    'fun x -> bla'
#       Rust     '|x| { bla }'
#
# Therefore a revision of this command may be in order.

# syntax for anonymous functions
op lambda: user.code_operator_lambda()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
71. File knausj_talon/lang/tags/operators_array.talon
================================================================================

tag: user.code_operators_array
-

# array subscription
op subscript: user.code_operator_subscript()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
72. File knausj_talon/lang/tags/operators_math.talon
================================================================================

tag: user.code_operators_math
-

# math operators
op (minus | subtract): user.code_operator_subtraction()
op (plus | add): user.code_operator_addition()
op (times | multiply): user.code_operator_multiplication()
op divide: user.code_operator_division()
op mod: user.code_operator_modulo()
(op (power | exponent) | to the power [of]): user.code_operator_exponent()

# comparison operators
(op | is) equal: user.code_operator_equal()
(op | is) not equal: user.code_operator_not_equal()
(op | is) (greater | more): user.code_operator_greater_than()
(op | is) (less | below) [than]: user.code_operator_less_than()
(op | is) greater [than] or equal: user.code_operator_greater_than_or_equal_to()
(op | is) less [than] or equal: user.code_operator_less_than_or_equal_to()

# logical operators
(op | logical) and: user.code_operator_and()
(op | logical) or: user.code_operator_or()

# set operators
(op | is) in: user.code_operator_in()
(op | is) not in: user.code_operator_not_in()

# TODO: This operator should either be abstracted into a function or removed.
(op | pad) colon: " : "

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (parenthesized_rule
                (choice
                  (word)
                  (word))))
            (seq
              (word)
              (word)
              (word)
              (optional
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))))

================================================================================
73. File knausj_talon/lang/tags/libraries.talon
================================================================================

tag: user.code_libraries
-
state import: user.code_import()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
74. File knausj_talon/lang/tags/functions_common_gui_active.talon
================================================================================

tag: user.code_functions_common_gui_active
-
# Toggle prefix to be mentally similar to the 'toggle funk' show command
toggle funk: user.code_toggle_functions()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
75. File knausj_talon/lang/tags/functions.talon
================================================================================

tag: user.code_functions
-
# Default implementation of capture listens for the following keywords in any
# order: private pro pub static
#
# The default action implementation looks for the token combination on the left
# (funky is added here for searchability) and calls the function on the right:
#
#   * funky -> code_default_function
#   * private funky -> code_private_function
#   * pro funky -> code_protected_function
#   * pub funky -> code_public_function
#   * static funky -> code_private_static_function
#   * private static funky -> code_private_static_function
#   * pro static funky -> code_protected_static_function
#   * pub static funky -> code_public_static_function
#
^{user.code_function_modifier}* funky <user.text>$:
  user.code_modified_function(code_function_modifier_list or 0, text)

# for annotating function parameters
is type <user.code_type>: user.code_insert_type_annotation(code_type)
returns [type] <user.code_type>: user.code_insert_return_type(code_type)

# for generic reference of types
type <user.code_type>: insert(code_type)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (declarations
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (repeat
            (list
              (identifier)))
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer))
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
76. File knausj_talon/lang/tags/operators_assignment.talon
================================================================================

tag: user.code_operators_assignment
-
tag(): user.code_operators_math
tag(): user.code_operators_bitwise

# assignment
op (equals | assign): user.code_operator_assignment()

# combined computation and assignment
op (minus | subtract) equals: user.code_operator_subtraction_assignment()
op (plus | add) equals: user.code_operator_addition_assignment()
op (times | multiply) equals: user.code_operator_multiplication_assignment()
op divide equals: user.code_operator_division_assignment()
op mod equals: user.code_operator_modulo_assignment()
[op] increment: user.code_operator_increment()

#bitwise operators
(op | logical | bitwise) (ex | exclusive) or equals: user.code_operator_bitwise_exclusive_or_equals()
[(op | logical | bitwise)] (left shift | shift left) equals: user.code_operator_bitwise_left_shift_equals()
[(op | logical | bitwise)] (left right | shift right) equals: user.code_operator_bitwise_right_shift_equals()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (parenthesized_rule
              (choice
                (word)
                (word)
                (word))))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (seq
                (word)
                (word))))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (parenthesized_rule
              (choice
                (word)
                (word)
                (word))))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (seq
                (word)
                (word))))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
77. File knausj_talon/lang/tags/imperative.talon
================================================================================

tag: user.code_imperative
-
block: user.code_block()
state if: user.code_state_if()
state else if: user.code_state_else_if()
state else: user.code_state_else()
state while: user.code_state_while()
state loop: user.code_state_infinite_loop()
state for: user.code_state_for()
state for in: user.code_state_for_each()
state switch: user.code_state_switch()
state case: user.code_state_case()
state do: user.code_state_do()
state goto: user.code_state_go_to()
state return: user.code_state_return()
state break: user.code_break()
state next: user.code_next()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
78. File knausj_talon/lang/tags/operators_bitwise.talon
================================================================================

tag: user.code_operators_bitwise
-

#bitwise operators
[op] bitwise and: user.code_operator_bitwise_and()
[op] bitwise or: user.code_operator_bitwise_or()

# TODO: split these out into separate logical and bitwise operator commands

(op | logical | bitwise) (ex | exclusive) or: user.code_operator_bitwise_exclusive_or()
(op | logical | bitwise) (left shift | shift left): user.code_operator_bitwise_left_shift()
(op | logical | bitwise) (right shift | shift right): user.code_operator_bitwise_right_shift()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
79. File knausj_talon/lang/tags/libraries_gui.talon
================================================================================

tag: user.code_libraries_gui
-
# NOTE: This file does not define any commands, as the commands vary from
#       language to language, e.g., Python uses 'import', C uses 'include',
#       R uses 'library', etcetera.

# TODO: If this ever becomes possible, we should abstract over these commands
#       using a variable which can be set to the context-specific word.

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (comment)
  (comment)
  (comment)
  (comment))

================================================================================
80. File knausj_talon/lang/tags/operators_pointer.talon
================================================================================

tag: user.code_operators_pointer
-
# pointer operators
op dereference: user.code_operator_indirection()
op address of: user.code_operator_address_of()
op arrow: user.code_operator_structure_dereference()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
81. File knausj_talon/lang/scala/scala.talon
================================================================================

tag: user.scala
-
tag(): user.code_imperative
tag(): user.code_object_oriented

tag(): user.code_comment_line
tag(): user.code_comment_block_c_like
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_functions
tag(): user.code_libraries
tag(): user.code_operators_array
tag(): user.code_operators_assignment
tag(): user.code_operators_bitwise
tag(): user.code_operators_lambda
tag(): user.code_operators_math


settings():
    user.code_private_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_public_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_private_variable_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_variable_formatter = "PRIVATE_CAMEL_CASE"
    user.code_public_variable_formatter = "PRIVATE_CAMEL_CASE"

state {user.scala_modifier}:
    insert("{user.scala_modifier} ")

state {user.scala_keyword}:
    insert("{scala_keyword} ")

op right arrow: " -> "
op left arrow: " <- "
op plus plus: " ++ "
op subtype: " <: "

state match: user.code_state_switch()

block string:
  insert('""""""')
  key("left left left")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
82. File knausj_talon/lang/batch/batch.talon
================================================================================

tag: user.batch
-
tag(): user.code_comment_line

# exit without killing cmd shell
soft exit: "exit /B 1\n"
# exit with killing cmd shell
hard exit: "exit 1\n"
echo: "echo "
echo off: "@echo off\n"
call: "call "
call shell: "call cmd \\c "
if error: "if errorlevel 1 "
go to: "goto "
delayed expansion: "SETLOCAL EnableDelayedExpansion\n"
arg <number_small>: "%{number_small}"

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))))

================================================================================
83. File knausj_talon/lang/csharp/csharp.talon
================================================================================

tag: user.csharp
-
tag(): user.code_imperative
tag(): user.code_object_oriented

tag(): user.code_comment_line
tag(): user.code_comment_block_c_like
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_functions
tag(): user.code_functions_common
tag(): user.code_libraries
tag(): user.code_operators_array
tag(): user.code_operators_assignment
tag(): user.code_operators_bitwise
tag(): user.code_operators_lambda
tag(): user.code_operators_math
tag(): user.code_operators_pointer

settings():
    user.code_private_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_function_formatter = "PUBLIC_CAMEL_CASE"
    user.code_public_function_formatter = "PUBLIC_CAMEL_CASE"
    user.code_private_variable_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_variable_formatter = "PUBLIC_CAMEL_CASE"
    user.code_public_variable_formatter = "PUBLIC_CAMEL_CASE"

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))))

================================================================================
84. File knausj_talon/lang/javascript/javascript.talon
================================================================================

tag: user.javascript
-
tag(): user.code_imperative
tag(): user.code_object_oriented

tag(): user.code_comment_line
tag(): user.code_comment_block_c_like
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_functions
tag(): user.code_functions_common
tag(): user.code_keywords
tag(): user.code_libraries
tag(): user.code_operators_array
tag(): user.code_operators_assignment
tag(): user.code_operators_bitwise
tag(): user.code_operators_lambda
tag(): user.code_operators_math

settings():
    user.code_private_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_public_function_formatter = "PRIVATE_CAMEL_CASE"
    user.code_private_variable_formatter = "PRIVATE_CAMEL_CASE"
    user.code_protected_variable_formatter = "PRIVATE_CAMEL_CASE"
    user.code_public_variable_formatter = "PRIVATE_CAMEL_CASE"

(op | is) strict equal: " === "
(op | is) strict not equal: " !== "
op null else: " ?? "

state const: "const "

state let: "let "

state var: "var "

state export: "export "

state async: "async "

state await: "await "

dot {user.code_common_member_function}:
    user.insert_between(".{code_common_member_function}(", ")")

state map: app.notify('ERROR: Command deprecated; please use "dot map"')
state filter: app.notify('ERROR: Command deprecated; please use "dot filter"')
state reduce: app.notify('ERROR: Command deprecated; please use "dot reduce"')

state spread: "..."

from import:
    user.insert_between(' from  "', '"')

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))))

================================================================================
85. File knausj_talon/lang/javascript/javascriptreact.talon
================================================================================

tag: user.javascriptreact
-
tag(): user.javascript

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))))

================================================================================
86. File knausj_talon/lang/c/c.talon
================================================================================

tag: user.c
-
tag(): user.code_imperative

tag(): user.code_comment_line
tag(): user.code_comment_block_c_like
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_functions
tag(): user.code_functions_common
tag(): user.code_libraries
tag(): user.code_libraries_gui
tag(): user.code_operators_array
tag(): user.code_operators_assignment
tag(): user.code_operators_bitwise
tag(): user.code_operators_math
tag(): user.code_operators_pointer

settings():
    user.code_private_function_formatter = "SNAKE_CASE"
    user.code_protected_function_formatter = "SNAKE_CASE"
    user.code_public_function_formatter = "SNAKE_CASE"
    user.code_private_variable_formatter = "SNAKE_CASE"
    user.code_protected_variable_formatter = "SNAKE_CASE"
    user.code_public_variable_formatter = "SNAKE_CASE"
    # whether or not to use uint_8 style datatypes
    #    user.use_stdint_datatypes = 1

# NOTE: migrated from generic, as they were only used here, though once cpp support is added, perhaps these should be migrated to a tag together with the commands below
state include:
    insert('#include ')
state include system:
    user.insert_between("#include <", ">")
state include local:
    user.insert_between('#include "', '"')
state type deaf:
    insert('typedef ')
state type deaf struct:
    insert('typedef struct')
    insert('{\n\n}')
    edit.up()
    key('tab')


# XXX - create a preprocessor tag for these, as they will match cpp, etc
state define: "#define "
state undefine: "#undef "
state if define: "#ifdef "

# XXX - preprocessor instead of pre?
state pre if: "#if "
state error: "#error "
state pre else if: "#elif "
state pre end: "#endif "
state pragma: "#pragma "
state default: "default:\nbreak;"

#control flow
#best used with a push like command
#the below example may not work in editors that automatically add the closing bracket
#if so uncomment the two lines and comment out the rest accordingly
push brackets:
    edit.line_end()
    #insert("{")
    #key(enter)
    insert("{}")
    edit.left()
    key(enter)
    key(enter)
    edit.up()

# Declare variables or structs etc.
# Ex. * int myList
<user.c_variable> <phrase>:
    insert("{c_variable} ")
    insert(user.formatted_text(phrase, "PRIVATE_CAMEL_CASE,NO_SPACES"))

<user.c_variable> <user.letter>:
    insert("{c_variable} {letter} ")

# Ex. (int *)
cast to <user.c_cast>: "{c_cast}"
standard cast to <user.stdint_cast>: "{stdint_cast}"
<user.c_types>: "{c_types}"
<user.c_pointers>: "{c_pointers}"
<user.c_keywords>: "{c_keywords}"
<user.c_signed>: "{c_signed}"
standard <user.stdint_types>: "{stdint_types}"
int main:
    user.insert_between("int main(", ")")

toggle includes: user.code_toggle_libraries()
include <user.code_libraries>:
    user.code_insert_library(code_libraries, "")
    key(end enter)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (comment)
        (comment)))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)
                (string_escape_sequence)
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)
            (string_content)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (comment)
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (capture
            (identifier))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (string
                    (string_content)))))))))
    (command_declaration
      (rule
        (seq
          (capture
            (identifier))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (string))))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
87. File knausj_talon/lang/ruby/ruby.talon
================================================================================

tag: user.ruby
-
tag(): user.code_imperative
tag(): user.code_object_oriented

tag(): user.code_comment_line
tag(): user.code_comment_documentation
tag(): user.code_data_bool
tag(): user.code_data_null
tag(): user.code_functions
tag(): user.code_libraries
tag(): user.code_operators_array
tag(): user.code_operators_assignment
tag(): user.code_operators_bitwise
tag(): user.code_operators_lambda
tag(): user.code_operators_math

settings():
    user.code_private_function_formatter = "SNAKE_CASE"
    user.code_protected_function_formatter = "SNAKE_CASE"
    user.code_public_function_formatter = "SNAKE_CASE"
    user.code_private_variable_formatter = "SNAKE_CASE"
    user.code_protected_variable_formatter = "SNAKE_CASE"
    user.code_public_variable_formatter = "SNAKE_CASE"

args pipe:
    insert("||")
    key(left)

# NOTE: this command is created for backward compatibility, but the documentation comments are not actually strings in Ruby.
dock string:
    user.code_comment_documentation()

state end: "end"
state begin: "begin"
state rescue: "rescue "
state module: "module "

^instance <user.text>$:
    insert("@")
    user.code_public_variable_formatter(text)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (settings_declaration
      (block
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))
        (assignment_statement
          (identifier)
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))))

================================================================================
88. File knausj_talon/lang/sql/sql.talon
================================================================================

tag: user.sql
-
tag(): user.code_operators_math
tag(): user.code_comment_line
tag(): user.code_comment_block_c_like
tag(): user.code_data_null
tag(): user.code_functions_common

select: "SELECT "
distinct: "DISTINCT "
from: "FROM "
select star from: "SELECT *\nFROM "
where: "WHERE "
order by: "ORDER BY "
group by: "GROUP BY "
having: "HAVING "
descending: " DESC"
ascending: " ASC"
dot i d: ".id"
inner join: user.insert_between("INNER JOIN ", " ON ")
inner join using: user.insert_between("INNER JOIN ", " USING ")
left outer join: user.insert_between("LEFT OUTER JOIN ", " ON ")
right outer join: user.insert_between("RIGHT OUTER JOIN ", " ON ")

with:
    key(enter up)
    "WITH  AS ("
    key(enter tab)
    "SELECT "
    key(enter shift-tab)
    edit.extend_line_end()
    edit.delete()
    ") "
    key(delete up:2 right:3)

column:
    key(return)
    ", "

count: user.code_insert_function("Count", "")

date: user.insert_between("DATE '", "'")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (string
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (string
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (string
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string))))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))))

================================================================================
89. File knausj_talon/text/text_navigation.talon
================================================================================

## (2021-03-09) This syntax is experimental and may change. See below for an explanation.
navigate [{user.arrow_key}] [{user.navigation_action}] [{user.navigation_target_name}] [{user.before_or_after}] [<user.ordinals>] <user.navigation_target>:
## If you use this command a lot, you may wish to have a shorter syntax that omits the navigate keyword. Note that you then at least have to say either a navigation_action or before_or_after:
#({user.navigation_action} [{user.arrow_key}] [{user.navigation_target_name}] [{user.before_or_after}] | [{user.arrow_key}] {user.before_or_after}) [<user.ordinals>] <user.navigation_target>:
  user.navigation(navigation_action or "GO", arrow_key or "RIGHT", navigation_target_name or "DEFAULT", before_or_after or "DEFAULT", navigation_target, ordinals or 1)

# ===== Examples of use =====
#
#   navigate comma: moves after the next "," on the line.
#   navigate before five: moves before the next "5" on the line.
#   navigate left underscore: moves before the previous "_" on the line.
#   navigate left after second plex: moves after the second-previous "x" on the line.
#
# Besides characters, we can find phrases or move in predetermined units:
#
#   navigate phrase hello world: moves after the next "hello world" on the line.
#   navigate left third word: moves left over three words.
#   navigate before second big: moves before the second-next 'big' word (a chunk of anything except white space).
#   navigate left second small: moves left over two 'small' words (chunks of a camelCase name).
#
# We can search several lines (default 10) above or below the cursor:
#
#   navigate up phrase john: moves before the previous "john" (case-insensitive) on the preceding lines.
#   navigate down third period: moves after the third period on the following lines.
#
# Besides movement, we can cut, copy, select, clear (delete), or extend the current selection:
#
#   navigate cut after comma: cut the word following the next comma on the line.
#   navigate left copy third word: copy the third word to the left.
#   navigate extend third big: extend the selection three big words right.
#   navigate down clear phrase I think: delete the next occurrence of "I think" on the following lines.
#   navigate up select colon: select the closest colon on the preceeding lines.
#
# We can specify what gets selected before or after the given input:
#
#  navigate select parens after equals: Select the first "(" and everything until the first ")" after the "="
#  navigate left copy all before equals: Copy everything from the start of the line until the first "=" you encounter while moving left
#  navigate clear constant before semicolon: Delete the last word consisting of only uppercase characters or underscores before a ";"
#
# ===== Explanation of the grammar =====
#
# [{user.arrow_key}]: left, right, up, down (default: right)
#   Which direction to navigate in.
#   left/right work on the current line.
#   up/down work on the closest lines (default: 10) above or below.
#
# [{user.navigation_action}]: move, extend, select, clear, cut, copy (default: move)
#   What action to perform.
#
# [{user.navigation_target_name}]: word, small, big, parens, squares, braces, quotes, angles, all, method, constant (default: word)
#  The predetermined unit to select if before_or_after was specified.
#  Defaults to "word"
#
# [{user.before_or_after}]: before, after (default: special behavior)
#   For move/extend: where to leave the cursor, before or after the target.
#   Defaults to "after" for right/down and "before" for left/up.
#
#   For select/copy/cut: if absent, select/copy/cut the target iself. If
#   present, the navigation_target_name before/after the target.
#
# [<user.ordinals>]: an english ordinal, like "second" (default: first)
#   Which occurrence of the target to navigate to.
#
# <user.navigation_target>: one of the following:
#   - a character name, like "comma" or "five".
#   - "word" or "big" or "small"
#   - "phrase <some text to search for>"
#   Specifies the target to search for/navigate to.

# The functionality for all these commands is covered in the lines above, but these commands are kept here for convenience. Originally from word_selection.talon.
word neck [<number_small>]: user.navigation_by_name("SELECT", "RIGHT", "DEFAULT", "word", number_small or 1)
word pre [<number_small>]: user.navigation_by_name("SELECT", "LEFT", "DEFAULT", "word", number_small or 1)
small word neck [<number_small>]: user.navigation_by_name("SELECT", "RIGHT", "DEFAULT", "small", number_small or 1)
small word pre [<number_small>]: user.navigation_by_name("SELECT", "LEFT", "DEFAULT", "small", number_small or 1)
big word neck [<number_small>]: user.navigation_by_name("SELECT", "RIGHT", "DEFAULT", "big", number_small or 1)
big word pre [<number_small>]: user.navigation_by_name("SELECT", "LEFT", "DEFAULT", "big", number_small or 1)

--------------------------------------------------------------------------------

(source_file
  (matches)
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (list
              (identifier)))
          (optional
            (list
              (identifier)))
          (optional
            (list
              (identifier)))
          (optional
            (list
              (identifier)))
          (optional
            (capture
              (identifier)))
          (capture
            (identifier))))
      (comment)
      (comment)
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string
                  (string_content)))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string
                  (string_content)))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string
                  (string_content)))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string
                  (string_content)))
              (variable
                (identifier))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (string
                (string_content))
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))))))

================================================================================
90. File knausj_talon/text/symbols.talon
================================================================================

question [mark]: "?"
(downscore | underscore): "_"
double dash: "--"
(bracket | brack | left bracket): "{"
(rbrack | are bracket | right bracket): "}"
triple quote: "'''"
(triple grave | triple back tick | gravy):
    insert("```")
(dot dot | dotdot): ".."
ellipses: "..."
(comma and | spamma): ", "
plus: "+"
arrow: "->"
dub arrow: "=>"
new line: "\\n"
carriage return: "\\r"
line feed: "\\r\\n"
empty dubstring:
    '""'
    key(left)
empty escaped (dubstring|dub quotes):
    '\\"\\"'
    key(left)
    key(left)
empty string:
    "''"
    key(left)
empty escaped string:
    "\\'\\'"
    key(left)
    key(left)
(inside parens | args):
  insert("()")
  key(left)
inside (squares | square brackets | list):
  insert("[]")
  key(left)
inside (bracket | braces):
  insert("{}")
  key(left)
inside percent:
  insert("%%")
  key(left)
inside (quotes | string):
  insert("''")
  key(left)
inside (double quotes | dubquotes):
  insert('""')
  key(left)
inside (graves | back ticks):
  insert("``")
  key(left)
angle that:
    text = edit.selected_text()
    user.paste("<{text}>")
(square | square bracket) that:
    text = edit.selected_text()
    user.paste("[{text}]")
(bracket | brace) that:
    text = edit.selected_text()
    user.paste("{{{text}}}")
(parens | args) that:
    text = edit.selected_text()
    user.paste("({text})")
percent that:
    text = edit.selected_text()
    user.paste("%{text}%")
quote that:
    text = edit.selected_text()
    user.paste("'{text}'")
(double quote | dubquote) that:
    text = edit.selected_text()
    user.paste('"{text}"')
(grave | back tick) that:
    text = edit.selected_text()
    user.paste('`{text}`')

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word)
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_escape_sequence)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_escape_sequence)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_escape_sequence)
            (string_content)
            (string_escape_sequence)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (string
            (string_escape_sequence)
            (string_content)
            (string_escape_sequence)
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_escape_sequence)
            (string_content)
            (string_escape_sequence)
            (string_content)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))
          (word)))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))))

================================================================================
91. File knausj_talon/text/numbers.talon
================================================================================

not tag: user.mouse_grid_showing
-
<user.number_string>: "{number_string}"

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))))

================================================================================
92. File knausj_talon/text/homophones.talon
================================================================================

phones <user.homophones_canonical>: user.homophones_show(homophones_canonical)
phones that: user.homophones_show_selection()
phones force <user.homophones_canonical>: user.homophones_force_show(homophones_canonical)
phones force: user.homophones_force_show_selection()
phones hide: user.homophones_hide()
phones word:
  edit.select_word()
  user.homophones_show_selection()
phones [<user.ordinals>] word left:
  n = ordinals or 1
  user.words_left(n - 1)
  edit.extend_word_left()
  user.homophones_show_selection()
phones [<user.ordinals>] word right:
  n = ordinals or 1
  user.words_right(n - 1)
  edit.extend_word_right()
  user.homophones_show_selection()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (binary_operator
            (variable
              (identifier))
            (operator)
            (integer)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))
          (word)
          (word)))
      (block
        (assignment_statement
          (identifier)
          (binary_operator
            (variable
              (identifier))
            (operator)
            (integer)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
93. File knausj_talon/text/homophones_open.talon
================================================================================

mode: user.homophones
-
choose <number_small>:
    result = user.homophones_select(number_small)
    insert(result)
    user.homophones_hide()
choose <user.formatters> <number_small>:
    result = user.homophones_select(number_small)
    insert(user.formatted_text(result, formatters))
    user.homophones_hide()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (capture
            (identifier))))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list
                  (variable
                    (identifier))
                  (variable
                    (identifier)))))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
94. File knausj_talon/text/find_and_replace.talon
================================================================================

tag: user.find_and_replace
-
hunt this: user.find("")
hunt this <user.text>: user.find(text)
hunt all: user.find_everywhere("")
hunt all <user.text>: user.find_everywhere(text)
hunt case : user.find_toggle_match_by_case()
hunt word : user.find_toggle_match_by_word()
hunt expression : user.find_toggle_match_by_regex()
hunt next: user.find_next()
hunt previous: user.find_previous()
replace this [<user.text>]: user.replace(text or "")
replace all: user.replace_everywhere("")
replace <user.text> all: user.replace_everywhere(text)
replace confirm that: user.replace_confirm()
replace confirm all: user.replace_confirm_all()

#quick replace commands, modeled after jetbrains
clear last <user.text> [over]:
    user.select_previous_occurrence(text)
    sleep(100ms)
    edit.delete()
clear next <user.text> [over]:
    user.select_next_occurrence(text)
    sleep(100ms)
    edit.delete()
clear last clip:
    user.select_previous_occurrence(clip.text())
    edit.delete()
clear next clip:
    user.select_next_occurrence(clip.text())
    sleep(100ms)
    edit.delete()
comment last <user.text> [over]:
    user.select_previous_occurrence(text)
    sleep(100ms)
    code.toggle_comment()
comment last clip:
    user.select_previous_occurrence(clip.text())
    sleep(100ms)
    code.toggle_comment()
comment next <user.text> [over]:
    user.select_next_occurrence(text)
    sleep(100ms)
    code.toggle_comment()
comment next clip:
    user.select_next_occurrence(clip.text())
    sleep(100ms)
    code.toggle_comment()
go last <user.text> [over]:
    user.select_previous_occurrence(text)
    sleep(100ms)
    edit.right()
go last clip:
    user.select_previous_occurrence(clip.text())
    sleep(100ms)
    edit.right()
go next <user.text> [over]:
    user.select_next_occurrence(text)
    edit.right()
go next clip:
    user.select_next_occurrence(clip.text())
    edit.right()
paste last <user.text> [over]:
    user.select_previous_occurrence(text)
    sleep(100ms)
    edit.right()
    edit.paste()
paste next <user.text> [over]:
    user.select_next_occurrence(text)
    sleep(100ms)
    edit.right()
    edit.paste()
replace last <user.text> [over]:
    user.select_previous_occurrence(text)
    sleep(100ms)
    edit.paste()
replace next <user.text> [over]:
    user.select_next_occurrence(text)
    sleep(100ms)
    edit.paste()
select last <user.text> [over]: user.select_previous_occurrence(text)
select next <user.text> [over]: user.select_next_occurrence(text)
select last clip: user.select_previous_occurrence(clip.text())
select next clip: user.select_next_occurrence(clip.text())

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (action
                (identifier)
                (argument_list)))))))))

================================================================================
95. File knausj_talon/text/line_commands.talon
================================================================================

tag: user.line_commands
-
#this defines some common line commands. More may be defined that are ide-specific.
lend: edit.line_end()
bend: edit.line_start()
go <number>: edit.jump_line(number)
go <number> end:
    edit.jump_line(number)
    edit.line_end()
comment [line] <number>:
    user.select_range(number, number)
    code.toggle_comment()
comment <number> until <number>:
    user.select_range(number_1, number_2)
    code.toggle_comment()
clear [line] <number>:
    edit.jump_line(number)
    user.select_range(number, number)
    edit.delete()
clear <number> until <number>:
    user.select_range(number_1, number_2)
    edit.delete()
copy [line] <number>:
    user.select_range(number, number)
    edit.copy()
copy <number> until <number>:
    user.select_range(number_1, number_2)
    edit.copy()
cut [line] <number>:
    user.select_range(number, number)
    edit.cut()
cut [line] <number> until <number>:
    user.select_range(number_1, number_2)
    edit.cut()
(paste | replace) <number> until <number>:
    user.select_range(number_1, number_2)
    edit.paste()
(select | cell | sell) [line] <number>: user.select_range(number, number)
(select | cell | sell) <number> until <number>: user.select_range(number_1, number_2)
tab that: edit.indent_more()
tab [line] <number>:
    edit.jump_line(number)
    edit.indent_more()
tab <number> until <number>:
    user.select_range(number_1, number_2)
    edit.indent_more()
retab that: edit.indent_less()
retab [line] <number>:
    user.select_range(number, number)
    edit.indent_less()
retab <number> until <number>:
    user.select_range(number_1, number_2)
    edit.indent_less()
drag [line] down: edit.line_swap_down()
drag [line] up: edit.line_swap_up()
drag up [line] <number>:
    user.select_range(number, number)
    edit.line_swap_up()
drag up <number> until <number>:
    user.select_range(number_1, number_2)
    edit.line_swap_up()
drag down [line] <number>:
    user.select_range(number, number)
    edit.line_swap_down()
drag down <number> until <number>:
    user.select_range(number_1, number_2)
    edit.line_swap_down()
clone (line|that): edit.line_clone()

select camel left: user.extend_camel_left()
select camel right: user.extend_camel_right()
go camel left: user.camel_left()
go camel right: user.camel_right()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
96. File knausj_talon/text/generic_editor.talon
================================================================================

find it:
    edit.find()

next one:
    edit.find_next()

go word left:
    edit.word_left()

go word right:
    edit.word_right()

go left:
    edit.left()

go right:
    edit.right()

go up:
    edit.up()

go down:
    edit.down()

go line start:
    edit.line_start()

go line end:
    edit.line_end()

go way left:
    edit.line_start()
    edit.line_start()

go way right:
    edit.line_end()

go way down:
    edit.file_end()

go way up:
    edit.file_start()

go bottom:
    edit.file_end()

go top:
    edit.file_start()

go page down:
    edit.page_down()

go page up:
    edit.page_up()

# selecting
select line:
    edit.select_line()

select all:
    edit.select_all()

select left:
    edit.extend_left()

select right:
    edit.extend_right()

select up:
    edit.extend_line_up()

select down:
    edit.extend_line_down()

select word:
    edit.select_word()

select word left:
    edit.extend_word_left()

select word right:
    edit.extend_word_right()

select way left:
    edit.extend_line_start()

select way right:
    edit.extend_line_end()

select way up:
    edit.extend_file_start()

select way down:
    edit.extend_file_end()

# editing
indent [more]:
    edit.indent_more()

(indent less | out dent):
    edit.indent_less()

# deleting
clear line:
    edit.delete_line()

clear left:
    key(backspace)

clear right:
    key(delete)

clear up:
    edit.extend_line_up()
    edit.delete()

clear down:
    edit.extend_line_down()
    edit.delete()

clear word:
    edit.delete_word()

clear word left:
    edit.extend_word_left()
    edit.delete()

clear word right:
    edit.extend_word_right()
    edit.delete()

clear way left:
    edit.extend_line_start()
    edit.delete()

clear way right:
    edit.extend_line_end()
    edit.delete()

clear way up:
    edit.extend_file_start()
    edit.delete()

clear way down:
    edit.extend_file_end()
    edit.delete()

clear all:
    edit.select_all()
    edit.delete()

#copy commands
copy all:
    edit.select_all()
    edit.copy()
#to do: do we want these variants, seem to conflict
# copy left:
#      edit.extend_left()
#      edit.copy()
# copy right:
#     edit.extend_right()
#     edit.copy()
# copy up:
#     edit.extend_up()
#     edit.copy()
# copy down:
#     edit.extend_down()
#     edit.copy()

copy word:
    edit.select_word()
    edit.copy()

copy word left:
    edit.extend_word_left()
    edit.copy()

copy word right:
    edit.extend_word_right()
    edit.copy()

copy line:
    edit.select_line()
    edit.copy()

#cut commands
cut all:
    edit.select_all()
    edit.cut()
#to do: do we want these variants
# cut left:
#      edit.select_all()
#      edit.cut()
# cut right:
#      edit.select_all()
#      edit.cut()
# cut up:
#      edit.select_all()
#     edit.cut()
# cut down:
#     edit.select_all()
#     edit.cut()

cut word:
    edit.select_word()
    edit.cut()

cut word left:
    edit.extend_word_left()
    edit.cut()

cut word right:
    edit.extend_word_right()
    edit.cut()

cut line:
    edit.select_line()
    edit.cut()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
97. File knausj_talon/apps/firefox/firefox.talon
================================================================================

app: firefox
-
tag(): browser
tag(): user.tabs
tab search:
    browser.focus_address()
    insert("% ")
tab search <user.text>$:
    browser.focus_address()
    insert("% {text}")
    key(down)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
98. File knausj_talon/apps/anaconda/anaconda.talon
================================================================================

tag: terminal
and tag: user.anaconda
-
anaconda:         "conda "
anaconda help:    "conda --help\n"
anaconda version: "conda --version\n"

anaconda environment list:   "conda env list\n"
anaconda environment create: "conda env create -f "
anaconda environment remove: "conda env remove -n "

anaconda activate:  "conda activate "
anaconda clean:     "conda clean "
anaconda compare:   "conda compare "
anaconda config:    "conda config "
anaconda create:    "conda create "
anaconda info:      "conda info "
anaconda init:      "conda init "
anaconda install:   "conda install "
anaconda list:      "conda list "
anaconda package:   "conda package "
anaconda remove:    "conda remove "
anaconda uninstall: "conda uninstall "
anaconda run:       "conda run "
anaconda search:    "conda search "
anaconda update:    "conda update "
anaconda upgrade:   "conda upgrade "

anaconda build:       "conda build "
anaconda convert:     "conda convert "
anaconda debug:       "conda debug "
anaconda develop:     "conda develop "
anaconda environment: "conda env "
anaconda index:       "conda index "
anaconda inspect:     "conda inspect "
anaconda metapackage: "conda metapackage "
anaconda render:      "conda render "
anaconda server:      "conda server "
anaconda skeleton:    "conda skeleton "
anaconda verify:      "conda verify "

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))))

================================================================================
99. File knausj_talon/apps/kindle/kindle.talon
================================================================================

app: kindle
-
# Set tags
tag(): user.pages

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))))

================================================================================
100. File knausj_talon/apps/terraform/terraform.talon
================================================================================

tag: terminal
and tag: user.terraform_client
-
terraform: "terraform "

terraform apply: "terraform apply "
terraform destroy: "terraform destroy "
terraform format recursive: "terraform fmt -recursive\n"
terraform format: "terraform fmt\n"
terraform help: "terraform -help"
terraform init upgrade: "terraform init -upgrade\n"
terraform init: "terraform init\n"
terraform plan: "terraform plan\n"
terraform state move: "terraform state mv "
terraform validate: "terraform validate\n"

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))))

================================================================================
101. File knausj_talon/apps/generic_browser.talon
================================================================================

tag: browser
-
address bar | go address | go url: browser.focus_address()
address copy | url copy | copy address | copy url:
    browser.focus_address()
    sleep(50ms)
    edit.copy()
go home: browser.go_home()
[go] forward: browser.go_forward()
go (back | backward): browser.go_back()
go to {user.website}: browser.go(website)
go private: browser.open_private_window()

bookmark it: browser.bookmark()
bookmark tabs: browser.bookmark_tabs()
(refresh | reload) it: browser.reload()
(refresh | reload) it hard: browser.reload_hard()

bookmark show: browser.bookmarks()
bookmark bar [show]: browser.bookmarks_bar()
downloads show: browser.show_downloads()
extensions show: browser.show_extensions()
history show: browser.show_history()
cache show: browser.show_clear_cache()
dev tools [show]: browser.toggle_dev_tools()

# Legacy [verb noun] commands to be removed at a later time
show downloads: browser.show_downloads()
show extensions: browser.show_extensions()
show history: browser.show_history()
show cache: browser.show_clear_cache()

#todo - port to apps
# navigating current page
# help: key(?)
# scroll tiny down: key(j)
# scroll tiny up: key(k)
# scroll left: key(h)
# scroll right: key(l)
# scroll (pop | spring): key(z H)
# scroll push: key(z L)
# scroll top: key(gg)
# scroll (bottom | end): key(G)
# (scroll half down | mini page): key(d)
# scroll half up: key(u)
# [open] link: key(f)
# [open] link new: key(F)
# copy link: key(y f)
# copy (address | url): key(escape y y)
# (refresh | reload): browser.reload()
# view source: key(g s)
# insert mode: key(i)
# next frame: key(g f)
# main frame: key(g F)
# navigating to new pages
# (open | go) (url | history): key(o)
# (open | go) (url | history) new: key(O)
# (open | go) bookmark: key(b)
# (open | go) bookmark new: key(B)
# using find
# find mode: key(/)
# next match: key(n)
# previous match: key(N)
# navigating history
# history back: key(H)
# history forward: key(L)
# manipulating tabs
# last visited: key(^)
# dupe tab: key(y t)
# restore: key(X)
# search tabs: key(T)
# move to window: key(W)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (choice
          (seq
            (word)
            (word))
          (seq
            (word)
            (word))
          (seq
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (choice
          (seq
            (word)
            (word))
          (seq
            (word)
            (word))
          (seq
            (word)
            (word))
          (seq
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list))))))
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment))

================================================================================
102. File knausj_talon/apps/calibre/calibre_viewer.talon
================================================================================

app: calibre_viewer
-
# Set tags
tag(): user.pages
tag(): user.chapters

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))))

================================================================================
103. File knausj_talon/apps/okular/okular.talon
================================================================================

app: okular
-
# Set tags
tag(): user.pages

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))))

================================================================================
104. File knausj_talon/apps/platforms/win/wsl/wsl.talon
================================================================================

# NOTE: to use these commands you will need to activate the tag below in whatever contexts you
# choose.
#
# do this in a separate .talon file or via python. for example, if you use windows terminal for
# wsl then you might do this:
#
#    os: windows
#    app: windows_terminal
#    -
#    tag(): user.wsl
#
# however, if you also use windows terminal for other things (powershell), you will want something
# more specific...like this:
#
#    os: windows
#    app: windows_terminal
#    title: /^WSL:/
#    -
#    tag(): user.wsl
#
# then, you will need to find a way to set the window title accordingly. for example, to match
# the title pattern above, you can set the prompt in your .bashrc file like this:
#
#    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}WSL:${WSL_DISTRO_NAME} \u@\h: \w\a\]$PS1"
#
# ALSO: if you do populate your window title with your distro name, make sure the 'wsl_title_regex'
# value in wsl.py is set accordingly.
tag: user.wsl
-

tag(): terminal
tag(): user.file_manager
tag(): user.generic_unix_shell
tag(): user.git
tag(): user.kubectl

^go <user.letter>$: user.file_manager_open_volume("/mnt/{letter}")

(wsl|weasel) reset path detection: user.wsl_reset_path_detection()
(wsl|weasel) speak: user.wsl_speak()

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
105. File knausj_talon/apps/platforms/win/windows_terminal/windows_terminal.talon
================================================================================

app: windows_terminal
-
# makes the commands in generic_terminal available
tag(): terminal

# activates the implementation of the commands/functions in generic_terminal
tag(): user.generic_windows_shell

# makes commands for certain applications available
# you can deactivate them if you do not use the application
tag(): user.git
tag(): user.anaconda
# tag(): user.kubectl

tag(): user.tabs
# TODO: file_manager
tag(): user.splits

settings open : key(ctrl-,)
focus left: key(ctrl-alt-shift-left)
focus right: key(ctrl-alt-shift-right)
focus up: key(ctrl-alt-shift-up)
focus down: key(ctrl-alt-shift-down)
term menu: key(ctrl-shift-f1)

find it:
    edit.find()

find it <phrase>$:
    # handle consecutive finds by first escaping out of any previous one
    key(escape)
    # make it so
    edit.find("{phrase}\n")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (comment)
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (tag_import_declaration
      (identifier))
    (comment)
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (comment)
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_escape_sequence)))))))))

================================================================================
106. File knausj_talon/apps/platforms/win/sumatrapdf/sumatrapdf.talon
================================================================================

app: sumatrapdf
-
# Set tags
tag(): user.pages
tag(): user.tabs

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))))

================================================================================
107. File knausj_talon/apps/platforms/win/explorer/explorer.talon
================================================================================

app: windows_explorer
app: windows_file_browser
-
tag(): user.file_manager
^go <user.letter>$: user.file_manager_open_volume("{letter}:")
go app data: user.file_manager_open_directory("%AppData%")
go program files: user.file_manager_open_directory("%programfiles%")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
108. File knausj_talon/apps/platforms/win/powershell/power_shell.talon
================================================================================

os: windows
and app.name: Windows PowerShell
os: windows
and app.exe: powershell.exe
-
# makes the commands in generic_terminal available
tag(): terminal

# activates the implementation of the commands/functions in generic_terminal
tag(): user.generic_windows_shell

# makes commands for certain applications available
# you can deactivate them if you do not use the application
tag(): user.git
tag(): user.anaconda
# tag(): user.kubectl

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (comment)
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier)))
  (comment))

================================================================================
109. File knausj_talon/apps/platforms/win/nitro_reader/nitro_reader_5.talon
================================================================================

app: nitro_reader_five
-
# Set tags
tag(): user.pages
tag(): user.tabs

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))))

================================================================================
110. File knausj_talon/apps/platforms/win/outlook/outlook.talon
================================================================================

os: windows
and app: Outlook
-
archive: key(alt h o 1)
new e-mail: key(ctrl-n)
calendar: key(ctrl-2)
inbox: key(ctrl-1)
Reply: key(ctrl-r)
Reply all: key(ctrl-shift-r)
Forward: key(ctrl-f)
accept: key(shift-f10 c c enter)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
111. File knausj_talon/apps/platforms/mac/iterm/iterm.talon
================================================================================

os: mac
app: iterm2
-
tag(): terminal
# todo: filemanager support
#tag(): user.file_manager
tag(): user.generic_unix_shell
tag(): user.git
tag(): user.kubectl
tag(): user.tabs

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))))

================================================================================
112. File knausj_talon/apps/platforms/mac/terminal/apple_terminal.talon
================================================================================

app: apple_terminal
-
# makes the commands in generic_terminal available
tag(): terminal

# activates the implementation of the commands/functions in generic_terminal
tag(): user.generic_unix_shell

# makes commands for certain applications available
# you can deactivate them if you do not use the application
tag(): user.git
tag(): user.anaconda
tag(): user.kubectl

# TODO: explain
tag(): user.tabs
tag(): user.file_manager

suspend:
    key(ctrl-z)
resume:
    insert("fg")
    key(enter)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (comment)
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
113. File knausj_talon/apps/platforms/mac/notes/notes.talon
================================================================================

os: mac
and app: notes
-

new note: key(cmd-n)
duplicate note: key(cmd-d)
new folder: key(shift-cmd-n)
toggle folders: key(alt-cmd-s)
show main: key(cmd-0)
list view: key(cmd-1)
gallery view: key(cmd-2)
toggle attachments: key(cmd-3)
find all: key(alt-cmd-f)
print note: key(cmd-p)
attach file: key(shift-cmd-a)
create link: key(cmd-k)
insert table: key(alt-cmd-t)
apply title: key(shift-cmd-t)
apply heading: key(shift-cmd-h)
apply subheading: key(shift-cmd-j)
apply body: key(shift-cmd-b)
apply mono: key(shift-cmd-m)
apply bullet: key(shift-cmd-7)
apply dash: key(shift-cmd-8)
apply number: key(shift-cmd-9)
apply checklist: key(shift-cmd-l)
increase font: key(cmd-+)
decrease font: key(cmd--)
line break: key(ctrl-enter)
mark: key(shift-cmd-u)
drag [line] down: key('ctrl-cmd-down')
drag [line] up: key('ctrl-cmd-up')

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
114. File knausj_talon/apps/platforms/mac/finder/finder.talon
================================================================================

os: mac
app: finder
-
tag(): user.file_manager
tag(): user.tabs
preferences: key(cmd-,)
options: key(cmd-j)
search: key(cmd-alt-f)

# bit of a mouthful, but it's probably not the kind of thing you'd be saying frequently
sort by none: key(ctrl-alt-cmd-0)
sort by name: key(ctrl-alt-cmd-1)
sort by kind: key(ctrl-alt-cmd-2)
sort by date opened: key(ctrl-alt-cmd-3)
sort by date added: key(ctrl-alt-cmd-4)
sort by date modified: key(ctrl-alt-cmd-5)
sort by size: key(ctrl-alt-cmd-6)

icon view: key(cmd-1)
column view: key(cmd-3)
list view: key(cmd-2)
gallery view: key(cmd-4)

copy path: key(alt-cmd-c)
trash it: key(cmd-backspace)

hide [finder]: key(cmd-h)
hide others: app.window_hide_others()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
115. File knausj_talon/apps/platforms/mac/rstudio.talon
================================================================================

os: mac
app: RStudio
-

run that: key("cmd-enter")
run document:                    key("cmd-alt-r")
run from top:                    key("cmd-alt-b")
run to end:                      key("cmd-alt-e")
run (function|funk):             key("cmd-alt-f")
run section:                     key("cmd-alt-t")
run previous chunks:             key("cmd-alt-p")
run chunk:                       key("cmd-alt-c")
run next chunk:                  key("cmd-alt-n")
run all:                         key("cmd-shift-s")
run knitter:                     key("cmd-shift-k")
run profiler:                    key("cmd-shift-alt-p")

# Moving around and formatting
jump back:                       key("cmd-f9")
jump forward:                    key("cmd-f10")
close all tabs:                  key("cmd-shift-w")
indent lines:                    key("cmd-i")
toggle comment:                  key("cmd-shift-c")
reformat comment:                key("cmd-shift-/")
reformat R code:                 key("cmd-shift-a")
line up:                         key("alt-up")
line down:                       key("alt-down")
duplicate line up:               key("cmd-alt-up")
duplicate line [down]:           key("cmd-alt-down")
select to paren:                 key("ctrl-shift-e")
select to matching paren:        key("ctrl-shift-alt-e")
jump to matching:                key("ctrl-p")
expand selection:                key("shift-alt-cmd-up")
reduce selection:                key("shift-alt-cmd-down")
add cursor up:                   key("ctrl-alt-up")
add cursor down:                 key("ctrl-alt-down")
move active cursor up:           key("ctrl-alt-shift-up")
move active cursor down:         key("ctrl-alt-shift-down")
delete line:                     key("cmd-d")
delete word left:                key("alt-backspace")
delete word right:               key("alt-delete")
assign that:                     key("alt--")
pipe that:                       key("cmd-shift-m")
insert knitter chunk:            key("cmd-alt-i")

# Folding
fold that:                       key("cmd-alt-l")
unfold that:                     key("cmd-shift-alt-l")
fold all:                        key("cmd-alt-o")
unfold all:                      key("cmd-shift-alt-o")

# Find and replace
find and replace:                key("cmd-f")
find next:                       key("cmd-g")
find previous:                   key("cmd-shift-g")
find with selection:             key("cmd-e")
find in files:                   key("cmd-shift-f")
run replace:                     key("cmd-shift-j")
run spell check:                 key("f7")

# Navigation and panels
go to source:                    key("ctrl-1")
go to console:                   key("ctrl-2")
go to help:                      key("ctrl-3")
go to history:                   key("ctrl-4")
go to files:                     key("ctrl-5")
go to (plots|plot):              key("ctrl-6")
go to packages:                  key("ctrl-7")
go to environment:               key("ctrl-8")
go to git:                       key("ctrl-9")
go to build:                     key("ctrl-0")
go to terminal:                  key("alt-shift-t")
go to omni:                      key("ctrl-.")
go to line:                      key("cmd-shift-alt-g")
go to section:                   key("cmd-shift-alt-j")
go to tab:                       key("ctrl-shift-.")
go to previous tab:              key("ctrl-f11")
go to next tab:                  key("ctrl-f12")
go to first tab:                 key("ctrl-shift-f11")
go to last tab:                  key("ctrl-shift-f12")

zoom source:                     key("ctrl-shift-1")
(zoom|show) all:                 key("ctrl-shift-0")

help that:                       key("f1")
define that:                     key("f2")
previous plot:                   key("cmd-alt-f11")
next plot:                       key("cmd-alt-f12")

# devtools, package development, and session management
restart R session:               key("cmd-shift-f10")
dev tools build:                 key("cmd-shift-b")
dev tools load all:              key("cmd-shift-l")
dev tools test:                  key("cmd-shift-t")
dev tools check:                 key("cmd-shift-e")
dev tools document:              key("cmd-shift-d")

# Debugging
toggle breakpoint:               key("shift-f9")
debug next:                      key("f10")
debug step into (function|funk): key("shift-f4")
debug finish (function|funk):    key("shift-f6")
debug continue:                  key("shift-f5")
debug stop:                      key("shift-f8")

# Git/SVN
run git diff:                    key("ctrl-alt-d")
run git commit:                  key("ctrl-alt-m")

# Other shortcuts that could be enabled
# run line and stay:             key("alt-enter")
# run and echo all:              key("cmd-shift-enter")
# extract (function|funk):       key("cmd-alt-x")
# extract variable:              key("cmd-alt-v")
# new terminal:                  key("shift-alt-t")
# rename current terminal:       key("shift-alt-r")
# clear current terminal:        key("ctrl-shift-l")
# previous terminal:             key("ctrl-alt-f11")
# next terminal:                 key("ctrl-alt-f12")
# clear console:                 key("ctrl-l")
# popup history:                 key("cmd-up")
# change working directory:      key("ctrl-shift-h")
# new document:                  key("cmd-shift-n")
# new document (chrome only):    key("cmd-shift-alt-n")
# insert code section:           key("cmd-shift-r")
# scroll diff view:              key("ctrl-up/down")
# sync editor & pdf preview:     key("cmd-f8")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string))))))
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment)
  (comment))

================================================================================
116. File knausj_talon/apps/platforms/linux/taskwarrior.talon
================================================================================

os: linux
tag: terminal
and tag: user.taskwarrior
-
# general
task version: "task --version\n"
task commands: "task commands\n"
task help: "task help\n"

# task list
task list: "task list\n"
task list orphans: "task project: list\n"
task list untagged: "task tags.none: list\n"
task list <user.text>: "task list {text}\n"
task list project: "task list project: "
task list project <user.text>: "task list project:{text}\n"

# task add
task add: "task add "
task add <user.text>: "task add {text}\n"
task undo: "task undo\n"

(tasks|task next): "task next\n"

# task editing
task <number> edit$: "task {number} edit"

# task completion
task <number> done$: "task {number} done"
task <number> delete$: "task {number} delete"

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word))
        (end_anchor))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word))
        (end_anchor))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word))
        (end_anchor))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))))

================================================================================
117. File knausj_talon/apps/platforms/linux/tmux.talon
================================================================================

os: linux
tag: user.tmux
-
mux: "tmux "

#session management
mux new session:
    insert('tmux new ')
mux sessions:
    key(ctrl-b)
    key(s)
mux name session:
    key(ctrl-b)
    key($)
mux kill session:
    insert('tmux kill-session -t ')
#window management
mux new window:
    key(ctrl-b)
    key(c)
mux window <number>:
    key(ctrl-b )
    key('{number}')
mux previous window:
    key(ctrl-b)
    key(p)
mux next window:
    key(ctrl-b)
    key(n)
mux rename window:
    key(ctrl-b)
    key(,)
mux close window:
    key(ctrl-b)
    key(&)
#pane management
mux split horizontal:
    key(ctrl-b)
    key(%)
mux split vertical:
    key(ctrl-b)
    key(")
mux next pane:
    key(ctrl-b)
    key(o)
mux move <user.arrow_key>:
    key(ctrl-b)
    key(arrow_key)
mux close pane:
    key(ctrl-b)
    key(x)
#Say a number right after this command, to switch to pane
mux pane numbers:
    key(ctrl-b)
    key(q)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
118. File knausj_talon/apps/platforms/linux/atril/atril.talon
================================================================================

app: atril
-
# Set tags
tag(): user.pages

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))))

================================================================================
119. File knausj_talon/apps/platforms/linux/termite.talon
================================================================================

app: termite
and not win.title: /VIM/
-
#comment or remove tags for command sets you don't want
#termite doesn't support the file_manager stuff yet
#tag(): user.file_manager
tag(): user.kubectl
tag(): user.git
tag(): user.taskwarrior
tag(): terminal

# Selection mode
shell yank: key("y")
shell select: key("ctrl-shift-space")
shell insert: key("escape")
visual line: key("v")
visual line mode: key("V")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (match_modifier)
      (identifier)
      (implicit_string)))
  (comment)
  (comment)
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
120. File knausj_talon/apps/platforms/linux/gnome-terminal/gnome-terminal.talon
================================================================================

app: gnome_terminal
-
# Set tags
tag(): terminal
tag(): user.tabs
tag(): user.generic_unix_shell
tag(): user.git
tag(): user.kubectl

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))))

================================================================================
121. File knausj_talon/apps/platforms/linux/nautilus/nautilus.talon
================================================================================

app: nautilus
-
# Set tags
tag(): user.tabs
tag(): user.file_manager

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))))

================================================================================
122. File knausj_talon/apps/platforms/linux/kde-konsole/kde-konsole.talon
================================================================================

os: linux
and app.name: konsole
-
# makes the commands in generic_terminal available
tag(): terminal

# activates the implementation of the commands/functions in generic_terminal
tag(): user.generic_unix_shell

# makes commands for certain applications available
# you can deactivate them if you do not use the application
tag(): user.git
tag(): user.anaconda
# tag(): user.kubectl


tag(): user.tabs
# TODO: add file_manager support

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (comment)
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (tag_import_declaration
      (identifier)))
  (comment))

================================================================================
123. File knausj_talon/apps/platforms/linux/evince/evince.talon
================================================================================

app: evince
-
# Set tags
tag(): user.pages

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))))

================================================================================
124. File knausj_talon/apps/platforms/linux/signal.talon
================================================================================

app: signal
-
show shortcuts: key("ctrl-/")

# Note that the order below matches Keyboard Shortcuts listings

# Navigation
(next|nav|navigate) [by] (sec|section): key("ctrl-t")
(prev|previous) (chat|conversation): key("alt-down")
next (chat|conversation): key("alt-up")
(prev|previous) unread: key("alt-shift-down")
next unread: key("alt-shift-up")
[open] (pref|preferences): key("ctrl-,")
open conversation menu: key("ctrl-shift-l")
search: key("ctrl-f")
search chat: key("ctrl-shift-f")
focus (chat|composer): key("ctrl-shift-t")
open media: key("ctrl-shift-m")
open emoji: key("ctrl-shift-j")
open sticker: key("ctrl-shift-s")
record [voice] message: key("ctrl-shift-v")
archive chat: key("ctrl-shift-a")
unarchive chat: key("ctrl-shift-u")
(first|top) message: key("ctrl-up")
(last|bottom) message: key("ctrl-down")
close chat: key("ctrl-shift-c")

# Messages
send it: key("enter")
message details: key("ctrl-d")
reply [message]: key("ctrl-shift-r")
react [message]: key("ctrl-shift-e")
save attachment: key("ctrl-s")
delete [message]: key("ctrl-shift-d")

# Composer
send message: key("ctrl-enter")
expand chat: key("ctrl-shift-x")
attach [file]: key("ctrl-u")
remove [link] preview: key("ctrl-p")
remove [link] attachment: key("ctrl-shift-p")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
125. File knausj_talon/apps/platforms/linux/dunst.talon
================================================================================

os: linux
-

show notifications: key(ctrl-`)
dismiss [notifications]: user.system_command('dunstctl close')
dismiss all [notifications]: user.system_command('dunstctl close-all')
#dunce pause: user.system_command('notify-send "DUNST_COMMAND_PAUSE"')
#dunce resume: user.system_command('notify-send "DUNST_COMMAND_RESUME"')
#test notification: user.system_command('notify-send "Hello from Talon"')

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))))))))
  (comment)
  (comment)
  (comment))

================================================================================
126. File knausj_talon/apps/platforms/linux/keepassx.talon
================================================================================

app: keepass
-
# Database
open database: key(ctrl-o)
save database: key(ctrl-s)
close database: key(ctrl-w)
lock database: key(ctrl-l)
quit: key(ctrl-q)

# Entries
[add] new entry: key(ctrl-n)
clone entry: key(ctrl-k)
(view|edit) entry: key(ctrl-e)
delete entry: key(ctrl-d)
copy user [name]: key(ctrl-b)
copy password: key(ctrl-c)
open (earl|url|link): key(ctrl-u)
copy (earl|url|link): key(ctrl-alt-u)
find: key(ctrl-f)
find <user.text>:
    key(ctrl-f)
    insert("{text}")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))))))

================================================================================
127. File knausj_talon/apps/gdb/gdb.talon
================================================================================

os: linux
# XXX - this matches .gdb files atm
#win.title: /gdb/
tag: terminal
mode: user.gdb
-
tag(): user.gdb
tag(): user.debugger
until <number>: "until {number}"
force clear all break points:
    insert("d br\n")
    insert("y\n")
break [on] clipboard:
    insert("break ")
    key(ctrl-shift-v)
    key(enter)

# information
list [source]: "list\n"
info source: "info source\n"

print: "p "
print [variable] <user.text>: "p {text}"
print hex: "p/x "
print hex [variable] <user.text>: "p/x {text}"
print string: "p/s "

# hexdumping
# XXX - switch the sizes to a list in python?
# XXX - should cache the last used size
hex dump <number> bytes: "x/{number}bx "
hex dump <number> (half|short) words: "x/{number}hx "
hex dump <number> (d|long) words: "x/{number}dx "
hex dump <number> quad words: "x/{number}gx "
# this is some arbitrary default for convenience
hex dump: "x/100gx "
hex dump highlighted:
    insert("x/100gx ")
    edit.copy()
    edit.paste()
    key(enter)
hex dump clipboard:
    insert("x/100gx ")
    edit.paste()
    key(enter)


# execution
source: "source \t\t"

# displays
# XXX - move thee invoke command into a python script
(list|show|info) display: "info display\n"
display assembly line$: "display /i $pc\n"
display source: "display "
enable display <number_small>: "enable display {number_small}\n"
disable display <number_small>: "disable display {number_small}\n"
undisplay: "undisplay\n"

# variables
(list|show|info) local: "info local "
(list|show|info) local typed: "info local -t "
(list|show|info) variable: "info variable "
(list|show|info) variable typed: "info variable -t "
(list|show|info) locals: "info local\n"
(list|show|info) variables: "info variables\n"

# threads
info threads: "info threads\n"

restart [program]: "r\n"
continue: "c\n"
back trace: "bt\n"
debug quit: "quit\n"
# more quickly quit when there are inferiors
debug force quit: "quit\ny\n"
(show|info) (inf|inferiors): "info inferiors\n"
inferior <number_small>$: "inferior {number_small}\n"
inferior: "inferior "
resume main (inf|inferior):
    insert("inferior 1\n")
    insert("c\n")
resume [from] (inf|inferior) <number_small>$:
    insert("inferior {number_small}\n")
    insert("c\n")

# arguments
set args: "set args "

# settings
show follow (fork|forks) [mode]: "show follow-fork-mode\n"
[set] follow (fork|forks) [mode] child: "set follow-fork-mode child\n"
[set] follow (fork|forks) [mode] parent: "set follow-fork-mode parent\n"

show detach on fork: "show detach-on-fork\n"
set detach on fork: "set detach-on-fork on\n"
unset detach on fork: "set detach-on-fork off\n"

# list
show list size: "show listsize\n"
set list size <number_small>: "set listsize {number_small}\n"

# misc
clear screen: "shell clear\n"

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (comment)
    (comment)
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)
            (string_escape_sequence)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_escape_sequence)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_escape_sequence)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))))

================================================================================
128. File knausj_talon/apps/discord/discord.talon
================================================================================

app: discord
-
tag(): user.messaging
tag(): user.emoji

# Navigation: Channels
[channel] mentions last: user.discord_mentions_last()
[channel] mentions next: user.discord_mentions_next()
oldest unread: user.discord_oldest_unread()

# UI
toggle pins: user.discord_toggle_pins()
toggle inbox: user.discord_toggle_inbox()
toggle (members | member list): user.discord_toggle_members()
pick emoji: user.discord_emoji_picker()
pick (jif | gif | gift): user.discord_gif_picker()

# Misc
mark inbox channel read: user.discord_mark_inbox_read()
[toggle] (mute | unmute): user.discord_mute()
[toggle] (deafen | undeafen): user.discord_deafen()
answer call: user.discord_answer_call()
decline call: user.discord_decline_call()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
129. File knausj_talon/apps/eclipse/eclipse.talon
================================================================================

#custom eclipse commands go here
app: eclipse
-
tag(): user.find_and_replace
tag(): user.line_commands
# tag(): user.multiple_cursors
# tag(): user.snippets
tag(): user.splits
tag(): user.tabs
# splits.py support end

please [<user.text>]:
    key(ctrl-3)
    insert(user.text or "")

# Sidebar
bar explore: key(alt-shift-w p)
# bar extensions:
bar outline: key(alt-shift-q o)

# bar run:

# bar source:
# bar switch:

# Panels
# panel control:
panel output:
    key(alt-shift-q)
    sleep(200ms)
    key(c)
panel problems:
    key(alt-shift-q)
    sleep(200ms)
    key(x)
panel errors:
    key(alt-shift-q)
    sleep(200ms)
    key(l)
panel breakpoints:
    key(alt-shift-q)
    sleep(200ms)
    key(b)
panel search:
    key(alt-shift-q)
    sleep(200ms)
    key(s)
panel variables:
    key(alt-shift-q)
    sleep(200ms)
    key(v)
# panel switch:
# panel terminal:

# Settings
show settings: key(alt-w p)
show shortcuts: key(ctrl-shift-l)
#show snippets:

# Display
# centered switch:
# fullscreen switch:
# theme switch:
# wrap switch:
# zen switch:

# File Commands
file hunt [<user.text>]:
    key(ctrl-shift-r)
    sleep(50ms)
    insert(text or "")
# file copy path:
# file create sibling:
file create: key(ctrl-n)
file open folder: key(alt-shift-w x)
file rename:
    key(alt-shift-w p enter f2)
file reveal: key(alt-shift-w p enter)

# Language Features
# suggest show:
# hint show:
# definition show:
# definition peek:
# definition side:
# references show:
# references find:
# format that:
# format selection:
imports fix: key(ctrl-shift-o)
# problem last:
# problem fix:
# rename that:
# refactor that:
# whitespace trim:
# language switch:
refactor rename: key(alt-shift-r)
refactor this: key(alt-shift-i)

#code navigation
(go declaration | follow): key(f3)
go back: key(alt-left)
go forward: key(alt-right)
# go implementation:
# go recent:
# go type:
# go usage:

# Bookmarks.
#requires https://marketplace.eclipse.org/content/quick-bookmarks
go marks: key(alt-end)
toggle mark: key(ctrl-alt-b down enter)
go next mark: key(alt-pagedown)
go last mark: key(alt-pageup)

# Folding
# fold that:
# unfold that:
# fold those:
# unfold those:
# fold all:
# unfold all:
# fold comments:

#Debugging
break point: key(ctrl-shift-b)
step over: key(f6)
debug step into: key(f5)
debug step out [of]: key(f7)
#debug start: user.vscode("workbench.action.debug.start")
#debug pause:
#debug stopper:
debug continue: key(f8)
#debug restart:

# Terminal
# terminal external: user.vscode("workbench.action.terminal.openNativeConsole")

# terminal new: user.vscode("workbench.action.terminal.new")
# terminal next: user.vscode("workbench.action.terminal.focusNextPane")
# terminal last:user.vscode("workbench.action.terminal.focusPreviousPane")
# terminal split: user.vscode("workbench.action.terminal.split")
# terminal trash: user.vscode("Terminal:Kill")
# terminal scroll up: user.vscode("Terminal:ScrollUp")
# terminal scroll down: user.vscode("Terminal:ScrollDown")

#TODO: should this be added to linecommands?
copy line down: key(ctrl-alt-down)
copy line up: key(ctrl-alt-up)

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
130. File knausj_talon/apps/visualstudio/visual_studio.talon
================================================================================

os: windows
app: visual_studio
-
tag(): user.tabs
tag(): user.line_commands
tag(): user.find_and_replace
tag(): user.snippets
tag(): user.multiple_cursors
#multiple_cursor.py support end

# Panels
panel solution: key(ctrl-alt-l)
panel properties: key(f4)
panel output: key(ctrl-alt-o)
panel class: key(ctrl-shift-c)
panel errors: key(ctrl-\ ctrl-e)
panel design: key(shift-f7)
panel marks: key(ctrl-k ctrl-w)
panel breakpoints: key(ctrl-alt-b)

# Settings
show settings: key(alt-t o)
#show shortcuts:
#show snippets:

# Display
fullscreen switch: key(shift-alt-enter)
wrap switch: key(ctrl-e ctrl-w)

# File Commands
file hunt [<user.text>]:
    key(ctrl-shift-t)
    insert(text or "")
file create: key(ctrl-n)
#file open folder:
file rename: key(ctrl-[ s f2)
file reveal: key(ctrl-[ s)

# Language Features
hint show: key(ctrl-shift-space)
definition show: key(f12)
definition peek: key(alt-f12)
references find: key(shift-f12)
format that: key(ctrl-k ctrl-d)
format selection: key(ctrl-k ctrl-f)
imports fix: key(ctrl-r ctrl-g)

# problem next:
# problem last:
# problem fix:
refactor field: key(ctrl-r ctrl-e)
refactor interface: key(ctrl-r ctrl-i)
refactor method: key(ctrl-r ctrl-m)
refactor reorder parameters: key(ctrl-r ctrl-o)
refactor remove parameters: key(ctrl-r ctrl-v)
refactor that: key(ctrl-r ctrl-r)

#code navigation
(go declaration | follow): key(ctrl-f12)
go back: key(ctrl--)
go forward: key(ctrl-shift--)
go implementation: key(f12)
go recent [<user.text>]:
    key(ctrl-1 ctrl-r)
    sleep(100ms)
    insert(text or "")
go type [<user.text>]:
    key(ctrl-1 ctrl-t)
    sleep(100ms)
    insert(text or "")
go member [<user.text>]:
    key(alt-\)
    sleep(100ms)
    insert(text or "")
go usage: key(shift-f12)

# Bookmarks.
go marks: key(ctrl-k ctrl-w)
toggle mark: key(ctrl-k ctrl-k)
go next mark: key(ctrl-k ctrl-n)
go last mark: key(ctrl-k ctrl-p)

# Folding
fold toggle: key(ctrl-m ctrl-m)
fold toggle all: key(ctrl-m ctrl-l)
fold definitions: key(ctrl-m ctrl-o)

#Debugging
break point: key(f9)
step over: key(f10)
debug step into: key(f11)
debug step out [of]: key(f10)
debug start: key(f5)
debug stopper: key(shift-f5)
debug continue: key(f5)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
131. File knausj_talon/apps/evernote/mac.talon
================================================================================

app: evernote
os: mac
-
settings():
    # Necessary to stop commands like 'slap' getting jumbled
    key_wait = 9.0

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (settings_declaration
      (comment)
      (block
        (assignment_statement
          (identifier)
          (float))))))

================================================================================
132. File knausj_talon/apps/web/github.talon
================================================================================

# https://help.github.com/en/github/getting-started-with-github/keyboard-shortcuts
tag: browser
browser.host: github.com
-

# site wide shortcuts
focus search: key(s)
go to notifications: insert("gn")
go to dashboard: insert("gd")
(keyboard shortcuts show | show keyboard shortcuts): key(?)
(selection move down | move selection down): key(j)
(selection move up | move selection up): key(k)
(selection toggle | toggle selection): key(x)
(selection open | open selection): key(o)

# repositories
go to code: insert("gc")
go to issues: insert("gi")
go to pull requests: insert("gp")
go to wiki: insert("gw")
go to actions: insert("ga")
go to projects: insert("gb")
go to discussions: insert("gg")

# source code editing
[web] editor open: key(.)

# source code browsing
(file find | find file): key(t)
jump to line: key(l)
((branch|tag) switch | switch (branch|tag)): key(w)
(url expand | expand url): key(y)
(show|hide) comments: key(i)
blame view open: key(b)
(show|hide) annotations: key(a)

# issues
(issue create | create [an] issue): key(c)
search (issues|[pull] requests): key(/)
(filter by|edit) labels: key(l)
(filter by|edit) milestones: key(m)
(filter by|edit) assignee: key(a)
reply: key(r)
(comment submit | submit comment): key(ctrl-enter)
(comment preview | preview comment): key(ctrl-shift-p)
git hub full screen: key(ctrl-shift-l)

# browsing commit
(form close | close form): key(escape)
parent commit: key(p)
other parent commit: key(o)

# notifications
mark as read: key(y)
(thread mute | mute thread): key(shift-m)

# issue or pull request list
(issue open | open issue): key(o)
(issue create | create issue): key(c)

# issues and pull requests
reviewer request: key(q)
milestone set: key(m)
assignee set: key(a)
label set: key(l)

# actions
go to workflow: insert("gf")
timestamps toggle: key(shift-t)
fullscreen toggle: key(shift-f)

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word)
              (word))
            (seq
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word)
              (word))
            (seq
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word)
              (word))
            (seq
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (parenthesized_rule
                (choice
                  (word)
                  (word)))
              (word))
            (seq
              (word)
              (parenthesized_rule
                (choice
                  (word)
                  (word)))))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (optional
                (word))
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (optional
                  (word))
                (word))))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
133. File knausj_talon/apps/web/twitter.talon
================================================================================

tag: browser
browser.host: twitter.com
#win.title: /Twitter/
-

# navigation
(show shortcuts|shortcuts help): key(?)
next tweet: key(j)
previous tweet: key(k)
page down: key(space)
load new tweet: key(.)
go home: insert("gh")
go explore: insert("ge")
go notifications: insert("gn")
go mentions: insert("gr")
go profile: insert("gp")
go likes: insert("gl")
go lists: insert("gi")
go direct messages: insert("gm")
go settings: insert("gs")
go book marks: insert("gb")
go to user: insert("gu")
display settings: insert("gd")
# actions
new tweet: key(n)
send tweet: key(ctrl-enter)
new direct message: key(m)
search: key(/)
like message: key(l)
reply message: key(r)
re tweet [message]: key(t)
share tweet: key(s)
bookmark: key(b)
mute account: key(urge)
block account: key(x)
open details: key(enter)
expand photo: key(o)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string))
    (comment))
  (comment)
  (declarations
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
134. File knausj_talon/apps/web/outlook.talon
================================================================================

# https://support.office.com/en-us/article/keyboard-shortcuts-for-outlook-3cdeb221-7ae5-4c1d-8c1d-9e63216c1efd#PickTab=Web
# the shortcuts below our based half of the bill in short cut menu, but the
# link above has significantly more that could so be added

os: linux
tag: browser
win.title: /Outlook/
-

# write email
new message: key(n)
send [this] message: key(alt-s)
reply [to] [this] message: key(r)
reply all [to] [this] message: key(ctrl-shift-r)
forward [this] message: key(ctrl-shift-f)
save [draft]: key(ctrl-s)
discard [draft]: key(esc)
insert [a] [hyper] link: key(ctrl-k)

# email list
(select|unselect) [this] message: key(ctrl-space)
select all [messages]: key(ctrl-a)
clear all [messages]: key(esc)
select first [message]: key(home)
select last [message]: key(and)

# read email
open [this] message: key(o)
open [this] message [in] [a] new window: key(shift-enter)
close [this] message: key(esc)
[open] [the] next (item|message): key(ctrl-.)
[open] [the] (prev|previous) item: key(ctrl-,)
next reading [pane] (item|message): key(.)
(prev|previous) [pane] (item|message): key(,)
(expand|collapse) [conversation]: key(x)

# go to
go [to] mail: key(ctrl-shift-1)
go [to] calendar: key(ctrl-shift-2)
go [to] people: key(ctrl-shift-3)
go [to] to do: key(ctrl-shift-4)
go [to] inbox:
    key(g)
    key(i)
go to drafts:
    key(g)
    key(d)
go to sent:
    key(g)
    key(s)
search [email]: key(alt-q)
show help: key(?)

# email actions
undo [last] [action]: key(ctrl-z)
delete [this] [message]: key(delete)
(perm|permanently) delete [this] [message]: key(shift+delete)
new folder: key(shift-e)
mark [this] [(item|message)] as read: key(q)
mark [this] [(item|message)] as unread: key(u)
flag [this] [(item|message)]: key(insert)
archive: key(e)
mark [this] [message] [as] junk: key(j)
moved to [a] folder: key(v)
categorize [this] message: key(c)

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (comment)
    (comment)
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (optional
            (word))
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (optional
            (word))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (parenthesized_rule
              (choice
                (word)
                (word))))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (parenthesized_rule
              (choice
                (word)
                (word))))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (parenthesized_rule
              (choice
                (word)
                (word))))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (word))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
135. File knausj_talon/apps/web/protonmail.talon
================================================================================

tag: browser
win.title: /ProtonMail/
-
# General
## Application
open help: key(?)
[focus] search: key(/)
confirm active: key(enter)
close active: key(escape)
open command [palette]: key(shift-space)

## Composer
new message: key(c)
send message: key(ctrl-enter)
save message: key(ctrl-s)

# Mail
## Jumping
(go|jump) [to] inbox:
    key(g)
    key(i)
(go|jump) [to] draft:
    key(g)
    key(d)
(go|jump) [to] sent:
    key(g)
    key(s)
(go|jump) [to] starred:
    key(g)
    key(.)
(go|jump) [to] archive:
    key(g)
    key(a)
(go|jump) [to] spam:
    key(g)
    key(x)
(go|jump) [to] trash:
    key(g)
    key(t)

## Navigation
(prev|previous) message: key(up)
next message: key(down)
exit message: key(left)
enter message: key(right)
(show|display) newer [message]: key(k)
(show|display) older [message]: key(j)
open message: key(enter)
go back: key(escape)

## Threadlist
select all:
    key(*)
    key(a)
(deselect|unselect) all:
    key(*)
    key(n)
select [the] (message|conversation): key(x)
mark [as] read: key(r)
mark [as] unread: key(u)
star (message|conversation): key(.)
move to inbox: key(i)
move to trash: key(t)
move to archive: key(a)
move to spam: key(s)

## Actions
reply to (message|conversation): key(shift-r)
reply all [to] (message|conversation): key(shift-a)
forward (message|conversation): key(shift-f)

# Contacts
## Contact List
(prev|previous) contact: key(up)
next contact: key(down)
enter contact: key(right)
delete contact: key(t)

## Contact Details
exit contact: key(left)
save contact: key(ctrl-s)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
136. File knausj_talon/apps/web/gitlab.talon
================================================================================

# Shortcuts taken from: https://docs.gitlab.com/ee/user/shortcuts.html
#

tag: browser
browser.host: /gitlab\.com/
#win.title: /GitLab/
-

# global shortcuts
show shortcuts: key(?)
go to projects [page]: key(shift-p)
go to groups [page]: key(shift-g)
go to activity [page]: key(shift-a)
go to milestones [page]: key(shift-l)
go to snippets [page]: key(shift-s)
search page: key(s)
go to issues [page]: key(shift-i)
go to merge requests [page]: key(shift-m)
go to to do [list] [page]: key(shift-t)
(show|hide) performance bar: key(p)

edit last comment: key(1)
toggle mark down [preview]: key(ctrl-shift-p)

# projects
go [to] project home [page]: insert("gp")
go [to] project activity [feed]: insert("gv")
go [to] project releases [list]: insert("gr")
go [to] project files [list]: insert("gf")
go [to] project file search [page]: key(t)
go [to] project (commit|commits) [list]: insert("gc")
go [to] (repository|repo) graph [page]: insert("gn")
go [to] (repository|repo) charts: insert("gd")
go [to] project issues [list]: insert("gi")
go [to] new issues [list]: insert("i")
go [to] project issues boards [list]: insert("gb")
go [to] project merge requests [list]: insert("gm")
go [to] jobs [list]: insert("gj")
go [to] project metrics: insert("gl")
go [to] project environments: insert("ge")
go [to] project cubes: insert("gk")
go [to] project snippets [list]: insert("gs")
go [to] project wiki: insert("gw")

# issues and merge requests
edit description: key(e)
change assignee: key(a)
change milestone: key(m)
change label: key(l)
right comment: key(r)
next [unresolved] discussion: key(n)
previous [unresolved] discussion: key(p)
next file: key(])
previous file: key([)

# project files
back to files: key(escape)
open permalink: key(y)

# wiki pages
edit page: key(e)

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (comment)
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string))
    (comment))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)
          (optional
            (word))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
137. File knausj_talon/apps/generic_debugger.talon
================================================================================

tag: debugger
-

# Code execution

## instruction level
step into: user.debugger_step_into()
step over: user.debugger_step_over()

## line level
step line: user.debugger_step_line()
step over line: user.debugger_step_over_line()
step out: user.debugger_step_out()
continue: user.debugger_continue()

## these are multi word to avoid accidental utterance
debug start: user.debugger_start()
debug stop: user.debugger_stop()
debug exit: user.debugger_exit()
debug detach: user.debugger_detach()
debug restart: user.debugger_restart()

# Register
show registers: user.debugger_show_registers()
# XXX -
get register: user.debugger_get_register()
set register: user.debugger_set_register()

# Breakpoints
break now: user.debugger_break_now()
break here: user.debugger_break_here()
(list|show) (breaks|break points): user.debugger_show_breakpoints()
(set|add) (break|break point): user.debugger_add_sw_breakpoint()
(set|add) hardware (break|break point): user.debugger_add_hw_breakpoint()
clear all (breaks|break points): user.debugger_clear_all_breakpoints()
clear (break|break point): user.debugger_clear_breakpoint()
clear (break|break point) <number_small>:
    user.debugger_clear_breakpoint_id(number_small)
disable all (breaks|break points): user.debugger_disable_all_breakpoints()
disable (break|break point): user.debugger_disable_breakpoint()
disable (break|break point) <number_small>:
    user.debugger_disable_breakpoint_id(number_small)
enable all (breaks|break points): user.debugger_enable_all_breakpoints()
enable (break|break point): user.debugger_enable_breakpoint()
enable (break|break point) <number_small>:
    user.debugger_enable_breakpoint_id(number_small)

# Navigation


# Memory Inspection
(stack|back) trace: user.debugger_backtrace()
disassemble: user.debugger_disassemble()
disassemble here: user.debugger_disassemble_here()
disassemble clipboard: user.debugger_disassemble_clipboard()
jump to address: user.debugger_goto_address()
jump to clipboard: user.debugger_goto_clipboard()
jump to highlighted: user.debugger_goto_highlighted()

dump string: user.debugger_dump_ascii_string()
dump unicode [string]: user.debugger_dump_unicode_string()
dump pointers: user.debugger_dump_pointers()

list modules: user.debugger_list_modules()

# Type inspection
inspect type: user.debugger_inspect_type()

# Hex Dumping Memory
#hex dump register:

# Convenience
clear line: user.debugger_clear_line()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (word))))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
138. File knausj_talon/apps/i3wm/i3wm.talon
================================================================================

# NOTE: If you want to use i3wm you must enable the tag settings.talon. ex: `tag(): user.i3wm`
os: linux
tag: user.i3wm
-
port <number_small>: user.system_command("i3-msg workspace number {number_small}")
port ten: user.system_command("i3-msg workspace number 10")
(port flip|flipper): user.system_command("i3-msg workspace back_and_forth")
port right: user.system_command("i3-msg workspace next")
port left: user.system_command("i3-msg workspace prev")

(win|window) left: user.system_command("i3-msg focus left")
(win|window) right: user.system_command("i3-msg focus right")
(win|window) up: user.system_command("i3-msg focus up")
(win|window) down: user.system_command("i3-msg focus down")
((win|window) kill|murder): user.system_command("i3-msg kill")
(win|window) stacking: user.system_command("i3-msg layout stacking")
(win|window) default: user.system_command("i3-msg layout toggle split")
(win|window) tabbed: user.system_command("i3-msg layout tabbed")

reload i three config: user.system_command("i3-msg reload")
restart i three: user.system_command("i3-msg restart")

(full screen|scuba): user.system_command("i3-msg fullscreen")
toggle floating: user.system_command("i3-msg floating toggle")
focus floating: user.system_command("i3-msg focus mode_toggle")
center window: user.system_command("i3-msg move position center")
resize mode: user.system_command('i3-msg mode "resize"')
focus parent: user.system_command("i3-msg focus parent")
focus child: user.system_command("i3-msg focus child")

# resize helpers
grow window:
    user.system_command('i3-msg mode "resize"')
    key(right:10)
    key(down:10)
    # escape resize mode
    key(escape)
    # center window
    sleep(200ms)
    user.system_command("i3-msg move position center")


# resize helpers
shrink window:
    user.system_command('i3-msg mode "resize"')
    key(left:10)
    key(up:10)
    # escape resize mode
    key(escape)
    # center window
    sleep(200ms)
    user.system_command("i3-msg move position center")

horizontal (shell|terminal):
    user.system_command("i3-msg split h")
    user.i3wm_shell()

vertical (shell|terminal):
    user.system_command("i3-msg split v")
    user.i3wm_shell()

# XXX - just replace with shuffle eventually?
# XXX - like also need to match the generic talon commands
(shuffle|move (win|window) [to] port) <number_small>:  user.system_command("i3-msg move container to workspace number {number_small}")
(shuffle|move (win|window) [to] port ten): user.system_command("i3-msg move container to workspace number 10")
(shuffle|move (win|window) [to] last port): user.system_command("i3-msg move container to workspace back_and_forth")
(shuffle|move (win|window) left): user.system_command("i3-msg move left")
(shuffle|move (win|window) right): user.system_command("i3-msg move right")
(shuffle|move (win|window) up): user.system_command("i3-msg move up")
(shuffle|move (win|window) down): user.system_command("i3-msg move down")

(win|window) horizontal: user.system_command("i3-msg split h")
(win|window) vertical: user.system_command("i3-msg split v")

make scratch: user.system_command("i3-msg move scratchpad")
[(show|hide)] scratch: user.system_command("i3-msg scratchpad show")
next scratch:
    user.system_command("i3-msg scratchpad show")
    user.system_command("i3-msg scratchpad show")

# these rely on the user settings for the mod key. see i3wm.py Actions class
launch: user.i3wm_launch()
launch <user.text>:
        user.i3wm_launch()
        sleep(100ms)
        insert("{text}")
lock screen: user.i3wm_launch()

(launch shell|koopa): user.i3wm_shell()

new scratch (shell|window):
    user.i3wm_shell()
    sleep(200ms)
    user.system_command("i3-msg move scratchpad")
    user.system_command("i3-msg scratchpad show")

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (parenthesized_rule
                (choice
                  (word)
                  (word)))
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))
        (comment)
        (expression_statement
          (key_action
            (implicit_string)))
        (comment)
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))
        (comment)
        (expression_statement
          (key_action
            (implicit_string)))
        (comment)
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (seq
                (word)
                (parenthesized_rule
                  (choice
                    (word)
                    (word)))
                (optional
                  (word))
                (word))))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (seq
              (word)
              (parenthesized_rule
                (choice
                  (word)
                  (word)))
              (optional
                (word))
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (seq
              (word)
              (parenthesized_rule
                (choice
                  (word)
                  (word)))
              (optional
                (word))
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (seq
              (word)
              (parenthesized_rule
                (choice
                  (word)
                  (word)))
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (seq
              (word)
              (parenthesized_rule
                (choice
                  (word)
                  (word)))
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (seq
              (word)
              (parenthesized_rule
                (choice
                  (word)
                  (word)))
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (seq
              (word)
              (parenthesized_rule
                (choice
                  (word)
                  (word)))
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (optional
            (parenthesized_rule
              (choice
                (word)
                (word))))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
139. File knausj_talon/apps/windbg/windbg.talon
================================================================================

# XXX - trigger alt-1 to hit command window for necessary commands?
# ex: user.windbg_insert_in_cmd()
#    edit.left()

mode: user.windbg
-
tag(): user.debugger
tag(): user.windbg
register <user.registers>:
    key(@)
    insert("{registers}")

open help: insert(".hh\n")

# xxx - add window switching

add microsoft symbols:
    insert("srv*C:\\symbols*http://msdl.microsoft.com/download/symbols;\n")
force reload symbols:
    insert(".reload /f\n")
reload symbols:
    insert(".reload\n")
loaded modules:
    insert("lm l\n")

display pointers:
    insert("dps ")

# XXX - should be generic
dereference pointer:
    user.insert_between("poi(", ")")

show version: key(ctrl-alt-w)

##
# Windows
##

view command: key(alt-1)
view watch: key(alt-2)
view locals: key(alt-3)
view registers: key(alt-4)
view memory: key(alt-5)
view call stack: key(alt-6)
view disassembly: key(alt-7)
view scratch pad: key(alt-8)
view (processes|threads): key(alt-9)

# XXX - temp
dump function params: "r @rcx,@rdx,@r8,@r9\n"

(lib|library) <user.windows_dlls>: "{windows_dlls}"

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (comment)
    (comment)
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)
                (string_content)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)
            (string_escape_sequence)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))))

================================================================================
140. File knausj_talon/apps/conemu.talon
================================================================================

os: windows
app.exe: ConEmu64.exe
-

tag(): terminal
tag(): user.git

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))))

================================================================================
141. File knausj_talon/apps/amethyst/amethyst.talon
================================================================================

user.running: amethyst
-
window next: key("alt-shift-j")
window previous: key("alt-shift-k")
# window move desk: key("ctrl-alt-shift-h")
window full: key("alt-shift-d")
window tall: key("alt-shift-a")
window middle: key("alt-shift-`")
window move main: key("alt-shift-enter")
window grow: key("alt-shift-l")
window shrink: key("alt-shift-h")
window reevaluate: key("alt-shift-z")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
142. File knausj_talon/apps/jetbrains/jetbrains.talon
================================================================================

# Requires https://plugins.jetbrains.com/plugin/10504-voice-code-idea
app: jetbrains
-
tag(): user.line_commands
tag(): user.multiple_cursors
tag(): user.splits
tag(): user.tabs
# multiple_cursors.py support end

# Auto complete
complete: user.idea("action CodeCompletion")
perfect: user.idea("action CodeCompletion,action CodeCompletion")
smart: user.idea("action SmartTypeCompletion")
(done | finish): user.idea("action EditorCompleteStatement")
# Copying
grab <number>: user.idea_grab(number)
# Actions
(action | please): user.idea("action GotoAction")
(action | please) <user.text>:
    user.idea("action GotoAction")
    insert(text)
# Refactoring
refactor: user.idea("action Refactorings.QuickListPopupAction")
refactor <user.text>:
    user.idea("action Refactorings.QuickListPopupAction")
    insert(text)
extract variable: user.idea("action IntroduceVariable")
extract field: user.idea("action IntroduceField")
extract constant: user.idea("action IntroduceConstant")
extract parameter: user.idea("action IntroduceParameter")
extract interface: user.idea("action ExtractInterface")
extract method: user.idea("action ExtractMethod")
refactor in line: user.idea("action Inline")
refactor move: user.idea("action Move")
refactor rename: user.idea("action RenameElement")
rename file: user.idea("action RenameFile")
fix (format | formatting): user.idea("action ReformatCode")
fix imports: user.idea("action OptimizeImports")
#navigation
(go declaration | follow): user.idea("action GotoDeclaration")
go implementation: user.idea("action GotoImplementation")
go usage: user.idea("action FindUsages")
go type: user.idea("action GotoTypeDeclaration")
go test: user.idea("action GotoTest")
go back: user.idea("action Back")
go forward: user.idea("action Forward")
# Search
find (everywhere | all): user.idea("action SearchEverywhere")
find (everywhere | all) <user.text> [over]:
    user.idea("action SearchEverywhere")
    sleep(500ms)
    insert(text)
(search | find) class: user.idea("action GotoClass")
(search | find) file: user.idea("action GotoFile")
(search | find) path: user.idea("action FindInPath")
(search | find) symbol: user.idea("action GotoSymbol")
(search | find) symbol <user.text>$:
    user.idea("action GotoSymbol")
    insert(text)
    key("enter")
recent: user.idea("action RecentFiles")

surround [this] with <user.text> [over]:
    idea("action SurroundWith")
    sleep(500ms)
    insert(text)
# Making these longer to reduce collisions with real code dictation.
insert generated <user.text> [over]:
    user.idea("action Generate")
    sleep(500ms)
    insert(text)
insert template <user.text> [over]:
    idea("action InsertLiveTemplate")
    sleep(500ms)
    insert(text)
create (template|snippet): user.idea("action SaveAsTemplate")
# Recording
toggle recording: user.idea("action StartStopMacroRecording")
change (recording | recordings): user.idea("action EditMacros")
play recording: user.idea("action PlaybackLastMacro")
play recording <user.text> [over]:
    idea("action PlaySavedMacrosAction")
    insert(text)
    sleep(500ms)
    Key("enter")
# Marks
go mark: user.idea("action ShowBookmarks")
toggle mark: user.idea("action ToggleBookmark")
go next mark: user.idea("action GotoNextBookmark")
go last mark: user.idea("action GotoPreviousBookmark")
toggle mark <number>: user.idea("action ToggleBookmark{number}")
go mark <number>: user.idea("action GotoBookmark{number}")
# Folding
expand deep: user.idea("action ExpandRegionRecursively")
expand all: user.idea("action ExpandAllRegions")
collapse deep: user.idea("action CollapseRegionRecursively")
collapse all: user.idea("action CollapseAllRegions")
# miscellaneous
# XXX These might be better than the structural ones depending on language.
go next (method | function): user.idea("action MethodDown")
go last (method | function): user.idea("action MethodUp")
# Clipboard
clippings: user.idea("action PasteMultiple")
copy path: user.idea("action CopyPaths")
copy reference: user.idea("action CopyReference")
copy pretty: user.idea("action CopyAsRichText")
# File Creation
create sibling: user.idea("action NewElementSamePlace")
create sibling <user.text> [over]:
    user.idea("action NewElementSamePlace")
    sleep(500ms)
    insert(text)
create file: user.idea("action NewElement")
create file <user.text> [over]:
    user.idea("action NewElement")
    sleep(500ms)
    insert(text)
# Task Management
go task: user.idea("action tasks.goto")
go browser task: user.idea("action tasks.open.in.browser")
switch task: user.idea("action tasks.switch")
clear task: user.idea("action tasks.close")
configure servers: user.idea("action tasks.configure.servers")
# Git / Github (not using verb-noun-adjective pattern, mirroring terminal commands.)
git pull: user.idea("action Vcs.UpdateProject")
git commit: user.idea("action CheckinProject")
git push: user.idea("action CheckinProject")
git log: user.idea("action Vcs.ShowTabbedFileHistory")
git browse: user.idea("action Github.Open.In.Browser")
git (gets | gist): user.idea("action Github.Create.Gist")
git (pull request | request): user.idea("action Github.Create.Pull.Request")
git (view | show | list) (requests | request): user.idea("action Github.View.Pull.Request")
git (annotate | blame): user.idea("action Annotate")
git menu: user.idea("action Vcs.QuickListPopupAction")
# Tool windows:
# Toggling various tool windows
toggle project: user.idea("action ActivateProjectToolWindow")
toggle find: user.idea("action ActivateFindToolWindow")
toggle run: user.idea("action ActivateRunToolWindow")
toggle debug: user.idea("action ActivateDebugToolWindow")
toggle events: user.idea("action ActivateEventLogToolWindow")
toggle terminal: user.idea("action ActivateTerminalToolWindow")
toggle git: user.idea("action ActivateVersionControlToolWindow")
toggle structure: user.idea("action ActivateStructureToolWindow")
toggle database: user.idea("action ActivateDatabaseToolWindow")
toggle database changes: user.idea("action ActivateDatabaseChangesToolWindow")
toggle make: user.idea("action ActivatemakeToolWindow")
toggle to do: user.idea("action ActivateTODOToolWindow")
toggle docker: user.idea("action ActivateDockerToolWindow")
toggle favorites: user.idea("action ActivateFavoritesToolWindow")
toggle last: user.idea("action JumpToLastWindow")
# Pin/dock/float
toggle pinned: user.idea("action TogglePinnedMode")
toggle docked: user.idea("action ToggleDockMode")
toggle floating: user.idea("action ToggleFloatingMode")
toggle windowed: user.idea("action ToggleWindowedMode")
toggle split: user.idea("action ToggleSideMode")
# Settings, not windows
toggle tool buttons: user.idea("action ViewToolButtons")
toggle toolbar: user.idea("action ViewToolBar")
toggle status [bar]: user.idea("action ViewStatusBar")
toggle navigation [bar]: user.idea("action ViewNavigationBar")
# Active editor settings
toggle power save: user.idea("action TogglePowerSave")
toggle whitespace: user.idea("action EditorToggleShowWhitespaces")
toggle indents: user.idea("action EditorToggleShowIndentLines")
toggle line numbers: user.idea("action EditorToggleShowLineNumbers")
toggle (bread crumbs | breadcrumbs): user.idea("action EditorToggleShowBreadcrumbs")
toggle gutter icons: user.idea("action EditorToggleShowGutterIcons")
toggle wrap: user.idea("action EditorToggleUseSoftWraps")
toggle parameters: user.idea("action ToggleInlineHintsAction")
# Toggleable views
toggle fullscreen: user.idea("action ToggleFullScreen")
toggle distraction [free mode]: user.idea("action ToggleDistractionFreeMode")
toggle presentation [mode]: user.idea("action TogglePresentationMode")
# Toggle additionals
toggle comment: code.toggle_comment()
# Quick popups
change scheme: user.idea("action QuickChangeScheme")
# Always javadoc
(toggle | pop) (doc | documentation): user.idea("action QuickJavaDoc")
(pop deaf | toggle definition): user.idea("action QuickImplementations")
pop type: user.idea("action ExpressionTypeInfo")
pop parameters: user.idea("action ParameterInfo")
# Breakpoints / debugging
go breakpoints: user.idea("action ViewBreakpoints")
toggle [line] breakpoint: user.idea("action ToggleLineBreakpoint")
toggle method breakpoint: user.idea("action ToggleMethodBreakpoint")
run menu: user.idea("action ChooseRunConfiguration")
run test: user.idea("action RunClass")
run test again: user.idea("action Rerun")
debug test: user.idea("action DebugClass")
step over: user.idea("action StepOver")
step into: user.idea("action StepInto")
step smart: user.idea("action SmartStepInto")
step to line: user.idea("action RunToCursor")
continue: user.idea("action Resume")
# Grow / Shrink
(grow | shrink) window right: user.idea("action ResizeToolWindowRight")
(grow | shrink) window left: user.idea("action ResizeToolWindowLeft")
(grow | shrink) window up: user.idea("action ResizeToolWindowUp")
(grow | shrink) window down: user.idea("action ResizeToolWindowDown")
# Movement
go next (error | air): user.idea("action GotoNextError")
go last (error | air): user.idea("action GotoPreviousError")
fix next (error | air):
    user.idea("action GotoNextError")
    user.idea("action ShowIntentionActions")
fix last (error | air):
    user.idea("action GotoPreviousError")
    user.idea("action ShowIntentionActions")
# Special Selects
select less: user.idea("action EditorUnSelectWord")
select (more|this): user.idea("action EditorSelectWord")
#jet brains-specific line commands. see line_commands.talon for generic ones
expand <number> until <number>:
    user.select_range(number_1, number_2)
    user.idea("action ExpandRegion")
collapse <number> until <number>:
    user.select_range(number_1, number_2)
    user.idea("action CollapseRegion")
paste <number> until <number>:
    user.select_range(number_1, number_2)
    user.idea("action EditorPaste")
refactor <number> until <number>:
    user.select_range(number_1, number_2)
    user.idea("action Refactorings.QuickListPopupAction")
clone <number>: user.line_clone(number)

#find/replace
clear last <user.text> [over]: user.idea("find prev {text}, action EditorBackSpace")
clear next <user.text> [over]: user.idea("find next {text}, action EditorBackSpace")
comment last <user.text> [over]: user.idea("find prev {text}, action CommentByLineComment")
comment next <user.text> [over]: user.idea("find next {text}, action CommentByLineComment")
go last <user.text> [over]: user.idea("find prev {text}, action EditorRight")
go next <user.text> [over]: user.idea("find next {text}, action EditorRight")
paste last <user.text> [over]: user.idea("find prev {text}, action EditorRight, action EditorPaste")
paste next <user.text> [over]: user.idea("find next {text}, action EditorRight, action EditorPaste")
refactor last <user.text> [over]: user.idea("find prev {text}, action Refactorings.QuickListPopupAction")
refactor next <user.text> [over]: user.idea("find next {text}, action Refactorings.QuickListPopupAction")
replace last <user.text> [over]: user.idea("find prev {text}, action EditorPaste")
replace next <user.text> [over]: user.idea("find next {text}, action EditorPaste")
select last <user.text> [over]: user.idea("find prev {text}")
select next <user.text> [over]: user.idea("find next {text}")

select camel left: user.extend_camel_left()
select camel right: user.extend_camel_right()
go camel left: user.camel_left()
go camel right: user.camel_right()

# requires plug-in: black-pycharm
blacken: user.idea("action BLACKReformatCode")

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier))
              (variable
                (identifier)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
143. File knausj_talon/apps/adobe/adobe_acrobat_reader_dc.talon
================================================================================

app: adobe_acrobat_reader_dc
-
# Set tags
tag(): user.tabs
tag(): user.pages

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))))

================================================================================
144. File knausj_talon/apps/generic_snippets/generic_snippets.talon
================================================================================

tag: user.snippets
-
snip {user.snippets}: user.snippet_insert(user.snippets)
snip hunt <user.text>: user.snippet_search(user.text)
snip hunt: user.snippet_search("")
snip create: user.snippet_create()
snip show: user.snippet_toggle()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
145. File knausj_talon/apps/generic_snippets/generic_snippets_open.talon
================================================================================

tag: user.snippets_showing
-
snip close: user.snippet_hide()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
146. File knausj_talon/apps/teams/teams_mac.talon
================================================================================

os: mac
app: com.microsoft.teams

-

open history: key(super-shift-h)
view shortcuts: key(super-.)
show shortcuts: key(super-.)
[go] [to] search: key(super-e)
show commands: key(super-/)
open filter: key(super-shift-f)
go to: key(super-g)
open (apps|applications): key(ctrl-`)
[start] new chat: key(super-n)
open settings: key(super-,)
open help: key(f1)
close: key(escape)
reset:
  key(escape)
  key(escape)
  key(escape)
  key(escape)
zoom reset:
  key(super-0)

# navigations
open (act|activity): key(super-1)
open chat: key(super-2)
open teams: key(super-3)
open calendar: key(super-4)
open calls: key(super-5)
open files: key(super-6)
[go] [to] (prev|previous) [list] item: key(alt-up)
[go] [to] next [list] item: key(alt-down)
move [selected] team up: key(super-shift-up)
move [selected] team down: key(super-shift-down)
[go] [to] (prev|previous) section: key(super-shift-f6)
[go] [to] next section: key(super-f6)

# messaging
[go] [to] compose [box]: key(shift-alt-c)
[expand] compose [box]: key(super-shift-x)
send message: key(super-enter)
attach file: key(shift-alt-o)
attach local file:
  key(shift-alt-o)
  sleep(100ms)
  key(down)
  key(space)
[start] new line: key(shift-enter)
reply [to] [thread]: key(shift-alt-r)

# Meetings, Calls and Calendar
accept video call: key(super-shift-a)
accept audio call: key(super-shift-s)
decline call: key(super-shift-d)
start audio call: key(super-shift-c)
start video call: key(super-shift-u)
toggle mute: key(super-shift-m)
starch screen share session: key(super-shift-e)
toggle video: key(super-shift-o)
[go] [to] sharing toolbar: key(super-shift-space)
decline screen share: key(super-shift-d)
accept screen share: key(super-shift-a)
schedule [a] meeting: key(alt-shift-n)
go to current time: key(alt-.)
go to (prev|previous) (day|week): key(super-alt-left)
go to next (day|week): key(super-alt-right)
view day: key(super-alt-1)
view work week: key(super-alt-2)
view week: key(super-alt-3)
(save|send) meeting request: key(super-s)
join [from] meeting [details]: key(alt-shift-j)
go to suggested time: key(alt-shift-s)
(raise|lower) hand: key(super-shift-k)
leave team meeting: key(super-shift-h)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
147. File knausj_talon/apps/teams/teams.talon
================================================================================

app: microsoft_teams
os: windows
os: linux

-

# Shortcut reference
# https://support.office.com/en-us/article/keyboard-shortcuts-for-microsoft-teams-2e8e2a70-e8d8-4a19-949b-4c36dd5292d2

# generics
show shortcuts: key(ctrl-.)
[go] [to] search: key(ctrl-e)
show commands: key(ctrl-/)
open filter: key(ctrl-shift-f)
go to: key(ctrl-g)
open (apps|applications): key(ctrl-`)
[start] new chat: key(ctrl-n)
open settings: key(ctrl-,)
open help: key(f1)
close: key(escape)

# navigations
open activity: key(ctrl-1)
open chat: key(ctrl-2)
open teams: key(ctrl-3)
open calendar: key(ctrl-4)
open planner: key(ctrl-5)
open calls: key(ctrl-6)
open files: key(ctrl-7)
[go] [to] (prev|previous) [list] item: key(alt-up)
[go] [to] next [list] item: key(alt-down)
move [selected] team up: key(ctrl-shift-up)
move [selected] team down: key(ctrl-shift-down)
[go] [to] (prev|previous) section: key(ctrl-shift-f6)
[go] [to] next section: key(ctrl-f6)

# messaging
[go] [to] compose [box]: key(c)
[expand] compose [box]: key(ctrl-shift-x)
send: key(ctrl-enter)
attach file: key(ctrl-o)
[start] new line: key(shift-enter)
reply [to] [thread]: key(r)

# Meetings, Calls and Calendar
accept video call: key(ctrl-shift-a)
accept audio call: key(ctrl-shift-s)
decline call: key(ctrl-shift-d)
start audio call: key(ctrl-shift-c)
start video call: key(ctrl-shift-u)
toggle mute: key(ctrl-shift-m)
starch screen share session: key(ctrl-shift-e)
toggle video: key(ctrl-shift-o)
[go] [to] sharing toolbar: key(ctrl-shift-space)
decline screen share: key(ctrl-shift-d)
accept screen share: key(ctrl-shift-a)
schedule [a] meeting: key(alt-shift-n)
go to current time: key(alt-.)
go to (prev|previous) (day|week): key(ctrl-alt-left)
go to next (day|week): key(ctrl-alt-right)
view day: key(ctrl-alt-1)
view work week: key(ctrl-alt-2)
view week: key(ctrl-alt-3)
(safe|send) meeting request: key(ctrl-s)
join [from] meeting [details]: key(alt-shift-j)
go to suggested time: key(alt-shift-s)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (comment)
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (optional
            (word))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
148. File knausj_talon/apps/slack/slack_win.talon
================================================================================

os: windows
os: linux
app: slack
#todo: some sort of plugin, consolidate with teams or something?
-
tag(): user.messaging
tag(): user.emoji
# Workspaces
workspace <number>: key("ctrl-{number}")
# Channel
(slack | lack) [channel] info: key(ctrl-shift-i)
# Navigation
focus (move | next): key(ctrl-`)
(section | zone) [next]: key(f6)
(section | zone) (previous | last): key(shift-f6)
(slack | lack) [direct] messages: key(ctrl-shift-k)
(slack | lack) threads: key(ctrl-shift-t)
(slack | lack) (history [next] | back | backward): key(alt-left)
(slack | lack) forward: key(alt-right)
(element | bit) [next]: key(tab)
(element | bit) (previous | last): key(shift-tab)
(slack | lack) (my stuff | activity): key(ctrl-shift-m)
(slack | lack) directory: key(ctrl-shift-e)
(slack | lack) (starred [items] | stars): key(ctrl-shift-s)
(slack | lack) unread [messages]: key(ctrl-shift-a)
# Messaging
grab left: key(shift-up)
grab right: key(shift-down)
add line: key(shift-enter)
#"(slack | lack) (slap | slaw | slapper): [key(cmd-right) key(shift-enter")],
(slack | lack) (react | reaction): key(ctrl-shift-\)
(insert command | commandify): key(ctrl-shift-c)
insert code: insert("```")
(slack | lack) (bull | bullet | bulleted) [list]: key(ctrl-shift-8)
(slack | lack) (number | numbered) [list]: key(ctrl-shift-7)
(slack | lack) (quotes | quotation): key(ctrl-shift-9)
bold: key(ctrl-b)
(italic | italicize): key(ctrl-i)
(strike | strikethrough): key(ctrl-shift-x)
(slack | lack) snippet: key(ctrl-shift-enter)
# Calls
([toggle] mute | unmute): key(m)
(slack | lack) ([toggle] video): key(v)
(slack | lack) invite: key(a)
# Miscellaneous
(slack | lack) shortcuts: key(ctrl-/)
emote <user.text>: "{text}"
toggle left sidebar: key(ctrl-shift-d)
toggle right sidebar: key(ctrl-.)

# DEPRECATED
(move | next) focus:
    app.notify("please use the voice command 'focus next' instead of 'next focus'")
    key(ctrl-`)
[next] (section | zone):
    app.notify("please use the voice command 'section next' instead of 'next section'")
    key(f6)
(previous | last) (section | zone):
    app.notify("please use the voice command 'section last' instead of 'last section'")
    key(shift-f6)
[next] (element | bit):
    app.notify("please use the voice command 'element next' instead of 'next element'")
    key(tab)
(previous | last) (element | bit):
    app.notify("please use the voice command 'element last' instead of 'last element'")
    key(shift-tab)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string))
    (comment))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (optional
                  (word)))
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (optional
                  (word)))
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (optional
                (word))
              (word))
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (seq
              (optional
                (word))
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
149. File knausj_talon/apps/slack/slack_mac.talon
================================================================================

os: mac
app: slack
-
tag(): user.messaging
tag(): user.emoji
# Workspace
workspace <number>: key("cmd-{number}")
# Channel
(slack | lack) [channel] info: key(cmd-shift-i)
# Navigation
focus (move | next): key(ctrl-`)
(section | zone) [next]: key(f6)
(section | zone) (previous | last): key(shift-f6)
(slack | lack) [direct] messages: key(cmd-shift-k)
(slack | lack) threads: key(cmd-shift-t)
(slack | lack) (history [next] | back | backward): key(cmd-[)
(slack | lack) forward: key(cmd-])
(element | bit) [next]: key(tab)
(element | bit) (previous | last): key(shift-tab)
(slack | lack) (my stuff | activity): key(cmd-shift-m)
(slack | lack) directory: key(cmd-shift-e)
(slack | lack) (starred [items] | stars): key(cmd-shift-s)
(slack | lack) unread [messages]: key(cmd-shift-a)
(go | undo | toggle) full: key(ctrl-cmd-f)
# Messaging
grab left: key(shift-up)
grab right: key(shift-down)
add line: key(shift-enter)
(slack | lack) (slap | slaw | slapper): key(cmd-right shift-enter)
(slack | lack) (react | reaction): key(cmd-shift-\)
(insert command | commandify): key(cmd-shift-c)
insert link: key(cmd-shift-u)
insert code: key(cmd-shift-alt-c)
(slack | lack) (bull | bullet | bulleted) [list]: key(cmd-shift-8)
(slack | lack) (number | numbered) [list]: key(cmd-shift-7)
(slack | lack) (quotes | quotation): key(cmd-shift->)
bold: key(cmd-b)
(italic | italicize): key(cmd-i)
(strike | strikethrough): key(cmd-shift-x)
(slack | lack) snippet: key(cmd-shift-enter)
# Calls
([toggle] mute | unmute): key(m)
(slack | lack) huddle: key(cmd-shift-h)
(slack | lack) ([toggle] video): key(v)
(slack | lack) invite: key(a)
# Miscellaneous
(slack | lack) shortcuts: key(cmd-/)
emote <user.text>: "{text}"
toggle left sidebar: key(cmd-shift-d)
toggle right sidebar: key(cmd-.)

# DEPRECATED
(move | next) focus:
    app.notify("please use the voice command 'focus next' instead of 'next focus'")
    key(ctrl-`)
[next] (section | zone):
    app.notify("please use the voice command 'section next' instead of 'next section'")
    key(f6)
(previous | last) (section | zone):
    app.notify("please use the voice command 'section last' instead of 'last section'")
    key(shift-f6)
[next] (element | bit):
    app.notify("please use the voice command 'element next' instead of 'next element'")
    key(tab)
(previous | last) (element | bit):
    app.notify("please use the voice command 'element last' instead of 'last element'")
    key(shift-tab)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (optional
                  (word)))
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (word))
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (seq
                (word)
                (optional
                  (word)))
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (word)
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (optional
                (word))
              (word))
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (seq
              (optional
                (word))
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (string
            (string_content)
            (string_content)
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (optional
            (word))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
150. File knausj_talon/apps/generic_terminal/generic_terminal.talon
================================================================================

tag: terminal
-
# tags should be activated for each specific terminal in the respective talon file

lisa:
    user.terminal_list_directories()
lisa all:
    user.terminal_list_all_directories()
katie [<user.text>]: user.terminal_change_directory(text or "")
katie root: user.terminal_change_directory_root()
go <user.system_path>: insert("cd \"{system_path}\"\n")
clear screen: user.terminal_clear_screen()
run last: user.terminal_run_last()
rerun [<user.text>]: user.terminal_rerun_search(text or "")
rerun search: user.terminal_rerun_search("")
kill all: user.terminal_kill_all()

copy paste:
    edit.copy()
    sleep(50ms)
    edit.paste()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_escape_sequence)
                (string_content)
                (string_content)
                (string_content)
                (string_escape_sequence)
                (string_escape_sequence)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
151. File knausj_talon/apps/talon_repl.talon
================================================================================

win.title:/repl/
win.title:/Talon - REPL/
-
tag(): user.talon_python

# uncomment user.talon_populate_lists tag to activate talon-specific lists of actions, scopes, modes etcetera.
# Do not enable this tag with dragon, as it will be unusable.
# with conformer, the latency increase may also be unacceptable depending on your cpu
# see https://github.com/knausj85/knausj_talon/issues/600
# tag(): user.talon_populate_lists

^test last$:
    phrase = user.history_get(1)
    command = "sim('{phrase}')"
    insert(command)
    key(enter)
^test <phrase>$:
    insert("sim('{phrase}')")
    key(enter)
^test numb <number_small>$:
    phrase = user.history_get(number_small)
    command = "sim('{phrase}')"
    #to do: shouldn't this work?
    #user.paste("sim({phrase})")
    insert(command)
    key(enter)
# requires user.talon_populate_lists tag. do not use with dragon
^debug action {user.talon_actions}$:
    insert("actions.find('{user.talon_actions}')")
    key(enter)
# requires user.talon_populate_lists tag. do not use with dragon
^debug list {user.talon_lists}$:
    insert("actions.user.talon_pretty_print(registry.lists['{talon_lists}'])")
    key(enter)
^debug tags$:
    insert("actions.user.talon_pretty_print(registry.tags)")
    key(enter)
^debug settings$:
    insert("actions.user.talon_pretty_print(registry.settings)")
    key(enter)
^debug modes$:
    insert("actions.user.talon_pretty_print(scope.get('mode'))")
    key(enter)
# requires user.talon_populate_lists tag. do not use with dragon
^debug scope {user.talon_scopes}$:
    insert("actions.user.talon_pretty_print(scope.get('{talon_scopes}'))")
    key(enter)
^debug running apps$:
    insert("actions.user.talon_pretty_print(ui.apps(background=False))")
    key(enter)
^debug all windows$:
    insert("actions.user.talon_pretty_print(ui.windows())")
    key(enter)
^debug {user.running} windows$:
    insert("actions.user.talon_debug_app_windows('{running}')")
    key(enter)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (comment)
    (comment)
    (comment)
    (comment)
    (comment)
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (integer))))
        (assignment_statement
          (identifier)
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (assignment_statement
          (identifier)
          (string
            (string_content)
            (string_content)
            (string_content)
            (string_content)
            (string_content)))
        (comment)
        (comment)
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (list
            (identifier))
          (word))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
152. File knausj_talon/apps/file_manager.talon
================================================================================

tag: user.file_manager
-
title force: user.file_manager_refresh_title()
manager show: user.file_manager_toggle_pickers()
manager close: user.file_manager_hide_pickers()
manager refresh: user.file_manager_update_lists()
go <user.system_path>: user.file_manager_open_directory(system_path)
go back: user.file_manager_go_back()
go forward: user.file_manager_go_forward()
(go parent | daddy): user.file_manager_open_parent()
^follow numb <number_small>$:
    directory = user.file_manager_get_directory_by_index(number_small - 1)
    user.file_manager_open_directory(directory)
^follow {user.file_manager_directories}$: user.file_manager_open_directory(file_manager_directories)
^(select|cell) folder {user.file_manager_directories}$: user.file_manager_select_directory(file_manager_directories)
^open <number_small>$:
    file = user.file_manager_get_file_by_index(number_small - 1)
    user.file_manager_open_file(file)
^folder numb <number_small>$:
    directory = user.file_manager_get_directory_by_index(number_small - 1)
    user.file_manager_select_directory(directory)
^file numb <number_small>$:
    file = user.file_manager_get_file_by_index(number_small - 1)
    user.file_manager_select_file(file)
^file {user.file_manager_files}$: user.file_manager_select_file(file_manager_files)
^(select|cell) file {user.file_manager_files}$: user.file_manager_select_file(file_manager_files)

#new folder
folder new <user.text>:
    user.file_manager_new_folder(text)

#show properties
properties show: user.file_manager_show_properties()

# open terminal at location
terminal here: user.file_manager_terminal_here()

folder next: user.file_manager_next_folder_page()
folder last: user.file_manager_previous_folder_page()

file next: user.file_manager_next_file_page()
file last: user.file_manager_previous_file_page()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (word)
          (capture
            (identifier)))
        (end_anchor))
      (block
        (assignment_statement
          (identifier)
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (start_anchor)
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (list
            (identifier)))
        (end_anchor))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
153. File knausj_talon/apps/kubectl/kubectl.talon
================================================================================

tag: terminal
and tag: user.kubectl
-
cube [control]: "kubectl "

cube create:         "kubectl create "
cube expose:         "kubectl expose "
cube run:            "kubectl run "
cube set:            "kubectl set "
cube run container:  "kubectl run-container "

cube explain:        "kubectl explain "
cube get:            "kubectl get "
cube edit:           "kubectl edit "
cube delete:         "kubectl delete "

cube rollout:        "kubectl rollout "
cube rolling update: "kubectl rolling-update "
cube scale:          "kubectl scale "
cube auto scale:     "kubectl autoscale "

cube certificate:    "kubectl certificate "
cube top:            "kubectl top "
cube drain:          "kubectl drain "
cube taint:          "kubectl taint "
cube (cord | cordon): "kubectl cordon "
cube (uncord | uncordon): "kubectl uncordon "
cube cluster (info | information): "kubectl cluster-info "

cube describe:     "kubectl describe "
cube logs:         "kubectl logs "
cube attach:       "kubectl attach "
cube exec:         "kubectl exec "
cube port forward: "kubectl port-forward "
cube proxy:        "kubectl proxy "
cube copy:         "kubectl cp "
cube auth:         "kubectl auth "

cube diff:         "kubectl diff "
cube apply:        "kubectl apply "
cube patch:        "kubectl patch "
cube replace:      "kubectl replace "
cube wait:         "kubectl wait "
cube convert:      "kubectl convert "
cube customize:    "kubectl kustomize "

cube label:        "kubectl label "
cube annotate:     "kubectl annotate "
cube completion:   "kubectl completion "

cube (interface | API):   "kubectl api "
cube interface resources: "kubectl api-resources "
cube interface versions:  "kubectl api-versions "
cube config:       "kubectl config "
cube help:         "kubectl help "
cube plugin:       "kubectl plugin "
cube version:      "kubectl version "

cube {user.kubectl_action} [{user.kubectl_object}]:
    insert("kubectl {kubectl_action} ")
    insert(kubectl_object or "")

cube detach:
    key("ctrl-p")
    key("ctrl-q")
cube shell:
    user.insert_between("kubectl exec -it ", " -- /bin/bash")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (string
            (string_content)))))
    (command_declaration
      (rule
        (seq
          (word)
          (list
            (identifier))
          (optional
            (list
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)
                (string_content)
                (string_content)
                (string_content)
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content))
              (string
                (string_content)))))))))

================================================================================
154. File knausj_talon/apps/vscode/vscode.talon
================================================================================

#custom vscode commands go here
app: vscode
-
tag(): user.find_and_replace
tag(): user.line_commands
tag(): user.multiple_cursors
tag(): user.snippets
tag(): user.splits
tag(): user.tabs
window reload: user.vscode("workbench.action.reloadWindow")
window close: user.vscode("workbench.action.closeWindow")
#multiple_cursor.py support end

please [<user.text>]:
    user.vscode("workbench.action.showCommands")
    insert(user.text or "")

# Sidebar
bar explore: user.vscode("workbench.view.explorer")
bar extensions: user.vscode("workbench.view.extensions")
bar outline: user.vscode("outline.focus")
bar run: user.vscode("workbench.view.debug")
bar search: user.vscode("workbench.view.search")
bar source: user.vscode("workbench.view.scm")
bar test: user.vscode("workbench.view.testing.focus")
bar switch: user.vscode("workbench.action.toggleSidebarVisibility")

symbol hunt [<user.text>]:
    user.vscode("workbench.action.gotoSymbol")
    sleep(50ms)
    insert(text or "")

# Panels
panel control: user.vscode("workbench.panel.repl.view.focus")
panel output: user.vscode("workbench.panel.output.focus")
panel problems: user.vscode("workbench.panel.markers.view.focus")
panel switch: user.vscode("workbench.action.togglePanel")
panel terminal: user.vscode("workbench.action.terminal.focus")
focus editor: user.vscode("workbench.action.focusActiveEditorGroup")

# Settings
show settings: user.vscode("workbench.action.openGlobalSettings")
show settings json: user.vscode("workbench.action.openSettingsJson")
show settings folder: user.vscode("workbench.action.openFolderSettings")
show settings folder json: user.vscode("workbench.action.openFolderSettingsFile")
show settings workspace: user.vscode("workbench.action.openWorkspaceSettings")
show settings workspace json: user.vscode("workbench.action.openWorkspaceSettingsFile")
show shortcuts: user.vscode("workbench.action.openGlobalKeybindings")
show snippets: user.vscode("workbench.action.openSnippets")

# Display
centered switch: user.vscode("workbench.action.toggleCenteredLayout")
fullscreen switch: user.vscode("workbench.action.toggleFullScreen")
theme switch: user.vscode("workbench.action.selectTheme")
wrap switch: user.vscode("editor.action.toggleWordWrap")
zen switch: user.vscode("workbench.action.toggleZenMode")

# File Commands
file hunt [<user.text>]:
    user.vscode("workbench.action.quickOpen")
    sleep(50ms)
    insert(text or "")
file copy path: user.vscode("copyFilePath")
file copy local [path]: user.vscode("copyRelativeFilePath")
file create sibling: user.vscode_and_wait("explorer.newFile")
file create: user.vscode("workbench.action.files.newUntitledFile")
file rename:
    user.vscode("fileutils.renameFile")
    sleep(150ms)
file move:
    user.vscode("fileutils.moveFile")
    sleep(150ms)
file clone:
    user.vscode("fileutils.duplicateFile")
    sleep(150ms)
file delete:
    user.vscode("fileutils.removeFile")
    sleep(150ms)
file open folder: user.vscode("revealFileInOS")
file reveal: user.vscode("workbench.files.action.showActiveFileInExplorer")
save ugly: user.vscode("workbench.action.files.saveWithoutFormatting")

# Language Features
suggest show: user.vscode("editor.action.triggerSuggest")
hint show: user.vscode("editor.action.triggerParameterHints")
definition show: user.vscode("editor.action.revealDefinition")
definition peek: user.vscode("editor.action.peekDefinition")
definition side: user.vscode("editor.action.revealDefinitionAside")
references show: user.vscode("editor.action.goToReferences")
references find: user.vscode("references-view.find")
format that: user.vscode("editor.action.formatDocument")
format selection: user.vscode("editor.action.formatSelection")
imports fix: user.vscode("editor.action.organizeImports")
problem next: user.vscode("editor.action.marker.nextInFiles")
problem last: user.vscode("editor.action.marker.prevInFiles")
problem fix: user.vscode("problems.action.showQuickFixes")
rename that: user.vscode("editor.action.rename")
refactor that: user.vscode("editor.action.refactor")
whitespace trim: user.vscode("editor.action.trimTrailingWhitespace")
language switch: user.vscode("workbench.action.editor.changeLanguageMode")
refactor rename: user.vscode("editor.action.rename")
refactor this: user.vscode("editor.action.refactor")

#code navigation
(go declaration | follow): user.vscode("editor.action.revealDefinition")
go back: user.vscode("workbench.action.navigateBack")
go forward: user.vscode("workbench.action.navigateForward")
go implementation: user.vscode("editor.action.goToImplementation")
go type: user.vscode("editor.action.goToTypeDefinition")
go usage: user.vscode("references-view.find")
go recent [<user.text>]:
    user.vscode("workbench.action.openRecent")
    sleep(50ms)
    insert(text or "")
    sleep(250ms)
go edit: user.vscode("workbench.action.navigateToLastEditLocation")

# Bookmarks. Requires Bookmarks plugin
go marks: user.vscode("workbench.view.extension.bookmarks")
toggle mark: user.vscode("bookmarks.toggle")
go next mark: user.vscode("bookmarks.jumpToNext")
go last mark: user.vscode("bookmarks.jumpToPrevious")

close other tabs: user.vscode("workbench.action.closeOtherEditors")
close all tabs: user.vscode("workbench.action.closeAllEditors")
close tabs way right: user.vscode("workbench.action.closeEditorsToTheRight")
close tabs way left: user.vscode("workbench.action.closeEditorsToTheLeft")

# Folding
fold that: user.vscode("editor.fold")
unfold that: user.vscode("editor.unfold")
fold those: user.vscode("editor.foldAllMarkerRegions")
unfold those: user.vscode("editor.unfoldRecursively")
fold all: user.vscode("editor.foldAll")
unfold all: user.vscode("editor.unfoldAll")
fold comments: user.vscode("editor.foldAllBlockComments")
fold one: user.vscode("editor.foldLevel1")
fold two: user.vscode("editor.foldLevel2")
fold three: user.vscode("editor.foldLevel3")
fold four: user.vscode("editor.foldLevel4")
fold five: user.vscode("editor.foldLevel5")
fold six: user.vscode("editor.foldLevel6")
fold seven: user.vscode("editor.foldLevel7")

# Git / Github (not using verb-noun-adjective pattern, mirroring terminal commands.)
git branch: user.vscode("git.branchFrom")
git branch this: user.vscode("git.branch")
git checkout [<user.text>]:
    user.vscode("git.checkout")
    sleep(50ms)
    insert(text or "")
git commit [<user.text>]:
    user.vscode("git.commitStaged")
    sleep(100ms)
    user.insert_formatted(text or "", "CAPITALIZE_FIRST_WORD")
git commit undo: user.vscode("git.undoCommit")
git commit amend: user.vscode("git.commitStagedAmend")
git diff: user.vscode("git.openChange")
git fetch: user.vscode("git.fetch")
git fetch all: user.vscode("git.fetchAll")
git ignore: user.vscode("git.ignore")
git merge: user.vscode("git.merge")
git output: user.vscode("git.showOutput")
git pull: user.vscode("git.pullRebase")
git push: user.vscode("git.push")
git push focus: user.vscode("git.pushForce")
git rebase abort: user.vscode("git.rebaseAbort")
git reveal: user.vscode("git.revealInExplorer")
git revert: user.vscode("git.revertChange")
git stash: user.vscode("git.stash")
git stash pop: user.vscode("git.stashPop")
git status: user.vscode("workbench.scm.focus")
git stage: user.vscode("git.stage")
git stage all: user.vscode("git.stageAll")
git sync: user.vscode("git.sync")
git unstage: user.vscode("git.unstage")
git unstage all: user.vscode("git.unstageAll")
pull request: user.vscode("pr.create")
# Use keyboard shortcuts because VSCode relies on when clause contexts to choose the appropriate
# action: https://code.visualstudio.com/api/references/when-clause-contexts
change next: key(alt-f5)
change last: key(shift-alt-f5)

#Debugging
break point: user.vscode("editor.debug.action.toggleBreakpoint")
step over: user.vscode("workbench.action.debug.stepOver")
debug step into: user.vscode("workbench.action.debug.stepInto")
debug step out [of]: user.vscode("workbench.action.debug.stepOut")
debug start: user.vscode("workbench.action.debug.start")
debug pause: user.vscode("workbench.action.debug.pause")
debug stopper: user.vscode("workbench.action.debug.stop")
debug continue: user.vscode("workbench.action.debug.continue")
debug restart: user.vscode("workbench.action.debug.restart")
debug console: user.vscode("workbench.debug.action.toggleRepl")

# Terminal
terminal external: user.vscode("workbench.action.terminal.openNativeConsole")
terminal new: user.vscode("workbench.action.terminal.new")
terminal next: user.vscode("workbench.action.terminal.focusNext")
terminal last: user.vscode("workbench.action.terminal.focusPrevious")
terminal split: user.vscode("workbench.action.terminal.split")
terminal zoom: user.vscode("workbench.action.toggleMaximizedPanel")
terminal trash: user.vscode("workbench.action.terminal.kill")
terminal toggle: user.vscode_and_wait("workbench.action.terminal.toggleTerminal")
terminal scroll up: user.vscode("workbench.action.terminal.scrollUp")
terminal scroll down: user.vscode("workbench.action.terminal.scrollDown")
terminal <number_small>: user.vscode_terminal(number_small)

#TODO: should this be added to linecommands?
copy line down: user.vscode("editor.action.copyLinesDownAction")
copy line up: user.vscode("editor.action.copyLinesUpAction")

#Expand/Shrink AST Selection
select less: user.vscode("editor.action.smartSelect.shrink")
select (more|this): user.vscode("editor.action.smartSelect.expand")

minimap: user.vscode("editor.action.toggleMinimap")
maximize: user.vscode("workbench.action.minimizeOtherEditors")
restore: user.vscode("workbench.action.evenEditorWidths")

#breadcrumb
select breadcrumb: user.vscode('breadcrumbs.focusAndSelect')
# Use `alt-left` and `alt-right` to navigate the bread crumb

replace here:
    user.replace("")
    key(cmd-alt-l)

hover show: user.vscode("editor.action.showHover")

join lines: user.vscode("editor.action.joinLines")

full screen: user.vscode("workbench.action.toggleFullScreen")

curse undo: user.vscode("cursorUndo")

select word: user.vscode("editor.action.addSelectionToNextFindMatch")
skip word: user.vscode("editor.action.moveSelectionToNextFindMatch")

# jupyter
cell next: user.vscode("jupyter.gotoNextCellInFile")
cell last: user.vscode("jupyter.gotoPrevCellInFile")
cell run above: user.vscode("jupyter.runallcellsabove.palette")
cell run: user.vscode("jupyter.runcurrentcell")

install local: user.vscode("workbench.extensions.action.installVSIX")

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment)
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (tag_import_declaration
      (identifier))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word))
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))
        (expression_statement
          (sleep_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (sleep_action
            (implicit_string)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (string))
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (word))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string))))
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
155. File knausj_talon/apps/thunderbird/thunderbird.talon
================================================================================

app: thunderbird
and not app: thunderbird_contacts
and not app: thunderbird_composer
-
# Set tags
tag(): user.tabs

# navigate tabs
go (mails | messages | inbox): user.tab_jump(1)
go (calendar | lightning): user.thunderbird_mod("shift-c")
go tasks: user.thunderbird_mod("shift-d")
# open windows
(open address [book] | address book | open contacts): user.thunderbird_mod("shift-b")
dev tools: user.thunderbird_mod("shift-i")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (match_modifier)
      (identifier)
      (implicit_string))
    (match
      (match_modifier)
      (match_modifier)
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (tag_import_declaration
      (identifier))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (parenthesized_rule
          (choice
            (seq
              (word)
              (word)
              (optional
                (word)))
            (seq
              (word)
              (word))
            (seq
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
156. File knausj_talon/apps/thunderbird/thunderbird_inbox.talon
================================================================================

app: thunderbird_inbox
-
# navigate
(mail | message) open: key(enter)
(mail | message) (up | last): key(b)
(mail | message) (down | next): key(f)
unread [mail | message] (up | last): key(p)
unread [mail | message] (down | next): key(n)
go home: key(alt-home)
toggle (mail | message) [pane]: key(f8)
# mark
(mail | message) (favorite | unfavorite): key(s)
(mail | message) (read | unread): key(m)
(mail | message) (watch | unwatch): key(w)
(mail | message) (ignore | unignore): key(k)
(mail | message) suspend: key(c)
(mail | message) spam: key(j)
# send
(mail | message) new: user.thunderbird_mod("n")
(mail | message) edit: user.thunderbird_mod("e")
(mail | message) reply sender: user.thunderbird_mod("r")
(mail | message) reply all: user.thunderbird_mod("shift-r")
(mail | message) reply list: user.thunderbird_mod("shift-l")
(mail | message) forward: user.thunderbird_mod("l")
# organize
(mail | message) delete: key(delete)
(mail | message) archive: key(a)
(mail | message) save: user.thunderbird_mod("s")
(mail | message) print: user.thunderbird_mod("p")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (optional
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (optional
            (word))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (parenthesized_rule
            (choice
              (word)
              (word)))))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
157. File knausj_talon/apps/thunderbird/thunderbird_contacts.talon
================================================================================

app: thunderbird_contacts
-
contact new: user.thunderbird_mod("n")
contact edit: user.thunderbird_mod("i")
contact delete: key(delete)
contact print: user.thunderbird_mod("p")
contact message: user.thunderbird_mod("m")
contact up: key(up)
contact down: key(down)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
158. File knausj_talon/apps/thunderbird/thunderbird_tasks.talon
================================================================================

app: thunderbird_tasks
-
# event/task
event new: user.thunderbird_mod("i")
task new: user.thunderbird_mod("d")
(task | event) delete: key(delete)
# layout
toggle today: key(f11)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))))

================================================================================
159. File knausj_talon/apps/thunderbird/thunderbird_composer.talon
================================================================================

app: thunderbird_composer
-
# mail
(draft | mail | message) save: user.thunderbird_mod("s")
(draft | mail | message) print: user.thunderbird_mod("p")
(draft | mail | message) send: user.thunderbird_mod("enter")
# layout
toggle contacts: key(f9)
# navigation
go (inbox | thunderbird | main): user.thunderbird_mod("1")
# edit
cite paste: user.thunderbird_mod("shift-o")
(unformatted | raw) paste: user.thunderbird_mod("shift-v")
link new: user.thunderbird_mod("k")
link delete: user.thunderbird_mod("shift-k")

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (parenthesized_rule
            (choice
              (word)
              (word)
              (word)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))))

================================================================================
160. File knausj_talon/apps/thunderbird/thunderbird_calendar.talon
================================================================================

app: thunderbird_calendar
-
# event/task
event new: user.thunderbird_mod("i")
task new: user.thunderbird_mod("d")
(task | event) delete: key(delete)
# layout
toggle today: key(f11)
view <number_small>: user.thunderbird_calendar_view(number_small)
view day: user.thunderbird_calendar_view(1)
view week: user.thunderbird_calendar_view(2)
view multi [week]: user.thunderbird_calendar_view(3)
view month: user.thunderbird_calendar_view(4)

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (comment)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))))
    (command_declaration
      (rule
        (seq
          (parenthesized_rule
            (choice
              (word)
              (word)))
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (comment)
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (key_action
            (implicit_string)))))
    (command_declaration
      (rule
        (seq
          (word)
          (capture
            (identifier))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (word))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))))))

================================================================================
161. File knausj_talon/apps/1password/1password_global.talon
================================================================================

#todo: tags
-
password fill: user.password_fill()
password show: user.password_show()

--------------------------------------------------------------------------------

(source_file
  (matches
    (comment))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
162. File knausj_talon/apps/1password/1password.talon
================================================================================

app: one_password
-
password new: user.password_new()
password dup: user.password_duplicate()
password edit: user.password_edit()
password delete: user.password_delete()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
163. File knausj_talon/mouse_grid/mouse_grid_open.talon
================================================================================

tag: user.mouse_grid_showing
-
<user.number_key>:
    user.grid_narrow(number_key)
grid off:
    user.grid_close()

grid reset:
    user.grid_reset()

grid back:
    user.grid_go_back()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (capture
          (identifier)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
164. File knausj_talon/mouse_grid/mouse_grid.talon
================================================================================

tag: user.mouse_grid_enabled
-
M grid:
    app.notify("please use the voice command 'mouse grid' instead of 'm grid'")
    user.grid_select_screen(1)
    user.grid_activate()

--------------------------------------------------------------------------------

(source_file
  (matches
    (match
      (identifier)
      (implicit_string)))
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (string
                (string_content)))))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))

================================================================================
165. File knausj_talon/mouse_grid/mouse_grid_always.talon
================================================================================

mouse grid:
    user.grid_select_screen(1)
    user.grid_activate()

grid win:
    user.grid_place_window()
    user.grid_activate()

grid <user.number_key>+:
    user.grid_activate()
    user.grid_narrow_list(number_key_list)

grid screen [<number>]:
    user.grid_select_screen(number or 1)
    user.grid_activate()

--------------------------------------------------------------------------------

(source_file
  (matches)
  (declarations
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (integer))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))
    (command_declaration
      (rule
        (seq
          (word)
          (repeat1
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list)))
        (expression_statement
          (action
            (identifier)
            (argument_list
              (variable
                (identifier)))))))
    (command_declaration
      (rule
        (seq
          (word)
          (word)
          (optional
            (capture
              (identifier)))))
      (block
        (expression_statement
          (action
            (identifier)
            (argument_list
              (binary_operator
                (variable
                  (identifier))
                (operator)
                (integer)))))
        (expression_statement
          (action
            (identifier)
            (argument_list)))))))
