#compdef buku
#
# Completion definition for buku.
#
# Author:
#   Arun Prakash Jana <engineerarun@gmail.com>
#

setopt localoptions noshwordsplit noksharrays
local -a args
args=(
    '(-a --add)'{-a,--add}'[add bookmark]:URL tags'
    '(--ai)--ai[auto-import bookmarks]'
    '(-c --comment)'{-c,--comment}'[comment on bookmark]'
    '(--cached)--cached[visit Wayback Machine cached version]:index/url'
    '(--colors)--colors[set output colors in 5-letter string]:color string'
    '(-d --delete)'{-d,--delete}'[delete bookmark]'
    '(--deep)--deep[search matching substrings]'
    '(--del-error)--del-error[delete bookmark on an HTTP error]::HTTP codes'
    '(-e --export)'{-e,--export}'[export bookmarks]:html/md/db output file'
    '(--expand)--expand[expand a tny.im shortened URL]:index/shorturl'
    '(--export-on)--export-on[export bookmarks based on HTTP status]::HTTP codes'
    '(-f --format)'{-f,--format}'[limit fields in print and JSON output]:value'
    '(-h --help)'{-h,--help}'[show help]'
    '(-i --import)'{-i,--import}'[import bookmarks]:html/md/db input file'
    '(--immutable)--immutable[disable title update from web]:value'
    '(-j --json)'{-j,--json}'[show JSON output for print and search]::file'
    '(-k --unlock)'{-k,--unlock}'[decrypt database]'
    '(-l --lock)'{-l,--lock}'[encrypt database]'
    '(--markers)--markers[enable search-with-markers mode (.>:#*)]'
    '(-n --count)'{-n,--count}'[results per page]:value'
    '(--nc)--nc[disable color output]'
    '(--np)--np[noninteractive mode]'
    '(-o --open)'{-o,--open}'[open bookmarks in browser]'
    '(--oa)--oa[browse all search results immediately]'
    '(--offline)--offline[add a bookmark without connecting to web]'
    '(--order)--order[order by fields (+/- prefix for direction)]:fields'
    '(-p --print)'{-p,--print}'[show bookmark details]'
    '(-r --sreg)'{-r,--sreg}'[match a regular expression]:regex'
    '(--random)--random[random subset (of 1 or given amount)]::amount'
    '(--replace)--replace[replace a tag]:tag to replace'
    '(-s --sany)'{-s,--sany}'[match any keyword]:keyword(s)'
    '(-S --sall)'{-S,--sall}'[match all keywords]:keyword(s)'
    '(--shorten)--shorten[shorten a URL using tny.im]:index/url'
    '(--suggest)--suggest[show a list of similar tags]'
    '(--swap)--swap[swap 2 given bookmark indices]:index1 index2'
    '(-t --stag)'{-t,--stag}'[search by tag or show tags]'
    '(--tacit)--tacit[reduce verbosity]'
    '(--tag)--tag[set tags, use + to append, - to remove]'
    '(--tag-error)--tag-error[add tag on an HTTP error]::tag pattern'
    '(--tag-redirect)--tag-redirect[add tag on a permanent redirect]::tag pattern'
    '(--threads)--threads[max connections for full refresh]:value'
    '(--title)--title[set custom title]'
    '(-u --update)'{-u,--update}'[update bookmark]'
    '(--url)--url[set url]:url'
    '(--url-redirect)--url-redirect[update URL on a permanent redirect]'
    '(-V)-V[check latest upstream release]'
    '(-v --version)'{-v,--version}'[show program version]'
    '(-w --write)'{-w,--write}'[open editor]'
    '(-x --exclude)'{-x,--exclude}'[exclude keywords]:keyword(s)'
    '(-g --debug)'{-g,--debug}'[enable debugging mode]'
)
_arguments -S -s $args
