diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | Completion/Unix/Command/_find | 20 | ||||
-rw-r--r-- | Completion/Zsh/Type/_globquals | 24 |
3 files changed, 38 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog index 9cc1c3ea4..3c722b79d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2016-06-22 Oliver Kiddle <opk@zsh.org> + * 38735: Completion/Unix/Command/_find, + Completion/Zsh/Type/_globquals: support verbose style to allow + clearer but less compact descriptions for time specifiers + * 38733: Completion/X/Command/_rdesktop: completion for xfreerdp 2016-06-21 Peter Stephenson <p.stephenson@samsung.com> diff --git a/Completion/Unix/Command/_find b/Completion/Unix/Command/_find index e736f32cb..3854d6cce 100644 --- a/Completion/Unix/Command/_find +++ b/Completion/Unix/Command/_find @@ -1,7 +1,7 @@ #compdef find gfind -local curcontext="$curcontext" state_descr variant -local -a state line args alts +local curcontext="$curcontext" state_descr variant default +local -a state line args alts disp smatch _pick_variant -r variant gnu=GNU $OSTYPE -version @@ -101,7 +101,7 @@ case $variant in '-D[print diagnostics]:debug option:(help tree search stat rates opt exec)' '-O+[enable query optimisation]:level:(1 2 3)' '*-daystart' - '-regextype:regexp syntax:(emacs posix-awk posix-basic posix-egrep posix-extended)' + '-regextype:regexp syntax:(help findutils-default awk egrep ed emacs gnu-awk grep posix-awk posix-basic posix-egrep posix-extended posix-minimal-basic sed)' '*-warn' '*-nowarn' '*-xautofs' @@ -147,13 +147,21 @@ _arguments -C $args \ '*-user:user:_users' \ '*-xdev' \ '*-a' '*-o' \ - '*:directory:_files -/' + '(-D -E -H -L -O -P -f -s -x --help --version)*:directory:_files -/' if [[ $state = times ]]; then if ! compset -P '[+-]' || [[ -prefix '[0-9]' ]]; then - disp=( 'before' 'exactly' 'since' ) compstate[list]+=' packed' - alts=( "senses:sense:compadd -V times -S '' -d disp - + '' -" ) + if zstyle -t ":completion:${curcontext}:senses" verbose; then + zstyle -s ":completion:${curcontext}:senses" list-separator sep || sep=-- + default=" [default exactly]" + disp=( "- $sep before" "+ $sep since" ) + smatch=( - + ) + else + disp=( before exactly since ) + smatch=( - '' + ) + fi + alts=( "senses:sense${default}:compadd -V times -S '' -d disp -a smatch" ) fi alts+=( "times:${state_descr}:_dates -f d" ) _alternative $alts diff --git a/Completion/Zsh/Type/_globquals b/Completion/Zsh/Type/_globquals index ed9c008a1..6eef16877 100644 --- a/Completion/Zsh/Type/_globquals +++ b/Completion/Zsh/Type/_globquals @@ -1,7 +1,7 @@ #autoload -local state=qual expl char delim timespec -local -a alts tdisp sdisp +local state=qual expl char delim timespec default +local -a alts tdisp sdisp tmatch smatch local -A specmap while [[ -n $PREFIX ]]; do @@ -118,11 +118,27 @@ while [[ -n $PREFIX ]]; do timespec=$PREFIX[1] if ! compset -P '[Mwhmsd]' && [[ -z $PREFIX ]]; then tdisp=( seconds minutes hours days weeks Months ) - alts+=( "time-specifiers:time specifier:compadd -E 0 -d tdisp -S '' - s m h d w M" ) + tmatch=( s m h d w M ) + if zstyle -t ":completion:${curcontext}:time-specifiers" verbose; then + zstyle -s ":completion:${curcontext}:time-specifiers" list-separator sep || sep=-- + print -v tdisp -f "%s ${sep//(#m)[%\\]/$MATCH$MATCH} %s\0" ${tmatch:^^tdisp} + tdisp=( ${(0)tdisp} ) + fi + alts+=( "time-specifiers:time specifier:compadd -E 0 -d tdisp -S '' -a tmatch" ) fi if ! compset -P '[-+]' && [[ -z $PREFIX ]]; then sdisp=( before exactly since ) - alts+=("senses:sense:compadd -E 0 -d sdisp -S '' - + '' -") + smatch=( - '' + ) + if zstyle -t ":completion:${curcontext}:senses" verbose; then + zstyle -s ":completion:${curcontext}:senses" list-separator sep || sep=-- + default=" [default exactly]" + sdisp=( "- $sep before" "+ $sep since" ) + smatch=( - + ) + else + sdisp=( before exactly since ) + smatch=( - '' + ) + fi + alts+=( "senses:sense${default}:compadd -E 0 -d sdisp -S '' -a smatch" ) fi specmap=( M months w weeks h hours m minutes s seconds '(|+|-|d)' days) alts+=('digits:digit ('${${specmap[(K)${timespec:-d}]}:-invalid time specifier}'):_dates -f ${${timespec/[-+]/d}:-d} -S ""' ) |