#compdef vim-addons
local state line cmds ret=1
typeset -A opt_args
_arguments -C \
{-q,--query}'[be quiet and make the output more parseable]' \
{-r,--registry-dir}'[set the registry directory]' \
{-s,--source-dir}'[set addon source directory]' \
{-t,--target-dir}'[set addon target directory]' \
{-v,--verbose}'[increase verbosity]' \
{-y,--system-dir}'[set system-wide target directory]' \
{-h,--help}'[help]' \
{-w,--system-wide}'[set target directory to the system-wide one (overrides -t)]' \
'1: :->cmds' \
'*: :->args' && ret=0
case $state in
cmds)
cmds=(
'install:install the specified addon'
'remove:remove the specified addon'
'list:list available addons in registry'
'status:list the status of addons'
'disable:disable the specified addons'
'amend:under the effects of the previous disable'
'files:list the files composing the specified addon'
'show:display detailed information about the specified addon'
)
_describe -t commands 'vim-addons command' cmds && ret=0
;;
args)
case $line[1] in
install)
_wanted addon expl 'addon' compadd $(command vim-addons -q | awk '$2 == "removed" { print $1 }') && ret=0
;;
amend)
_wanted addon expl 'addon' compadd $(command vim-addons -q | awk '$2 == "disabled" { print $1 }') && ret=0
;;
remove)
_wanted addon expl 'addon' compadd $(command vim-addons -q | awk '$2 ~ /disabled|installed/ { print $1 }') && ret=0
;;
files|status|disable|show)
_wanted addon expl 'addon' compadd $(command vim-addons list) && ret=0
;;
esac
;;
esac
return ret
Copyright 2K16 - 2K18 Indonesian Hacker Rulez