#compdef geeknote # Geeknote Autocomplete plugin for Zsh # Requires: Geeknote installed # Author : Ján Koščo (@s7anley) __login() { # no arguments } __logout() { _arguments \ '--force[Do not ask about logging out.]' } __settings() { _arguments \ "--editor+[Set the editor, which use to edit and create notes.]::" } __create() { _arguments \ '--title+[The note title.]::' \ '--content+[The note content.]::' \ '--tags+[One tag or the list of tags which will be added to the note.]::' \ '--notebook+[Set the notebook where to save note.]::' \ '--resource+[Add a resource to the note.]::' } __edit() { _arguments \ '--note+[The name or ID from the previous search of a note to edit.]::' \ '--title+[Set new title of the note.]::' \ '--content+[Set new content of the note.]::' \ '--tags+[Set new list o tags for the note.]::' \ '--notebook+[Assign new notebook for the note.]::' \ '--resource+[Add a resource to the note.]::' } __find() { _arguments \ '--search+[Text to search.]::' \ '--tags+[Notes with which tag/tags to search.]::' \ '--notebook+[In which notebook search the note.]::' \ '--date+[Set date in format dd.mm.yyyy or date range dd.mm.yyyy-dd.mm.yyyy.]::' \ '--count+[How many notes show in the result list.]::' \ '--with-url[Add direct url of each note in results to Evernote web-version.]' \ '--content-search[Search by content, not by title.]' \ '--exact-entry[Search for exact entry of the request.]' } __show() { _arguments \ '--note+[The name or ID from the previous search of a note to show.]::' \ '--raw[Show the raw note body.]' } __remove() { _arguments \ '--note+[The name or ID from the previous search of a note to remove.]::' \ '--force[Do not ask about removing.]' } __notebook-list() { # no arguments } __notebook-create() { _arguments \ '--title+[Set the title of new notebook.]::' } __notebook-edit() { _arguments \ '--title+[Set the title of new notebook.]::' \ '--notebook+[The name of a notebook to rename.]::' } __tag-list() { # no arguments } __tag-create() { _arguments \ '--title+[Set the title of new tag.]::' } __tag-edit() { _arguments \ '--tagname+[The name of a tag to rename.]::' \ '--title+[Set the new name of tag.]::' } __user() { _arguments \ '--full[Show full information.]' } local -a _1st_arguments _1st_arguments=( 'login':'Authorize in Evernote.' 'logout':'Logout from Evernote.' 'settings':'Show and edit current settings.' 'create':'Create note in Evernote.' 'edit':'Edit note in Evernote.' 'find':'Search notes in Evernote.' 'show':'Output note in the terminal.' 'remove':'Remove note from Evernote.' 'notebook-list':'Show the list of existing notebooks in your Evernote.' 'notebook-create':'Create new notebook.' 'notebook-edit':'Edit/rename notebook.' 'tag-list':'Show the list of existing tags in your Evernote.' 'tag-create':'Create new tag.' 'tag-edit':'Edit/rename tag.' 'user':'Show information about active user.' ) _arguments '*:: :->command' if (( CURRENT == 1 )); then _describe -t commands "geeknote command" _1st_arguments return fi local -a _command_args case "$words[1]" in login) __login ;; logout) __logout ;; settings) __settings ;; create) __create ;; edit) __edit ;; find) __find ;; show) __show ;; remove) __remove ;; notebook-list) __notebook-list ;; notebook-create) __notebook-create ;; notebook-edit) __notebook-edit ;; tag-list) __tag-list ;; tag-create) __tag-create ;; tag-edit) __tag-edit ;; user) __user ;; esac