Gimp/etc/bash_completion.in
Jehan 083360fac1 app, etc: do not hide --show-debug-menu.
This is a useful debugging function for developers. It is enough to hide
the menu by default on stable releases, I don't think we also need to
hide the CLI option. Developers don't know all these options by heart,
so we need to make them reasonably discoverable!
2025-12-13 00:10:57 +01:00

91 lines
2.3 KiB
Bash

__gimp()
{
COMPREPLY=()
local current="${COMP_WORDS[COMP_CWORD]}"
local prev="${COMP_WORDS[COMP_CWORD-1]}"
# GIMP options, sorted alphabetically
#
# Note that we don't specify short options here, since they're quite unintuitive
options=(
"--as-new"
"--batch"
"--batch-interpreter"
"--console-messages"
"--debug-handlers"
"--dump-gimprc"
"--dump-gimprc-manpage"
"--dump-gimprc-system"
"--dump-pdb-procedures-deprecated"
"--g-fatal-warnings"
"--gimprc"
"--help"
"--help-all"
"--help-gegl"
"--help-gtk"
"--license"
"--new-instance"
"--no-cpu-accel"
"--no-data"
"--no-fonts"
"--no-interface"
"--no-shm"
"--no-splash"
"--pdb-compat-mode"
"--session"
"--show-playground"
"--show-debug-menu"
"--stack-trace-mode"
"--system-gimprc"
"--verbose"
"--version"
)
#
# Different completions for specific options
#
case "${prev}" in
# Options that shouldn't be used in combination with something else
help | license | version)
return 0
;;
# Expect a filename
gimprc | session | system-gimprc)
COMPREPLY=( $(compgen -f -- ${current}) )
return 0
;;
# Expect *some* argument, so don't complete
b | batch | display)
return 0
;;
batch-interpreter)
# FIXME: we should try to get the list of interpreters somehow
local interpreters=$(gimp --LIST_INTERPRETERS)
COMPREPLY=("python-fu-eval" "plug-in-script-fu-eval")
return 0
;;
*)
;;
esac
# Default: complete with either an option "-W" or a filename "-f"
COMPREPLY=($(compgen -W "${options[*]}" -f -- ${current}))
return 0
}
complete -F __gimp @GIMP_MAIN_EXE@
if command -v @GIMP_SYMLINK1@ 2>&1 > /dev/null
then
complete -F __gimp @GIMP_SYMLINK1@
complete -F __gimp @GIMP_SYMLINK2@
fi
if command -v @GIMP_CONSOLE_EXE@ 2>&1 > /dev/null
then
complete -F __gimp @GIMP_CONSOLE_EXE@
if command -v @GIMP_CONSOLE_SYMLINK1@ 2>&1 > /dev/null
then
complete -F __gimp @GIMP_CONSOLE_SYMLINK1@
complete -F __gimp @GIMP_CONSOLE_SYMLINK2@
fi
fi