blob: d50c18f0d836f0a802b950f24aac2e802bd06941 (
plain)
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
64
65
66
67
|
# bash completion for python -*- shell-script -*-
_python_modules()
{
COMPREPLY+=($(compgen -W \
"$(${1:-python} ${BASH_SOURCE[0]%/*}/../helpers/python $cur \
2>/dev/null)" -- "$cur"))
}
_python_warning_actions()
{
COMPREPLY+=($(compgen -W "ignore default all module once error" \
${prefix:+-P "$prefix"} -- "$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
--help | --version | -!(-*)[?hVcX])
return
;;
-!(-*)m)
_python_modules "$1"
return
;;
-!(-*)Q)
COMPREPLY=($(compgen -W "old new warn warnall" -P "$prefix" \
-- "$cur"))
return
;;
-!(-*)W)
_python_warning_actions
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 python2.7 python3 python3.{3..8} pypy pypy3 micropython
# ex: filetype=sh
|