From 1faf2888e9617c7bade0a45a4b09648c8da9f6e3 Mon Sep 17 00:00:00 2001 From: Jun-ichi Takimoto Date: Wed, 28 Jan 2015 23:58:23 +0900 Subject: 34415: cache list of all python modules --- Completion/Unix/Command/_pydoc | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) (limited to 'Completion/Unix/Command/_pydoc') diff --git a/Completion/Unix/Command/_pydoc b/Completion/Unix/Command/_pydoc index f85ab0c2d..677c96ad6 100644 --- a/Completion/Unix/Command/_pydoc +++ b/Completion/Unix/Command/_pydoc @@ -1,19 +1,34 @@ -#compdef pydoc +#compdef -P pydoc[0-9.]# -local context state line ret=1 +local curcontext=$curcontext state state_descr line ret=1 typeset -A opt_args +local -a args -_arguments \ - '(-)-k[search keyword]:keyword' \ - '(- *)-p[start web server on specified port]:port number' \ - '(- *)-g[start gui]' \ - '(-)-w[write out HTML]:file or dir:_files' \ - '(- *)-h[show help information]' \ - '*: :->lookup' && ret=0 +args=( + '(- *)-k[search keyword]:keyword' + '(-k -g -w *)-p[start web server on specified port]:port number' + '(-)-w[write out HTML in current directory]' + '(-)*: :->lookup' +) -[[ -n $state ]] && _alternative -C $context \ - 'keywords:keyword:compadd ${=${${(f)"$(_call_program keywords pydoc keywords)"}[2,-1]}}' \ - 'topics:topic:compadd ${=${${(f)"$(_call_program topics pydoc topics)"}[2,-1]}}' \ - 'modules:module:' && ret=0 +if _pick_variant pydoc3='pydoc3 -b' pydoc2 -h; then + args+=( '(-k -w *)-b[start server and open browser]' ) +else + args+=( '(- *)-g[start gui]' ) +fi + +_arguments -C : $args && return 0 + +case $state in +(lookup) + if [[ $words[CURRENT] = */* ]]; then + _files && ret=0 + else + _alternative \ + 'keywords:keyword:compadd ${=${${(f)"$(_call_program keywords $words[1] keywords)"}[2,-1]}}' \ + 'topics:topic:compadd ${=${${(f)"$(_call_program topics $words[1] topics)"}[2,-1]}}' \ + 'modules:module:_python_modules' && ret=0 + fi +esac return ret -- cgit 1.4.1