1
0
Files
goto/completion.bash
2026-04-06 18:54:09 +02:00

44 lines
956 B
Bash

# goto completion -*- shell-script -*-
_comp_cmd_goto() {
local cur prev words cword comp_args
_comp_initialize -- "$@" || return
# echo "[$cur] [$prev] [${words[@]}] [$cword] [$comp_args]"
local -A opts=([-e]="" [-l]="" [-t]="")
local i
for i in "${!words[@]}"; do
[[ ${words[i]} && $i -ne $cword ]] && unset -v "opts[${words[i]}]"
case "${words[i]}" in
-e)
unset -v 'opts[-l]' 'opts[-t]'
;;
-l)
unset -v 'opts[-e]' 'opts[-t]'
;;
-t)
unset -v 'opts[-e]' 'opts[-l]'
;;
esac
done
if [[ $cur == -* ]]; then
_comp_compgen -- -W '"${!opts[@]}"'
return
fi
case $prev in
-e)
[[ -v 'opts[-e]' ]] && __goto_comp_keys
return
;;
esac
# do goto keys only if we did not have -[elt]
[[ ${words[*]} == *\ -* ]] || __goto_comp_keys
} &&
complete -F _comp_cmd_goto goto
# ex: filetype=sh