349 lines
12 KiB
Bash
349 lines
12 KiB
Bash
_zoxide() {
|
|
local i cur prev opts cmd
|
|
COMPREPLY=()
|
|
if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
|
|
cur="$2"
|
|
else
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
fi
|
|
prev="$3"
|
|
cmd=""
|
|
opts=""
|
|
|
|
for i in "${COMP_WORDS[@]:0:COMP_CWORD}"
|
|
do
|
|
case "${cmd},${i}" in
|
|
",$1")
|
|
cmd="zoxide"
|
|
;;
|
|
zoxide,add)
|
|
cmd="zoxide__subcmd__add"
|
|
;;
|
|
zoxide,edit)
|
|
cmd="zoxide__subcmd__edit"
|
|
;;
|
|
zoxide,import)
|
|
cmd="zoxide__subcmd__import"
|
|
;;
|
|
zoxide,init)
|
|
cmd="zoxide__subcmd__init"
|
|
;;
|
|
zoxide,query)
|
|
cmd="zoxide__subcmd__query"
|
|
;;
|
|
zoxide,remove)
|
|
cmd="zoxide__subcmd__remove"
|
|
;;
|
|
zoxide__subcmd__edit,decrement)
|
|
cmd="zoxide__subcmd__edit__subcmd__decrement"
|
|
;;
|
|
zoxide__subcmd__edit,delete)
|
|
cmd="zoxide__subcmd__edit__subcmd__delete"
|
|
;;
|
|
zoxide__subcmd__edit,increment)
|
|
cmd="zoxide__subcmd__edit__subcmd__increment"
|
|
;;
|
|
zoxide__subcmd__edit,reload)
|
|
cmd="zoxide__subcmd__edit__subcmd__reload"
|
|
;;
|
|
zoxide__subcmd__import,atuin)
|
|
cmd="zoxide__subcmd__import__subcmd__atuin"
|
|
;;
|
|
zoxide__subcmd__import,autojump)
|
|
cmd="zoxide__subcmd__import__subcmd__autojump"
|
|
;;
|
|
zoxide__subcmd__import,fasd)
|
|
cmd="zoxide__subcmd__import__subcmd__fasd"
|
|
;;
|
|
zoxide__subcmd__import,z)
|
|
cmd="zoxide__subcmd__import__subcmd__z"
|
|
;;
|
|
zoxide__subcmd__import,z.lua)
|
|
cmd="zoxide__subcmd__import__subcmd__z.lua"
|
|
;;
|
|
zoxide__subcmd__import,zsh-z)
|
|
cmd="zoxide__subcmd__import__subcmd__zsh__subcmd__z"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
done
|
|
|
|
case "${cmd}" in
|
|
zoxide)
|
|
opts="-h -V --help --version add edit import init query remove"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__add)
|
|
opts="-s -h -V --score --help --version <PATHS>..."
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
--score)
|
|
COMPREPLY=($(compgen -f "${cur}"))
|
|
return 0
|
|
;;
|
|
-s)
|
|
COMPREPLY=($(compgen -f "${cur}"))
|
|
return 0
|
|
;;
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__edit)
|
|
opts="-h -V --help --version decrement delete increment reload"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__edit__subcmd__decrement)
|
|
opts="-h -V --help --version <PATH>"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__edit__subcmd__delete)
|
|
opts="-h -V --help --version <PATH>"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__edit__subcmd__increment)
|
|
opts="-h -V --help --version <PATH>"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__edit__subcmd__reload)
|
|
opts="-h -V --help --version"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__import)
|
|
opts="-h -V --merge --help --version atuin autojump fasd z z.lua zsh-z"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__import__subcmd__atuin)
|
|
opts="-h -V --merge --help --version"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__import__subcmd__autojump)
|
|
opts="-h -V --merge --help --version"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__import__subcmd__fasd)
|
|
opts="-h -V --merge --help --version"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__import__subcmd__z)
|
|
opts="-h -V --merge --help --version"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__import__subcmd__z.lua)
|
|
opts="-h -V --merge --help --version"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__import__subcmd__zsh__subcmd__z)
|
|
opts="-h -V --merge --help --version"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__init)
|
|
opts="-h -V --no-cmd --cmd --hook --help --version bash elvish fish nushell posix powershell tcsh xonsh zsh"
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
--cmd)
|
|
COMPREPLY=($(compgen -f "${cur}"))
|
|
return 0
|
|
;;
|
|
--hook)
|
|
COMPREPLY=($(compgen -W "none prompt pwd" -- "${cur}"))
|
|
return 0
|
|
;;
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__query)
|
|
opts="-a -i -l -s -h -V --all --interactive --list --score --exclude --base-dir --help --version [KEYWORDS]..."
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
--exclude)
|
|
COMPREPLY=()
|
|
if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
|
|
compopt -o plusdirs
|
|
fi
|
|
return 0
|
|
;;
|
|
--base-dir)
|
|
COMPREPLY=()
|
|
if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
|
|
compopt -o plusdirs
|
|
fi
|
|
return 0
|
|
;;
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
zoxide__subcmd__remove)
|
|
opts="-h -V --help --version [PATHS]..."
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
esac
|
|
}
|
|
|
|
if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
|
|
complete -F _zoxide -o nosort -o bashdefault -o default zoxide
|
|
else
|
|
complete -F _zoxide -o bashdefault -o default zoxide
|
|
fi
|