summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_pydoc
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2015-05-05 23:32:59 +0200
committerAxel Beckert <abe@deuxchevaux.org>2015-05-05 23:58:59 +0200
commitdb38e167634b6c2217eec3a5aafc37c46d9e5a8d (patch)
treedaa342d423febbd3a5a7ef97053037677fab004a /Completion/Unix/Command/_pydoc
parent01eea47617a6e06debdb4330f92ae69f92089fd2 (diff)
parent3c3c8d3d13fd4cf6c03f81ca8dc18a1efd561728 (diff)
downloadzsh-db38e167634b6c2217eec3a5aafc37c46d9e5a8d.tar.gz
zsh-db38e167634b6c2217eec3a5aafc37c46d9e5a8d.zip
Merge branch 'upstream' into debian
Diffstat (limited to 'Completion/Unix/Command/_pydoc')
-rw-r--r--Completion/Unix/Command/_pydoc42
1 files changed, 30 insertions, 12 deletions
diff --git a/Completion/Unix/Command/_pydoc b/Completion/Unix/Command/_pydoc
index 92a01a76f..677c96ad6 100644
--- a/Completion/Unix/Command/_pydoc
+++ b/Completion/Unix/Command/_pydoc
@@ -1,16 +1,34 @@
-#compdef pydoc
+#compdef -P pydoc[0-9.]#
-local context state line
+local curcontext=$curcontext state state_descr line ret=1
typeset -A opt_args
+local -a args
-_arguments \
- '-k[keyword]:keyword:' \
- '-p[port]:port:_ports' \
- '-g[gui]' \
- '-w[write out HTML]:file or dir:_files' \
- ':keyword, topic, module, package, or dotted reference:->lookup' && return 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'
+)
-_alternative \
- 'keywords:keyword:compadd ${=${${(f)"$(pydoc keywords)"}[2,-1]}}' \
- 'topics:topic:compadd ${=${${(f)"$(pydoc topics)"}[2,-1]}}' \
- 'modules:module:'
+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