1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
# bash completion for python -*- shell-script -*-
_python_modules()
{
COMPREPLY+=( $( compgen -W \
"$( ${1:-python} ${BASH_SOURCE[0]%/*}/../helpers/python $cur \
2>/dev/null )" -- "$cur" ) )
}
_python()
{
local cur prev words cword prefix
_init_completion || return
case $cur in
-[QWX]?*)
prefix=${cur:0:2}
prev=$prefix
cur=${cur:2}
;;
esac
case $prev in
-'?'|-h|--help|-V|--version|-c|-X)
return
;;
-m)
_python_modules "$1"
return
;;
-Q)
COMPREPLY=( $( compgen -W "old new warn warnall" -P "$prefix" \
-- "$cur" ) )
return
;;
-W)
COMPREPLY=( $( compgen -W "ignore default all module once error" \
-P "$prefix" -- "$cur" ) )
return
;;
--jit)
# TODO: quite a few others, parse from "--jit help" output?
COMPREPLY=( $( compgen -W "help off" -- "$cur" ) )
return
;;
!(?(*/)python*([0-9.])|?(*/)pypy*([0-9.])|-?))
[[ $cword -lt 2 || ${words[cword-2]} != -[QWX] ]] && _filedir
;;
esac
# if -c or -m is already given, complete all kind of files.
if [[ "${words[@]::$cword}" == *\ -[cm]\ * ]]; then
_filedir
elif [[ "$cur" != -* ]]; then
_filedir 'py?([cowz])'
else
COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) )
fi
} &&
complete -F _python python python2 python3 pypy pypy3 micropython
# ex: filetype=sh
|