1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#compdef jq
local ign
(( $#words > 2 )) && ign='!'
# Note:
# Arguments to options must be in separate words. Thus,
# {-f,--from-file}'[foo]'
# is correct like that, without the usual {-f+,--from-file=} suffixes.
#
_arguments -S -s : \
"${ign}(- 1 *)"{-V,--version}'[display version information]' \
"${ign}(- 1 *)"{-h,--help}'[display help information]' \
"${ign}(- 1 *)--build-configuration[display jq's build configuration]" \
"--seq[use application/json-seq ASCII RS/LF scheme in input and output]" \
"(--stream-errors -n --null-input)--stream[parse the input value in streaming fashion]" \
'(--stream -n --null-input)--stream-errors[parse the input value in streaming fashion with errors as an array]' \
'(-s --slurp -n --null-input)'{-s,--slurp}'[read all inputs into an array and use it as single input value]' \
'(-R --raw-input -n --null-input)'{-R,--raw-input}'[read each line as string instead of JSON]' \
'(-n --null-input --stream --stream-errors -s --slurp -R --raw-input)'{-n,--null-input}'[use `null` as the single input value]' \
'(-c --compact-output)'{-c,--compact-output}"[don't pretty-print]" \
'(--indent)--tab[indent output using TAB characters]' \
'(--tab)--indent[indent output using given number of spaces]:number of spaces (integer):(-1 0 1 2 3 4 5 6 7)' \
'(-C --color-output -M --monochrome-output)'{-C,--color-output}'[output in color]' \
'(-C --color-output -M --monochrome-output)'{-M,--monochrome-output}'[output without color]' \
'(-a --ascii-output)'{-a,--ascii-output}'[restrict output to ASCII using escape sequences]' \
'--unbuffered[flush output after each JSON object]' \
'(-S --sort-keys)'{-S,--sort-keys}'[output object keys in sorted order]' \
'(-r --raw-output -j --join-output --raw-output0)'{-r,--raw-output}"[don't JSON-quote output if it's a string]" \
'(-r --raw-output -j --join-output)--raw-output0[like -r, with NUL after each output]' \
'(-r --raw-output --raw-output0 -j --join-output)'{-j,--join-output}"[like -r, without newlines between outputs]" \
'(-f --from-file)'{-f,--from-file}'[read filter from file]: :_files' \
'-L+[prepend a directory to the module search path]:_directories' \
'(-e --exit-status)'{-e,--exit-status}'[report "false" and "null" results via exit code]' \
'*--arg[pre-set a variable to a string]:variable name: :value (string)' \
'*--argjson[pre-set a variable to an object]:variable name: :value (JSON)' \
'*--slurpfile[pre-set a variable to an array of JSON texts read from a file]:variable name: :file:_files' \
'*--rawfile[pre-set a variable to the contents of a file]:variable name: :file:_files' \
'--args[remaining arguments are string arguments, not files]' \
'--jsonargs[remaining arguments are JSON arguments, not files]' \
"1: :_guard '|[^-]' filter" \
"*: :_files"
|