##// END OF EJS Templates
Inherit history machinery from LoggingConfigurable...
Inherit history machinery from LoggingConfigurable HistoryManager uses log (in an error case, which is why we didn't spot it before). Closes gh-9351

File last commit:

r17032:772e4387
r22182:f8924729
Show More
ipython-completion.bash
146 lines | 4.6 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]}
Paul Ivanov
added install-nbextension and trust completions
r17032 local subcommands="notebook qtconsole console kernel profile locate history nbconvert kernelspec install-nbextension trust "
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
Paul Ivanov
fix nbconvert completion...
r13602 "notebook" | "qtconsole" | "console" | "kernel" | "nbconvert")
Paul Ivanov
bash completion: generalize subcmd completer logic
r13567 _ipython_get_flags $mode
opts=$"${opts} ${baseopts}"
;;
Paul Ivanov
added install-nbextension and trust completions
r17032 "locate" | "profile" | "install-nbextension" | "trust")
Paul Ivanov
bash completion: generalize subcmd completer logic
r13567 _ipython_get_flags $mode
Paul Ivanov
bash completion: proper history completion
r13608 ;;
Paul Ivanov
add kernelspec completions
r17028 "history" | "kernelspec")
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
add kernelspec completions
r17028 elif [[ $mode == "kernelspec" ]]; then
if [[ $COMP_CWORD -ge 3 ]]; then
# drop into flags
opts="--"
else
opts="list install "
fi
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