##// END OF EJS Templates
Also remove kernelspec
Matthias Bussonnier -
Show More
@@ -1,146 +1,137 b''
1 1 # load with: . ipython-completion.bash
2 2
3 3 if [[ -n ${ZSH_VERSION-} ]]; then
4 4 autoload -Uz bashcompinit && bashcompinit
5 5 fi
6 6
7 7 _ipython_get_flags()
8 8 {
9 9 local url=$1
10 10 local var=$2
11 11 local dash=$3
12 12 if [[ "$url $var" == $__ipython_complete_last ]]; then
13 13 opts=$__ipython_complete_last_res
14 14 return
15 15 fi
16 16 # matplotlib and profile don't need the = and the
17 17 # version without simplifies the special cased completion
18 18 opts=$(ipython ${url} --help-all | grep -E "^-{1,2}[^-]" | sed -e "s/<.*//" -e "s/[^=]$/& /" -e "s/^--matplotlib=$//" -e "s/^--profile=$/--profile /" -e "$ s/^/\n-h\n--help\n--help-all\n/")
19 19 __ipython_complete_last="$url $var"
20 20 __ipython_complete_last_res="$opts"
21 21 }
22 22
23 23 _ipython()
24 24 {
25 25 local cur=${COMP_WORDS[COMP_CWORD]}
26 26 local prev=${COMP_WORDS[COMP_CWORD - 1]}
27 local subcommands="kernel profile locate history kernelspec"
27 local subcommands="kernel profile locate history"
28 28 local opts="help"
29 29 if [ -z "$__ipython_complete_baseopts" ]; then
30 30 _ipython_get_flags baseopts
31 31 __ipython_complete_baseopts="${opts}"
32 32 fi
33 33 local baseopts="$__ipython_complete_baseopts"
34 34 local mode=""
35 35 for i in "${COMP_WORDS[@]}"; do
36 36 [ "$cur" = "$i" ] && break
37 37 if [[ ${subcommands} == *${i}* ]]; then
38 38 mode="$i"
39 39 break
40 40 elif [[ ${i} == "--"* ]]; then
41 41 mode="nosubcommand"
42 42 break
43 43 fi
44 44 done
45 45
46 46
47 47 if [[ ${cur} == -* ]]; then
48 48 case $mode in
49 49 "kernel")
50 50 _ipython_get_flags $mode
51 51 opts=$"${opts} ${baseopts}"
52 52 ;;
53 53 "locate" | "profile")
54 54 _ipython_get_flags $mode
55 55 ;;
56 "history" | "kernelspec")
56 "history")
57 57 if [[ $COMP_CWORD -ge 3 ]]; then
58 58 # 'history trim' and 'history clear' covered by next line
59 59 _ipython_get_flags $mode\ "${COMP_WORDS[2]}"
60 60 else
61 61 _ipython_get_flags $mode
62 62
63 63 fi
64 64 opts=$"${opts}"
65 65 ;;
66 66 *)
67 67 opts=$baseopts
68 68 esac
69 69 # don't drop the trailing space
70 70 local IFS=$'\t\n'
71 71 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
72 72 return 0
73 73 elif [[ $mode == "profile" ]]; then
74 74 opts="list create locate "
75 75 local IFS=$'\t\n'
76 76 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
77 77 elif [[ $mode == "history" ]]; then
78 78 if [[ $COMP_CWORD -ge 3 ]]; then
79 79 # drop into flags
80 80 opts="--"
81 81 else
82 82 opts="trim clear "
83 83 fi
84 84 local IFS=$'\t\n'
85 85 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
86 elif [[ $mode == "kernelspec" ]]; then
87 if [[ $COMP_CWORD -ge 3 ]]; then
88 # drop into flags
89 opts="--"
90 else
91 opts="list install "
92 fi
93 local IFS=$'\t\n'
94 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
95 86 elif [[ $mode == "locate" ]]; then
96 87 if [[ $COMP_CWORD -ge 3 ]]; then
97 88 # drop into flags
98 89 opts="--"
99 90 else
100 91 opts="profile "
101 92 fi
102 93 local IFS=$'\t\n'
103 94 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
104 95 elif [[ ${prev} == "--matplotlib"* ]] || [[ ${prev} == "--gui"* ]]; then
105 96 if [ -z "$__ipython_complete_matplotlib" ]; then
106 97 __ipython_complete_matplotlib=`cat <<EOF | python -
107 98 try:
108 99 import IPython.core.shellapp as mod;
109 100 for k in mod.InteractiveShellApp.matplotlib.values:
110 101 print "%s " % k
111 102 except:
112 103 pass
113 104 EOF
114 105 `
115 106 fi
116 107 local IFS=$'\t\n'
117 108 COMPREPLY=( $(compgen -W "${__ipython_complete_matplotlib}" -- ${cur}) )
118 109 elif [[ ${prev} == "--profile"* ]]; then
119 110 if [ -z "$__ipython_complete_profiles" ]; then
120 111 __ipython_complete_profiles=`cat <<EOF | python -
121 112 try:
122 113 import IPython.core.profileapp
123 114 for k in IPython.core.profileapp.list_bundled_profiles():
124 115 print "%s " % k
125 116 p = IPython.core.profileapp.ProfileList()
126 117 for k in IPython.core.profileapp.list_profiles_in(p.ipython_dir):
127 118 print "%s " % k
128 119 except:
129 120 pass
130 121 EOF
131 122 `
132 123 fi
133 124 local IFS=$'\t\n'
134 125 COMPREPLY=( $(compgen -W "${__ipython_complete_profiles}" -- ${cur}) )
135 126 else
136 127 if [ "$COMP_CWORD" == 1 ]; then
137 128 local IFS=$'\t\n'
138 129 local sub=$(echo $subcommands | sed -e "s/ / \t/g")
139 130 COMPREPLY=( $(compgen -W "${sub}" -- ${cur}) )
140 131 else
141 132 COMPREPLY=( $(compgen -f -- ${cur}) )
142 133 fi
143 134 fi
144 135
145 136 }
146 137 complete -o default -o nospace -F _ipython ipython
General Comments 0
You need to be logged in to leave comments. Login now