##// END OF EJS Templates
Document the new input transformation API
Document the new input transformation API

File last commit:

r22631:4e3f1324
r24171:f3bd056d
Show More
ipython-completion.bash
137 lines | 4.2 KiB | text/x-sh | BashLexer
Julian Taylor
add bash completion example...
r8292 # load with: . ipython-completion.bash
Nathan Goldbaum
Completion: Adding preliminary zsh support.
r10204 if [[ -n ${ZSH_VERSION-} ]]; then
autoload -Uz bashcompinit && bashcompinit
fi
Julian Taylor
add bash completion example...
r8292 _ipython_get_flags()
{
local url=$1
local var=$2
local dash=$3
if [[ "$url $var" == $__ipython_complete_last ]]; then
opts=$__ipython_complete_last_res
return
fi
MinRK
remove pylab from desktop entrypoint and completion
r15183 # matplotlib and profile don't need the = and the
Julian Taylor
keep the trailing = of options
r8343 # version without simplifies the special cased completion
Paul Ivanov
insert -h --help and --help-all completion options
r17030 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/")
Julian Taylor
add bash completion example...
r8292 __ipython_complete_last="$url $var"
__ipython_complete_last_res="$opts"
}
_ipython()
{
local cur=${COMP_WORDS[COMP_CWORD]}
local prev=${COMP_WORDS[COMP_CWORD - 1]}
Matthias Bussonnier
Also remove kernelspec
r22631 local subcommands="kernel profile locate history"
Paul Ivanov
add kernelspec completions
r17028 local opts="help"
Julian Taylor
add bash completion example...
r8292 if [ -z "$__ipython_complete_baseopts" ]; then
Julian Taylor
fix profile subcommand completion
r8338 _ipython_get_flags baseopts
Julian Taylor
add bash completion example...
r8292 __ipython_complete_baseopts="${opts}"
fi
local baseopts="$__ipython_complete_baseopts"
local mode=""
for i in "${COMP_WORDS[@]}"; do
[ "$cur" = "$i" ] && break
if [[ ${subcommands} == *${i}* ]]; then
mode="$i"
Julian Taylor
don't offer subcommands after a dash option
r8337 break
elif [[ ${i} == "--"* ]]; then
mode="nosubcommand"
break
Julian Taylor
add bash completion example...
r8292 fi
done
Paul Ivanov
bash completion: profile, history, locate cmds
r13568
if [[ ${cur} == -* ]]; then
Paul Ivanov
bash completion: generalize subcmd completer logic
r13567 case $mode in
Matthias Bussonnier
Cleanup IPython bash completion from Jupyter commands.
r22627 "kernel")
Paul Ivanov
bash completion: generalize subcmd completer logic
r13567 _ipython_get_flags $mode
opts=$"${opts} ${baseopts}"
;;
Matthias Bussonnier
Cleanup IPython bash completion from Jupyter commands.
r22627 "locate" | "profile")
Paul Ivanov
bash completion: generalize subcmd completer logic
r13567 _ipython_get_flags $mode
Paul Ivanov
bash completion: proper history completion
r13608 ;;
Matthias Bussonnier
Also remove kernelspec
r22631 "history")
Paul Ivanov
bash completion: fix flags for history w/o subcmd
r13617 if [[ $COMP_CWORD -ge 3 ]]; then
Paul Ivanov
bash completion: history clear & trim handle flags
r13615 # 'history trim' and 'history clear' covered by next line
Paul Ivanov
add kernelspec completions
r17028 _ipython_get_flags $mode\ "${COMP_WORDS[2]}"
Paul Ivanov
bash completion: proper history completion
r13608 else
_ipython_get_flags $mode
fi
Paul Ivanov
bash completion: generalize subcmd completer logic
r13567 opts=$"${opts}"
;;
*)
opts=$baseopts
esac
Julian Taylor
keep the trailing = of options
r8343 # don't drop the trailing space
local IFS=$'\t\n'
Julian Taylor
add bash completion example...
r8292 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
Paul Ivanov
bash completion: profile, history, locate cmds
r13568 elif [[ $mode == "profile" ]]; then
Paul Ivanov
bash completion: history clear & trim handle flags
r13615 opts="list create locate "
local IFS=$'\t\n'
Paul Ivanov
bash completion: profile, history, locate cmds
r13568 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
elif [[ $mode == "history" ]]; then
Paul Ivanov
bash completion: history clear & trim handle flags
r13615 if [[ $COMP_CWORD -ge 3 ]]; then
# drop into flags
opts="--"
Paul Ivanov
bash completion: proper history completion
r13608 else
Paul Ivanov
bash completion: history clear & trim handle flags
r13615 opts="trim clear "
Paul Ivanov
bash completion: proper history completion
r13608 fi
Paul Ivanov
bash completion: history clear & trim handle flags
r13615 local IFS=$'\t\n'
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
Paul Ivanov
bash completion: profile, history, locate cmds
r13568 elif [[ $mode == "locate" ]]; then
Paul Ivanov
fix locate profile completion
r17031 if [[ $COMP_CWORD -ge 3 ]]; then
# drop into flags
opts="--"
else
opts="profile "
fi
local IFS=$'\t\n'
Paul Ivanov
bash completion: profile, history, locate cmds
r13568 COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
MinRK
remove pylab from desktop entrypoint and completion
r15183 elif [[ ${prev} == "--matplotlib"* ]] || [[ ${prev} == "--gui"* ]]; then
if [ -z "$__ipython_complete_matplotlib" ]; then
__ipython_complete_matplotlib=`cat <<EOF | python -
Julian Taylor
fix pylab completion
r8339 try:
import IPython.core.shellapp as mod;
MinRK
remove pylab from desktop entrypoint and completion
r15183 for k in mod.InteractiveShellApp.matplotlib.values:
Julian Taylor
keep the trailing = of options
r8343 print "%s " % k
Julian Taylor
fix pylab completion
r8339 except:
pass
EOF
Julian Taylor
replace $() with backticks...
r8344 `
Julian Taylor
fix pylab completion
r8339 fi
Julian Taylor
keep the trailing = of options
r8343 local IFS=$'\t\n'
MinRK
remove pylab from desktop entrypoint and completion
r15183 COMPREPLY=( $(compgen -W "${__ipython_complete_matplotlib}" -- ${cur}) )
Julian Taylor
use help-all to get all options and add profile specializations
r8336 elif [[ ${prev} == "--profile"* ]]; then
if [ -z "$__ipython_complete_profiles" ]; then
Julian Taylor
replace $() with backticks...
r8344 __ipython_complete_profiles=`cat <<EOF | python -
Julian Taylor
use help-all to get all options and add profile specializations
r8336 try:
import IPython.core.profileapp
for k in IPython.core.profileapp.list_bundled_profiles():
Julian Taylor
keep the trailing = of options
r8343 print "%s " % k
Julian Taylor
use help-all to get all options and add profile specializations
r8336 p = IPython.core.profileapp.ProfileList()
for k in IPython.core.profileapp.list_profiles_in(p.ipython_dir):
Julian Taylor
keep the trailing = of options
r8343 print "%s " % k
Julian Taylor
use help-all to get all options and add profile specializations
r8336 except:
pass
EOF
Julian Taylor
replace $() with backticks...
r8344 `
Julian Taylor
use help-all to get all options and add profile specializations
r8336 fi
Julian Taylor
keep the trailing = of options
r8343 local IFS=$'\t\n'
Julian Taylor
use help-all to get all options and add profile specializations
r8336 COMPREPLY=( $(compgen -W "${__ipython_complete_profiles}" -- ${cur}) )
Julian Taylor
add bash completion example...
r8292 else
Paul Ivanov
bash completion: ipython <tab> shows only subcmds...
r13569 if [ "$COMP_CWORD" == 1 ]; then
Paul Ivanov
bash completion: subcmds get a trailing space...
r13581 local IFS=$'\t\n'
local sub=$(echo $subcommands | sed -e "s/ / \t/g")
COMPREPLY=( $(compgen -W "${sub}" -- ${cur}) )
Julian Taylor
add bash completion example...
r8292 else
COMPREPLY=( $(compgen -f -- ${cur}) )
fi
fi
}
Julian Taylor
keep the trailing = of options
r8343 complete -o default -o nospace -F _ipython ipython