summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_fmt
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2017-03-14 16:13:05 +0100
committerOliver Kiddle <opk@zsh.org>2017-03-14 16:13:05 +0100
commit45d910356ad6b75d47e56ed5cef2f43bffc12fca (patch)
treed9ad7ef4e55a28c4bb0024cb0100f567944b52f4 /Completion/Unix/Command/_fmt
parente869952200852a414debc6475a652e04e3b03641 (diff)
downloadzsh-45d910356ad6b75d47e56ed5cef2f43bffc12fca.tar.gz
zsh-45d910356ad6b75d47e56ed5cef2f43bffc12fca.zip
40842: update completions for coreutils and similar utilities, also improving BSD and Solaris support
Diffstat (limited to 'Completion/Unix/Command/_fmt')
-rw-r--r--Completion/Unix/Command/_fmt60
1 files changed, 60 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_fmt b/Completion/Unix/Command/_fmt
new file mode 100644
index 000000000..759396637
--- /dev/null
+++ b/Completion/Unix/Command/_fmt
@@ -0,0 +1,60 @@
+#compdef fmt
+
+local variant
+local -a args
+local copt="[preserve indentation of first two lines]"
+local wopt="[specify maximum line width]:width [75]"
+local sopt="[don't join short lines\: split only]"
+
+args=( -A "-*" "(1 2)-w+$wopt" '*:file:_files' )
+_pick_variant -r variant gnu=GNU unix --version
+case $variant in
+ gnu)
+ args=(
+ '(-c --crown-margin)'{-c,--crown-margin}$copt
+ '(-w --width)'{-w+,--width=}$wopt
+ '(-p --prefix)'{-p+,--prefix=}'[only reformat lines with specified prefix]:prefix'
+ '(-s --split-only)'{-s,--split-only}$sopt
+ '(-t --tagged-paragraph)'{-t,--tagged-paragraph}'[indentation of first line different from second]'
+ '(-u --uniform-spacing)'{-u,--uniform-spacing}'[use one space between words, two after sentences]'
+ '(-g --goal)'{-g,--goal=}'[specify goal width]:goal width [93% of width]'
+ '(- *)--help[display help information]'
+ '(- *)--version[display version information]'
+ '*:file:_files'
+ )
+ ;;
+ solaris*)
+ args=(
+ "-c$copt"
+ "-s$sopt"
+ )
+ ;;
+ netbsd*)
+ args+=(
+ '-C[center the text]'
+ '(1 2)-g+[specify goal width]:goal width'
+ '(1 2)-m+[specify maximum width]:maximum width'
+ '-r[format all lines]'
+ )
+ ;|
+ darwin*|dragonfly*|freebsd*|openbsd*)
+ args+=(
+ '-c[center the text line by line]'
+ '-m[sensible formatting of mail header lines]'
+ '-n[format lines beginning with a . (dot) character]'
+ "-p[change in indentation doesn't start new paragraph]"
+ '-s[collapse whitespace inside lines]'
+ '-d+[specify sentence-ending characters]:sentence ends [.?!]'
+ '-l+[replace initial spaces with tabs]:tab width [8]'
+ '-t+[specify tab width of input files]:tab width [8]'
+ )
+ ;& # fall-through
+ netbsd*)
+ args+=( ':: :_guard "[0-9]#" goal width' )
+ (( ${(M)#words[1,CURRENT-1]:#[0-9]##} )) && args+=(
+ ':: :_guard "[0-9]#" maximum width'
+ )
+ ;;
+esac
+
+_arguments -s -S $args