zsh-completions/src/_trash

57 lines
1.7 KiB
Bash

#compdef trash
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for trash-d (https://github.com/rushsteve1/trash-d).
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * mirsella (github.com/mirsella)
#
# ------------------------------------------------------------------------------
declare -a args opts=( -A '-*' )
args=(
'(-d --dir)'{-d,--dir}'[Remove empty directories]'
'(-r --recursive)'{-r,--recursive}'[Delete directories and their contents]'
'(-v --verbose)'{-v,--verbose}'[Print more information]'
'(-i --interactive -I --interactive-once -f --force)'{-i,--interactive}'[Ask before each deletion]'
'(-i --interactive -I --interactive-once -f --force)'{-I,--interactive-once}'[Ask once if deleting 3 or more]'
'(-i --interactive -I --interactive-once -f --force)'{-f,--force}'[Don'\''t prompt and ignore errors]'
'(- *)--version[Output the version and exit]'
'--list[List out the files in the trash]'
'--orphans[List orphaned files in the trash]'
'--restore[Restore a file from the trash]'
'--delete[Delete a file from the trash]'
'--empty[Empty the trash bin]'
'--rm[Escape hatch to permanently delete a file]'
'(- *)'{-h,--help}'[This help information]'
'*:: :->file'
)
local curcontext=$curcontext state line ret=1
declare -A opt_args
_arguments -C -s -S $opts \
$args && ret=0
case $state in
(file)
(( CURRENT > 0 )) && line[CURRENT]=()
line=( ${line//(#m)[\[\]()\\*?#<>~\^\|]/\\$MATCH} )
_files -F line && ret=0
;;
esac
return $ret
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et