summaryrefslogtreecommitdiffstats
path: root/completions/pydoc
diff options
context:
space:
mode:
Diffstat (limited to 'completions/pydoc')
-rw-r--r--completions/pydoc33
1 files changed, 16 insertions, 17 deletions
diff --git a/completions/pydoc b/completions/pydoc
index e7b1178..2cf2987 100644
--- a/completions/pydoc
+++ b/completions/pydoc
@@ -1,42 +1,41 @@
# pydoc completion -*- shell-script -*-
-_pydoc()
+_comp_cmd_pydoc()
{
- local cur prev words cword
- _init_completion || return
+ local cur prev words cword comp_args
+ _comp_initialize -- "$@" || return
case $prev in
-k | -p)
return
;;
-w)
- _filedir
+ _comp_compgen_filedir
return
;;
esac
if [[ $cur == -* ]]; then
- COMPREPLY=($(compgen -W \
- '$("$1" | command sed -e "s/^pydoc3\{0,1\} //" | _parse_help -)' \
- -- "$cur"))
+ _comp_compgen_help - <<<"$("$1" | command sed -e "s/^pydoc3\{0,1\} //")"
return
fi
- COMPREPLY=($(compgen -W 'keywords topics modules' -- "$cur"))
+ _comp_compgen -- -W 'keywords topics modules'
- if [[ $cur != @(.|*/)* ]]; then
- local python=python
- [[ ${1##*/} == *3* ]] && python=python3
- _xfunc python _python_modules $python
+ if ! _comp_looks_like_path "$cur"; then
+ # Prefer python in the same dir for resolving modules
+ local pathcmd
+ pathcmd=$(type -P "$1") && local PATH=${pathcmd%/*}:$PATH
+ _comp_compgen -ax python modules
fi
# Note that we don't do "pydoc modules" as it is known to hang on
- # some systems; _python_modules tends to work better and faster.
- COMPREPLY+=($(compgen -W \
- '$($1 keywords topics | command sed -e /^Here/d)' -- "$cur"))
+ # some systems; _comp_xfunc_python_modules tends to work better and faster.
+ _comp_compgen -a split -- "$("$1" keywords topics |
+ command sed -e '/^Here/d')"
- _filedir py
+ _comp_compgen -a filedir py
} &&
- complete -F _pydoc pydoc pydoc3
+ complete -F _comp_cmd_pydoc pydoc pydoc3
# ex: filetype=sh