diff --git a/completions/pydoc b/completions/pydoc index c16295d7..16adb863 100644 --- a/completions/pydoc +++ b/completions/pydoc @@ -23,8 +23,9 @@ _pydoc() fi COMPREPLY=( $( compgen -W 'keywords topics modules' -- "$cur" ) ) + local python=python; [[ $1 == *3* ]] && python=python3 + _xfunc python _python_modules $python _filedir py - # TODO: more completions: modules, ... } && complete -F _pydoc pydoc pydoc3 diff --git a/completions/python b/completions/python index 969f3b93..9c7cec13 100644 --- a/completions/python +++ b/completions/python @@ -1,12 +1,22 @@ # bash completion for python -*- shell-script -*- +_python_modules() +{ + COMPREPLY+=( $( compgen -W "$( ${1:-python} -c 'import pkgutil +for mod in pkgutil.iter_modules(): print(mod[1])' )" 2>/dev/null -- "$cur" ) ) +} + _python() { local cur prev words cword _init_completion || return case $prev in - -'?'|-h|--help|-V|--version|-c|-m) + -'?'|-h|--help|-V|--version|-c) + return 0 + ;; + -m) + _python_modules "$1" return 0 ;; -Q)