diff --git a/src/_cask b/src/_cask index 3cd4335..ff06771 100644 --- a/src/_cask +++ b/src/_cask @@ -41,14 +41,29 @@ # ------------------------------------------------------------------------------ function _cask() { - local ret=1 state - _arguments \ + typeset -A opt_args + local context state line ret=1 + local curcontext="$curcontext" + + _arguments -C \ + '(--proxy --http-proxy --https-proxy)--proxy[Set emacs proxy for HTTPS and HTTPS]:host:_hosts' \ + '(--proxy --http-proxy)--http-proxy[Set emacs proxy for HTTP]:host:_hosts' \ + '(--proxy --https-proxy)--https-proxy[Set emacs proxy for HTTPS]:host:_hosts' \ + '(--proxy --http-proxy --https-proxy)--proxy[Set emacs proxy for HTTPS and HTTPS]:host:_hosts' \ + '--no-proxy[Set Emacs no-proxy to HOST]:host:_hosts' \ + '(- *)--version[Print Cask version and exit]' \ + '(- *)'{-h,--help}'[Display usage or information for command]::command:->subcommand' \ + '--debug[Turn on debug output]' \ + '--path[Run command in this PATH instead of default-directory]:dir:_files -/' \ + '(--verbose --silent)--verbose[Be verbose and show debug output]' \ + '(--verbose --silent)--verbose[Be slient and do not show anything]' \ ':subcommand:->subcommand' \ - '*:: :->subcmds' && ret=0 + '*:: :->subcmds' \ + && ret=0 case $state in - subcommand) - subcommands=( + (subcommand) + local -a subcommands=( "build:build all Elisp files in the files directive" "clean-elc:remove all byte compiled Elisp files in the files directive" "exec:execute command with correct 'exec-path' and 'load-path'" @@ -71,15 +86,20 @@ function _cask() { "upgrade:upgrade Cask itself and its dependencies" "version:print program version" ) - _describe -t subcommands 'cask subcommands' subcommands && ret=0 - esac - case "$words[1]" in - init) - _arguments \ - '(--dev)--dev[Run in dev mode]' && ret=0 ;; - exec) - _generic + _describe -t subcommands 'cask subcommands' subcommands && ret=0 + ;; + (subcmds) + case "$words[1]" in + (init) + _arguments \ + '(--dev)--dev[Run in dev mode]' \ + && ret=0 + ;; + (exec) + _generic + ;; + esac ;; esac