#compdef wiggle local fns='-m --merge -d --diff -x --extract' _arguments \ "($fns -1 -2 -3)"{-m,--merge}'[select the merge function]' \ "($fns -3 3)"{-d,--diff}'[display differences between files]' \ "($fns 2 3)"{-x,--extract}'[extract one branch of a patch or merge file]' \ '(-w --words -l --lines)'{-w,--words}'[make operations and display word based]' \ '(-l --lines -w --words)'{-l,--lines}'[make operations and display line based]' \ '(-p --patch)'{-p,--patch}'[treat last named file as a patch]' \ '(-r --replace)'{-r,--replace}'[replace orginal file with merged output]' \ '(-R --reverse -x --extract)'{-R,--reverse}'[swap the files or revert changes]' \ '(-2 -3 -m --merge)-1[select branch]' \ '(-1 -3 -m --merge)-2[select branch]' \ '(-1 -2 -m --merge)-3[select branch]' \ '(1 2 3 -)'{-h,--help}'[display help information]' \ '(1 2 3 -)'{-V,--version}'[display version information]' \ '(-v --verbose -q --quiet)'{-v,--verbose}'[enable verbose output]' \ '(-q --quiet -v --verbose)'{-q,--quiet}'[enable quiet output]' \ '1:file:_files' \ '2:file:_files' \ '3:file:_files'