diff options
Diffstat (limited to 'completions/pydoc')
-rw-r--r-- | completions/pydoc | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/completions/pydoc b/completions/pydoc new file mode 100644 index 0000000..e7b1178 --- /dev/null +++ b/completions/pydoc @@ -0,0 +1,42 @@ +# pydoc completion -*- shell-script -*- + +_pydoc() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -k | -p) + return + ;; + -w) + _filedir + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W \ + '$("$1" | command sed -e "s/^pydoc3\{0,1\} //" | _parse_help -)' \ + -- "$cur")) + return + fi + + COMPREPLY=($(compgen -W 'keywords topics modules' -- "$cur")) + + if [[ $cur != @(.|*/)* ]]; then + local python=python + [[ ${1##*/} == *3* ]] && python=python3 + _xfunc python _python_modules $python + 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")) + + _filedir py +} && + complete -F _pydoc pydoc pydoc3 + +# ex: filetype=sh |