diff options
Diffstat (limited to 'completions/pydoc')
-rw-r--r-- | completions/pydoc | 33 |
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 |