#compdef theca # _ _ # | |_| |__ ___ ___ __ _ # | __| '_ \ / _ \/ __/ _` | # | |_| | | | __/ (_| (_| | # \__|_| |_|\___|\___\__,_| # # licensed under the MIT license # # _theca - v0.9.0 # (minimal) zsh completion for the theca binary, this is really really # super annoying typeset -A opt_args _theca() { _arguments \ '(-p, --profile)'{-p,--profile}'[name of the profile to load]' \ '(-f, --profile-folder)'{-f,--profile-folder}'[path of the profile folder]' \ '(-e, --encrypted)'{-e,--encrypted}'[specify whether profile is encrypted or not]' \ '(-k, --key)'{-k,--key}'[specify a encryption key instead of waiting for a prompt]' \ '(-l, --limit)'{-l,--limit}'[number of notes to limit list by]' \ '(-r, --reverse)'{-r,--reverse}'[reverse note listing]' \ '(-d, --datesort)'{-d,--datesort}'[sort note listing by date modified]' \ '(-j, --json)'{-j,--json}'[output note lists as JSON]' \ '(-c, --condensed)'{-c,--condensed}'[use the condensed printing style]' \ '*:: :->args' \ '1: :_theca_cmds' \ case $state in args) case "$words[1]" in add) _arguments \ '(-y, --yes)'{-y,--yes}'[say yes to all prompts]' \ '(-s, --started)'{-s,--started}'[set note status to Started]' \ '(-u, --urgent)'{-u,--urgent}'[set note status to Urgent]' \ '(-b, --body)'{-b,--body}'[text to set note body to]' \ '(-t, --editor)'{-t,--editor}'[set note body using visual editor]' \ ;; edit) _arguments \ '(-p, --profile)'{-p,--profile}'[name of the profile to load]' \ '(-f, --profile-folder)'{-f,--profile-folder}'[path of the profile folder]' \ '(-e, --encrypted)'{-e,--encrypted}'[specify whether profile is encrypted or not]' \ '(-k, --key)'{-k,--key}'[specify a encryption key instead of waiting for a prompt]' \ '(-y, --yes)'{-y,--yes}'[say yes to all prompts]' \ '(-s, --started)'{-s,--started}'[set note status to Started]' \ '(-u, --urgent)'{-u,--urgent}'[set note status to Urgent]' \ '(-n, --none)'{-n,--none}'[set note status to None]' \ '(-b, --body)'{-b,--body}'[text to set note body to]' \ '(-t, --editor)'{-t,--editor}'[set note body using visual editor]' \ ;; search) _arguments \ '(-p, --profile)'{-p,--profile}'[name of the profile to load]' \ '(-f, --profile-folder)'{-f,--profile-folder}'[path of the profile folder]' \ '(-e, --encrypted)'{-e,--encrypted}'[specify whether profile is encrypted or not]' \ '(-k, --key)'{-k,--key}'[specify a encryption key instead of waiting for a prompt]' \ '--regex[search using a regex pattern]' \ '--search-body[search notes by body instead of title]' \ '(-l, --limit)'{-l,--limit}'[number of notes to limit list by]' \ '(-r, --reverse)'{-r,--reverse}'[reverse note listing]' \ '(-d, --datesort)'{-d,--datesort}'[sort note listing by date modified]' \ '(-j, --json)'{-j,--json}'[output note lists as JSON]' \ '(-c, --condensed)'{-c,--condensed}'[use the condensed printing style]' \ ;; del|clear|transfer|import|new-profile) _arguments \ '(-p, --profile)'{-p,--profile}'[name of the profile to load]' \ '(-f, --profile-folder)'{-f,--profile-folder}'[path of the profile folder]' \ '(-e, --encrypted)'{-e,--encrypted}'[specify whether profile is encrypted or not]' \ '(-k, --key)'{-k,--key}'[specify a encryption key instead of waiting for a prompt]' \ '(-y, --yes)'{-y,--yes}'[say yes to all prompts]' \ ;; encrypt-profile) _arguments \ '(-p, --profile)'{-p,--profile}'[name of the profile to load]' \ '(-f, --profile-folder)'{-f,--profile-folder}'[path of the profile folder]' \ '(-e, --encrypted)'{-e,--encrypted}'[specify whether profile is encrypted or not]' \ '(-k, --key)'{-k,--key}'[specify a encryption key instead of waiting for a prompt]' \ '(--new-key)[new encryption key to use (for encrypt-profile)]' \ ;; decrypt-profile) _arguments \ '(-p, --profile)'{-p,--profile}'[name of the profile to load]' \ '(-f, --profile-folder)'{-f,--profile-folder}'[path of the profile folder]' \ '(-e, --encrypted)'{-e,--encrypted}'[specify whether profile is encrypted or not]' \ '(-k, --key)'{-k,--key}'[specify a encryption key instead of waiting for a prompt]' \ ;; list-profiles) _arguments \ '(-f, --profile-folder)'{-f,--profile-folder}'[path of the profile folder]' \ ;; info) _arguments \ '(-p, --profile)'{-p,--profile}'[name of the profile to load]' \ '(-f, --profile-folder)'{-f,--profile-folder}'[path of the profile folder]' \ '(-e, --encrypted)'{-e,--encrypted}'[specify whether profile is encrypted or not]' \ '(-k, --key)'{-k,--key}'[specify a encryption key instead of waiting for a prompt]' \ ;; esac ;; esac } _theca_cmds(){ local -a commands commands=( ':list all notes' 'add:add a new note' 'edit:edit a existing note' 'del:delete a existing note' 'transfer:transfer a note from the current profile to another profile' 'import:transfer a note from a different profile to the current profile' 'search:search for notes in the current profile' 'info:print information about the current profile' 'new-profile:create a new profile' 'encrypt-profile:encrypt a plaintext profile or change the key for an encrypted profile' 'decrypt-profile:decrypt a encrypted profile' 'list-profiles:list all the profiles in the current profile folder' '-h, --help:show the help message' '-v, --version:show version information' ) _describe 'command' commands } _theca