mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-03 10:21:46 +02:00
41728: new completion for flac and update options in metaflac completion
This commit is contained in:
parent
256201eecd
commit
1051d48bf5
3 changed files with 123 additions and 54 deletions
|
@ -1,5 +1,8 @@
|
|||
2017-09-18 Oliver Kiddle <opk@zsh.org>
|
||||
|
||||
* 41728: Completion/Unix/Command/_flac (was _metaflac): new
|
||||
completion for flac and update options in metaflac completion
|
||||
|
||||
* 41727: Completion/Unix/Command/_tidy: run tidy -xml-config
|
||||
to get HTML options for completion
|
||||
|
||||
|
|
120
Completion/Unix/Command/_flac
Normal file
120
Completion/Unix/Command/_flac
Normal file
|
@ -0,0 +1,120 @@
|
|||
#compdef flac metaflac
|
||||
|
||||
local shortops common shared blocktypes level
|
||||
|
||||
shortops=(
|
||||
--show-md5sum
|
||||
--show-min-blocksize
|
||||
--show-max-blocksize
|
||||
--show-min-framesize
|
||||
--show-max-framesize
|
||||
--show-sample-rate
|
||||
--show-channels
|
||||
--show-bps
|
||||
--show-total-samples
|
||||
--show-vendor-tag
|
||||
'--show-tag=:FLAC tag'
|
||||
'--remove-tag=:FLAC tag'
|
||||
'--remove-first-tag=:FLAC tag'
|
||||
--remove-all-tags
|
||||
'*--set-tag=:FLAC tag and value: '
|
||||
'*--set-tag-from-file=:tag'
|
||||
'--import-tags-from=:flat file:_files'
|
||||
'--export-tags-to=:new file: '
|
||||
'--import-cuesheet-from=:file:_files'
|
||||
'--export-cuesheet-to=:new file:_files'
|
||||
'--import-picture-from=:file or specification:_files'
|
||||
'--export-picture-to=:file:_files'
|
||||
--scan-replay-gain
|
||||
--remove-replay-gain
|
||||
--add-replay-gain
|
||||
'*--add-seekpoint=:seek point'
|
||||
'--add-padding=:length (bytes)'
|
||||
)
|
||||
|
||||
blocktypes=( STREAMINFO PADDING APPLICATION SEEKTABLE VORBIS_COMMENT PICTURE )
|
||||
common=(
|
||||
'--block-number=:block number'
|
||||
'(--except-block-type)--block-type=:block type:_sequence compadd - $blocktypes'
|
||||
'(--block-type)--except-block-type=:block type:_sequence compadd - $blocktypes'
|
||||
)
|
||||
shared=(
|
||||
'--no-utf8-convert'
|
||||
'--preserve-modtime'
|
||||
)
|
||||
level=( -{,-compression-level-}{0,1,2,3,4,5,6,7,8} --best --fast )
|
||||
|
||||
case $service in
|
||||
flac)
|
||||
_arguments -s -S $shared \
|
||||
'(H -c --stdout)'{-c,--stdout}'[write output to stdout]' \
|
||||
'(H -s --silent --totally-silent)'{-s,--silent}"[don't output runtime statistics]" \
|
||||
'(H)--totally-silent' \
|
||||
'(H -w --warnings-as-errors)'{-w,--warnings-as-errors}'[treat all warnings as errors]' \
|
||||
'(H -f --force)'{-f,--force}'[overwrite output files]' \
|
||||
'(H -o --output-name -c --stdout)'{-o,--output-name=}'[specify output file name]' \
|
||||
'(H)--output-prefix=[prepend specified string to output file names]' \
|
||||
'(H)--delete-input-file' \
|
||||
'(H)--keep-foreign-metadata' \
|
||||
'(H)--skip=[skip initial samples from each input]:skip (mm:ss.ss)' \
|
||||
'(H)--until=[stop at specified sample for each input]:stop (+-mm:ss.ss)' \
|
||||
'(H)--ogg[use ogg as a transport layer]' \
|
||||
'(H)--serial-number=[serial number to use for the FLAC stream]:serial number' \
|
||||
'(H --force-aiff-format --force-rf64-format --force-wave64-format)--format-raw-format' \
|
||||
'*:file:_files -F line -g "(#i)*.(${${opt_args[(i)decode-*]:+flac|oga}:-wav|aif|aiff|raw|rf64|w64})(-.)"' \
|
||||
- 'H' \
|
||||
'(-)'{-v,--version}'[display version information]' \
|
||||
'(-)'{-h,--help}'[display help information]' \
|
||||
'(-)'{-H,--explain}'[display detailed explanation of usage and options]' \
|
||||
- encode \
|
||||
'(-V --verify)'{-V,--verify}'[verify a correct encoding]' \
|
||||
--lax --ignore-chunk-sizes '!--sector-align' --replay-gain \
|
||||
'--cuesheet=:file:_files' \
|
||||
'--picture=:specification:' \
|
||||
\*{-T,--tag}'[add a FLAC tag]:field=value' \
|
||||
'--tag-from-file=:field=file' \
|
||||
\*{-S,--seekpoint=}':seek point' \
|
||||
'(-P --padding)'{-P,--padding=}'[add space for metadata]:length (bytes)' \
|
||||
"($level[*])"$^level \
|
||||
'(-b --blocksize)'{-b,--blocksize=}'[specify block size in samples]:size:(192 576 1152 2304 4608 256 512 1024 2048 4096 8192 16384)' \
|
||||
'(-m --mid-side -M --adaptive-mid-side)'{-m,--mid-side}'[try mid-side coding for each frame]' \
|
||||
'(-m --mid-side -M --adaptive-mid-side)'{-M,--adaptive-mid-side}'[adaptive mid-side coding for all frames]' \
|
||||
'(-e --exhaustive-model-search)'{-e,--exhaustive-model-search}'[do exhaustive model search]' \
|
||||
\*{-A,--apodization=}'[window audio data with given the function]:function:(bartlett bartlett_hann blackman blackman_harris_4term_92dbconnes flattop gauss hamming hann kaiser_bessel nuttall rectangle triangle tukey welch)' \
|
||||
'(-l --max-lpc-order)'{-l,--max-lpc-order=}'[specify max LPC order]:order' \
|
||||
'(-p --qlp-coeff-precision-search -q --qlp-coeff-precision)'{-p,--qlp-coeff-precision-search}'[exhaustively search LP coeff quantization]' \
|
||||
'(-p --qlp-coeff-precision-search -q --qlp-coeff-precision)'{-q,--qlp-coeff-precision=}'[specify precision]:precision (bits)' \
|
||||
'(-r --rice-partition-order)'{-r,--rice-partition-order=}'[set min/max residual partition order]:order' \
|
||||
'--endian=:byte order:(big little)' \
|
||||
'--channels=:channels' \
|
||||
'--bps=:bits per sample' \
|
||||
'--sample-rate=:sample rate (Hz)' \
|
||||
'--sign=:sign of samples [signed]:(signed unsigned)' \
|
||||
'--input-size=:size (bytes)' \
|
||||
- decode \
|
||||
'(-d --decode -t --test -a --analyze)'{-d,--decode}'[decode a FLAC encoded file]' \
|
||||
'(-d --decode -t --test -a --analyze --delete-input-file)'{-t,--test}'[test a FLAC encoded file]' \
|
||||
'(-d --decode -t --test -a --analyze --delete-input-file)'{-a,--analyze}'[analyze a FLAC encoded file]' \
|
||||
'(-d --decode -t --test)'{--residual-text,--residual-gnuplot} \
|
||||
'(-F --decode-through-errors)'{-F,--decode-through-errors}'[continue decoding through stream errors]' \
|
||||
'--apply-replaygain-which-is-not-lossless=:specification' \
|
||||
'--cue=[set the beginning and ending cuepoints to decode]:cue point' \
|
||||
'(--force-raw-format --force-rf64-format --force-wave64-format)--force-aiff-format' \
|
||||
'(--force-raw-format --force-aiff-format --force-wave64-format)--force-rf64-format' \
|
||||
'(--force-raw-format --force-aiff-format --force-rf64-format)--force-wave64-format' \
|
||||
;;
|
||||
metaflac)
|
||||
_arguments -S $shared \
|
||||
'(--no-filename)--with-filename[prefix output with filename]' \
|
||||
'(--with-filename)--no-filename' \
|
||||
'--dont-use-padding[always rewrite the file]' \
|
||||
"*:FLAC file:_files -g \*.flac\(-.\)" \
|
||||
- 'short' $shortops \
|
||||
- 'list' $common --list \
|
||||
'--application-data-format=:format:(text hexdump)' \
|
||||
- 'remove' $common --remove \
|
||||
- '(ops)' \
|
||||
'(-)--help' '(-)--version' \
|
||||
--remove-all --merge-padding --sort-padding
|
||||
;;
|
||||
esac
|
|
@ -1,54 +0,0 @@
|
|||
#compdef metaflac
|
||||
|
||||
local _metaflac_opts _metaflac_shorts _metaflac_opers
|
||||
|
||||
_metaflac_opts=(
|
||||
'--preserve-modtime'
|
||||
'--with-filename[prefix output with filename]'
|
||||
'--no-filename'
|
||||
'--no-utf8-convert'
|
||||
'--dont-use-padding[always rewrite the file]'
|
||||
)
|
||||
_metaflac_shorts=(
|
||||
'--show-md5sum'
|
||||
'--show-min-blocksize'
|
||||
'--show-max-blocksize'
|
||||
'--show-min-framesize'
|
||||
'--show-max-framesize'
|
||||
'--show-sample-rate'
|
||||
'--show-channels'
|
||||
'--show-bps'
|
||||
'--show-total-samples'
|
||||
'--show-vendor-tag'
|
||||
'--show-tag=:FLAC tags'
|
||||
'--remove-tag=:FLAC tags: '
|
||||
'--remove-first-tag=:FLAC tags: '
|
||||
'--remove-all-tags'
|
||||
'--set-tag=:FLAC tag and value: '
|
||||
'--import-tags-from=:flat file:_files'
|
||||
'--export-tags-to=:new file: '
|
||||
'--import-cuesheet-from=:file:_files'
|
||||
'--export-cuesheet-to=:new file: '
|
||||
'--add-replay-gain'
|
||||
'--add-seekpoint=:: '
|
||||
'--add-padding=length'
|
||||
|
||||
)
|
||||
_metaflac_opers=(
|
||||
'--block-number=:: '
|
||||
'--block-type=:: '
|
||||
'--except-block-type=:: '
|
||||
'--application-data-format=:: '
|
||||
'--list'
|
||||
'--remove'
|
||||
'--remove-all'
|
||||
'--merge-padding'
|
||||
'--sort-padding'
|
||||
)
|
||||
|
||||
_arguments "$_metaflac_opts[@]" \
|
||||
"*:FLAC file:_files -g \*.flac\(-.\)" \
|
||||
- "shortcuts" \
|
||||
"$_metaflac_shorts[@]" \
|
||||
- "(operations)" \
|
||||
"$_metaflac_opers[@]"
|
Loading…
Reference in a new issue