diff options
Diffstat (limited to '')
-rw-r--r-- | completions/patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/completions/patch b/completions/patch new file mode 100644 index 0000000..e883d9c --- /dev/null +++ b/completions/patch @@ -0,0 +1,70 @@ +# patch(1) completion -*- shell-script -*- + +_patch() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --strip | --ifdef | --prefix | --basename-prefix | --suffix | --get | \ + -!(-*)[pDBYzg]) + return + ;; + --fuzz | -!(-*)F) + COMPREPLY=($(compgen -W '{0..3}' -- "$cur")) + return + ;; + --input | -!(-*)i) + _filedir '@(?(d)patch|dif?(f))' + return + ;; + --output | --reject-file | -!(-*)[or]) + [[ ! $cur || $cur == - ]] && COMPREPLY=(-) + _filedir + return + ;; + --quoting-style) + COMPREPLY=($(compgen -W 'literal shell shell-always c escape' \ + -- "$cur")) + return + ;; + --version-control | -!(-*)V) + COMPREPLY=($(compgen -W 'simple numbered existing' -- "$cur")) + return + ;; + --directory | -!(-*)d) + _filedir -d + return + ;; + --reject-format) + COMPREPLY=($(compgen -W 'context unified' -- "$cur")) + return + ;; + --read-only) + COMPREPLY=($(compgen -W 'ignore warn fail' -- "$cur")) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + return + fi + + local args + _count_args + case $args in + 1) + _filedir + ;; + 2) + _filedir '@(?(d)patch|dif?(f))' + ;; + esac +} && + complete -F _patch patch + +# ex: filetype=sh |