1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-30 05:40:58 +01:00

34415: cache list of all python modules

This commit is contained in:
Jun-ichi Takimoto 2015-01-28 23:58:23 +09:00
parent f591458321
commit 1faf2888e9
4 changed files with 81 additions and 25 deletions

View file

@ -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