dotfiles/lsd/Linux/autocomplete/lsd.bash-completion

74 lines
2.3 KiB
Plaintext

_lsd() {
local i cur prev opts cmds
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
cmd=""
opts=""
for i in ${COMP_WORDS[@]}
do
case "${i}" in
lsd)
cmd="lsd"
;;
*)
;;
esac
done
case "${cmd}" in
lsd)
opts=" -a -A -F -l -1 -R -h -d -t -S -r -V --all --almost-all --classify --long --oneline --recursive --human-readable --tree --directory-only --total-size --timesort --sizesort --reverse --classic --no-symlink --help --version --color --icon --icon-theme --depth --size --date --group-dirs --blocks <FILE>... "
if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
case "${prev}" in
--color)
COMPREPLY=($(compgen -W "always auto never" -- ${cur}))
return 0
;;
--icon)
COMPREPLY=($(compgen -W "always auto never" -- ${cur}))
return 0
;;
--icon-theme)
COMPREPLY=($(compgen -W "fancy unicode" -- ${cur}))
return 0
;;
--depth)
COMPREPLY=($(compgen -f ${cur}))
return 0
;;
--size)
COMPREPLY=($(compgen -W "default short bytes" -- ${cur}))
return 0
;;
--date)
COMPREPLY=($(compgen -W "date relative" -- ${cur}))
return 0
;;
--group-dirs)
COMPREPLY=($(compgen -W "none first last" -- ${cur}))
return 0
;;
--blocks)
COMPREPLY=($(compgen -W "permission user group size date name" -- ${cur}))
return 0
;;
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
esac
}
complete -F _lsd -o bashdefault -o default lsd