diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 2000-02-15 09:07:09 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 2000-02-15 09:07:09 +0000 |
commit | e6cc1ece7fed93fd31ca4e7f7726de034ede887c (patch) | |
tree | 93087d3edf5eb27836ba9bbdfb687b416fb7c629 | |
parent | bf990125d18effbf111fd6a30ff5bf90c4c263ae (diff) | |
download | zsh-e6cc1ece7fed93fd31ca4e7f7726de034ede887c.tar.gz zsh-e6cc1ece7fed93fd31ca4e7f7726de034ede887c.tar.xz zsh-e6cc1ece7fed93fd31ca4e7f7726de034ede887c.zip |
zsh-workers/9731
-rw-r--r-- | Completion/Base/_arguments | 7 | ||||
-rw-r--r-- | Completion/Base/_describe | 2 | ||||
-rw-r--r-- | Completion/Base/_jobs | 4 | ||||
-rw-r--r-- | Completion/Base/_subscript | 2 | ||||
-rw-r--r-- | Completion/Base/_tilde | 4 | ||||
-rw-r--r-- | Completion/Builtins/_pids | 2 | ||||
-rw-r--r-- | Completion/Builtins/_popd | 4 | ||||
-rw-r--r-- | Completion/Builtins/_sched | 2 | ||||
-rw-r--r-- | Completion/Builtins/_signals | 2 | ||||
-rw-r--r-- | Completion/Builtins/_stat | 2 | ||||
-rw-r--r-- | Completion/Core/_approximate | 2 | ||||
-rw-r--r-- | Completion/Core/_files | 13 | ||||
-rw-r--r-- | Completion/Core/_main_complete | 32 | ||||
-rw-r--r-- | Completion/Core/_normal | 13 | ||||
-rw-r--r-- | Completion/Core/_path_files | 12 | ||||
-rw-r--r-- | Completion/Core/_setup | 5 | ||||
-rw-r--r-- | Completion/Core/_tags | 30 | ||||
-rw-r--r-- | Completion/Core/compinit | 13 | ||||
-rw-r--r-- | Completion/Debian/_apt | 2 | ||||
-rw-r--r-- | Completion/User/_lp | 8 | ||||
-rw-r--r-- | Completion/User/_socket | 2 | ||||
-rw-r--r-- | Doc/Zsh/compsys.yo | 21 | ||||
-rw-r--r-- | Doc/Zsh/mod_zutil.yo | 6 | ||||
-rw-r--r-- | Src/Modules/zutil.c | 4 |
24 files changed, 82 insertions, 112 deletions
diff --git a/Completion/Base/_arguments b/Completion/Base/_arguments index ddd9d4c06..50c368b11 100644 --- a/Completion/Base/_arguments +++ b/Completion/Base/_arguments @@ -17,9 +17,8 @@ if (( long )); then fi name=${~words[1]} - if [[ "$name" != /* ]]; then - tmp="$PWD/$name" - fi + [[ "$name" != /* ]] && tmp="$PWD/$name" + name="_args_cache_${name}" name="${name//[^a-zA-Z0-9_]/_}" @@ -255,7 +254,7 @@ if (( $# )) && comparguments -i "$autod" "$@"; then fi if [[ -z "$matched" ]] && _requested options && - { ! zstyle -t ":completion:${curcontext}:options" prefix-needed || + { ! zstyle -T ":completion:${curcontext}:options" prefix-needed || [[ "$origpre" = [-+]* || ( -z "$aret$mesg" && nm -eq compstate[nmatches] ) ]] } ; then local prevpre="$PREFIX" previpre="$IPREFIX" diff --git a/Completion/Base/_describe b/Completion/Base/_describe index 684385d13..986d27c4e 100644 --- a/Completion/Base/_describe +++ b/Completion/Base/_describe @@ -16,7 +16,7 @@ fi _tags "$_type" || return 1 -zstyle -t ":completion:${curcontext}:$_type" verbose && _showd=yes +zstyle -T ":completion:${curcontext}:$_type" verbose && _showd=yes _description "$_type" _expl "$1" shift diff --git a/Completion/Base/_jobs b/Completion/Base/_jobs index fc2f3d87f..6c4154d6f 100644 --- a/Completion/Base/_jobs +++ b/Completion/Base/_jobs @@ -5,12 +5,12 @@ local expl disp jobs job jids pfx='%' desc how _tags jobs || return 1 if [[ "$1" = -t ]]; then - zstyle -t ":completion:${curcontext}:jobs" prefix-needed && + zstyle -T ":completion:${curcontext}:jobs" prefix-needed && [[ "$PREFIX" != %* && compstate[nmatches] -ne 0 ]] && return 1 shift fi zstyle -t ":completion:${curcontext}:jobs" prefix-hidden && pfx='' -zstyle -t ":completion:${curcontext}:jobs" verbose && desc=yes +zstyle -T ":completion:${curcontext}:jobs" verbose && desc=yes if [[ "$1" = -r ]]; then jids=( "${(@k)jobstates[(R)running*]}" ) diff --git a/Completion/Base/_subscript b/Completion/Base/_subscript index b74fe795d..5917c8234 100644 --- a/Completion/Base/_subscript +++ b/Completion/Base/_subscript @@ -21,7 +21,7 @@ elif [[ ${(Pt)${compstate[parameter]}} = array* ]]; then while _tags; do if _requested -V indexes expl 'array index'; then ind=( {1..${#${(P)${compstate[parameter]}}}} ) - if zstyle -t ":completion:${curcontext}:indexes" verbose; then + if zstyle -T ":completion:${curcontext}:indexes" verbose; then list=() for i in "$ind[@]"; do [[ "$i" = ${PREFIX}*${SUFFIX} ]] && diff --git a/Completion/Base/_tilde b/Completion/Base/_tilde index 35621d9d3..98e9d2c00 100644 --- a/Completion/Base/_tilde +++ b/Completion/Base/_tilde @@ -22,9 +22,9 @@ while _tags; do compadd "$suf[@]" "$expl[@]" "$@" - "${(@k)nameddirs}" if _requested -V directory-stack expl 'directory stack' && - { ! zstyle -t ":completion:${curcontext}:directory-stack" prefix-needed || + { ! zstyle -T ":completion:${curcontext}:directory-stack" prefix-needed || [[ "$PREFIX" = [-+]* || nm -eq compstate[nmatches] ]] }; then - if zstyle -t ":completion:${curcontext}:directory-stack" verbose; then + if zstyle -T ":completion:${curcontext}:directory-stack" verbose; then integer i lines=("${PWD}" "${dirstack[@]}") diff --git a/Completion/Builtins/_pids b/Completion/Builtins/_pids index b00e811bb..d74cd9a56 100644 --- a/Completion/Builtins/_pids +++ b/Completion/Builtins/_pids @@ -16,7 +16,7 @@ zstyle -a ":completion:${curcontext}:ps" arguments args out="$(command ps $args 2>/dev/null)" -if zstyle -t ":completion:${curcontext}:processes" verbose; then +if zstyle -T ":completion:${curcontext}:processes" verbose; then zstyle -a ":completion:${curcontext}:ps" list-arguments listargs (( $#listargs )) || listargs=( "$args[@]" ) if [[ "$listargs" = "$args" ]]; then diff --git a/Completion/Builtins/_popd b/Completion/Builtins/_popd index 586018952..6f0908ede 100644 --- a/Completion/Builtins/_popd +++ b/Completion/Builtins/_popd @@ -11,10 +11,10 @@ local expl list lines revlines disp _wanted -V directory-stack expl 'directory stack' || return 1 -! zstyle -t ":completion:${curcontext}:directory-stack" prefix-needed || +! zstyle -T ":completion:${curcontext}:directory-stack" prefix-needed || [[ $PREFIX = [-+]* ]] || return 1 -if zstyle -t ":completion:${curcontext}:directory-stack" verbose; then +if zstyle -T ":completion:${curcontext}:directory-stack" verbose; then # get the list of directories with their canonical number # and turn the lines into an array, removing the current directory lines=("${dirstack[@]}") diff --git a/Completion/Builtins/_sched b/Completion/Builtins/_sched index 851659033..783113c45 100644 --- a/Completion/Builtins/_sched +++ b/Completion/Builtins/_sched @@ -7,7 +7,7 @@ if [[ CURRENT -eq 2 ]]; then _wanted -C - jobs expl 'scheduled jobs' || return 1 lines=(${(f)"$(sched)"}) - if zstyle -t ":completion:${curcontext}:jobs" verbose; then + if zstyle -T ":completion:${curcontext}:jobs" verbose; then disp=( -ld lines ) else disp=() diff --git a/Completion/Builtins/_signals b/Completion/Builtins/_signals index ad1f0131b..910502165 100644 --- a/Completion/Builtins/_signals +++ b/Completion/Builtins/_signals @@ -22,7 +22,7 @@ done if _wanted signals expl signal && { [[ -z "$minus" ]] || - ! zstyle -t ":completion:${curcontext}:signals" prefix-needed || + ! zstyle -T ":completion:${curcontext}:signals" prefix-needed || [[ "$PREFIX" = -* ]] } ; then local disp tmp diff --git a/Completion/Builtins/_stat b/Completion/Builtins/_stat index ae884066f..c03b1590c 100644 --- a/Completion/Builtins/_stat +++ b/Completion/Builtins/_stat @@ -10,7 +10,7 @@ else while _tags; do _requested files && _files && ret=0 _requested options expl 'inode element' && - { ! zstyle -t ":completion:${curcontext}:options" prefix-needed || + { ! zstyle -T ":completion:${curcontext}:options" prefix-needed || [[ "$PREFIX[1]" = + || ret -eq 1 ]] } && compadd "$expl[@]" - +device +inode +mode +nlink +uid +gid +rdev \ +size +atime +mtime +ctime +blksize +block +link diff --git a/Completion/Core/_approximate b/Completion/Core/_approximate index 989eeba11..ac2b69aad 100644 --- a/Completion/Core/_approximate +++ b/Completion/Core/_approximate @@ -17,7 +17,7 @@ local curcontext="${curcontext}" oldcontext opm="$compstate[pattern_match]" oldcontext="$curcontext" -zstyle -s ":completion:${curcontext}:" max-errors cfgacc +zstyle -s ":completion:${curcontext}:" max-errors cfgacc || cfgacc='2 numeric' # Get the number of errors to accept. diff --git a/Completion/Core/_files b/Completion/Core/_files index 821d324d8..1e139bc6b 100644 --- a/Completion/Core/_files +++ b/Completion/Core/_files @@ -16,17 +16,14 @@ else fi (( $opts[(I)-F] )) && hasign=yes -if [[ "$group[2]" = files ]]; then - opts=("$opts[@]" "$group[@]") - group=() -fi +[[ "$group[2]" = files ]] && opts=("$opts[@]" "$group[@]") group=() ign=() -if zstyle -s ":completion:${curcontext}:all-files" file-patterns tmp && - [[ -n "$tmp" ]]; then - aopts=(-g "$tmp") -fi +zstyle -s ":completion:${curcontext}:all-files" file-patterns tmp && + [[ -n "$tmp" ]] && + aopts=(-g "$tmp") + if zstyle -s ":completion:${curcontext}:directories" file-patterns tmp && [[ -n "$tmp" ]]; then dopts=(-g "$tmp") diff --git a/Completion/Core/_main_complete b/Completion/Core/_main_complete index 2381ae76d..62ba446b0 100644 --- a/Completion/Core/_main_complete +++ b/Completion/Core/_main_complete @@ -19,7 +19,7 @@ setopt localoptions nullglob rcexpandparam extendedglob unsetopt markdirs globsubst shwordsplit nounset ksharrays -local comp post ret=1 _compskip _prio_num=1 format _comp_ignore \ +local comp post ret=1 _compskip format _comp_ignore \ _completers _completers_left _comp_matcher \ context state line opt_args val_args curcontext="$curcontext" \ _last_nmatches=-1 _last_menu_style _def_menu_style _menu_style sel \ @@ -28,12 +28,6 @@ local comp post ret=1 _compskip _prio_num=1 format _comp_ignore \ _saved_list="${compstate[list]}" \ _saved_insert="${compstate[insert]}" -typeset -U _offered_tags _tried_tags _failed_tags _used_tags _unused_tags - -_offered_tags=() -_tried_tags=() -_failed_tags=() - typeset -U _lastdescr [[ -z "$curcontext" ]] && curcontext=::: @@ -50,17 +44,13 @@ fi # Initial setup. _setup default -_def_menu_style=( "$_last_menu_style[@]" ) +_def_menu_style=( "$_last_menu_style[@]" + ${SELECTMIN+select${SELECTMIN:+\=$SELECTMIN}} ) _last_menu_style=() # Get the names of the completers to use in the positional parameters. -if (( ! $# )); then - local tmp - - zstyle -a ":completion:${curcontext}:" completer tmp - set -- "$tmp[@]" -fi +(( $# )) || zstyle -a ":completion:${curcontext}:" completer argv || set _complete # And now just call the completer functions defined. @@ -75,7 +65,7 @@ for comp; do shift 1 _completers_left done -if (( $compstate[nmatches] )); then +if [[ $compstate[nmatches] -gt 1 ]]; then [[ _last_nmatches -ge 0 && _last_nmatches -ne compstate[nmatches] ]] && _menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" ) @@ -128,7 +118,7 @@ if (( $compstate[nmatches] )); then fi fi fi -elif [[ $#_lastdescr -ne 0 ]] && +elif [[ $compstate[nmatches] -eq 0 && $#_lastdescr -ne 0 ]] && zstyle -s ":completion:${curcontext}:warnings" format format; then local str @@ -147,11 +137,6 @@ elif [[ $#_lastdescr -ne 0 ]] && compadd -UX "$format" -n '' fi -# See which tags were or were not used. - -_used_tags=( "${(@)_tried_tags:#${(j:|:)~${(@)_failed_tags//\[/\\[}//\]/\\]}}" ) -_unused_tags=( "${(@)_offered_tags:#${(j:|:)~${(@)_used_tags//\[/\\[}//\]/\\]}}" ) - # Now call the post-functions. for post in "$comppostfuncs[@]"; do @@ -167,10 +152,5 @@ _lastcomp[iprefix]="$IPREFIX" _lastcomp[isuffix]="$ISUFFIX" _lastcomp[qiprefix]="$QIPREFIX" _lastcomp[qisuffix]="$QISUFFIX" -_lastcomp[offered_tags]="${(j.:.)_offered_tags}" -_lastcomp[tried_tags]="${(j.:.)_tried_tags}" -_lastcomp[failed_tags]="${(j.:.)_failed_tags}" -_lastcomp[unused_tags]="${(j.:.)_unused_tags}" -_lastcomp[used_tags]="${(j.:.)_used_tags}" return ret diff --git a/Completion/Core/_normal b/Completion/Core/_normal index c3315610f..1791d2471 100644 --- a/Completion/Core/_normal +++ b/Completion/Core/_normal @@ -66,10 +66,7 @@ fi name="$cmd1" comp="$_comps[$cmd1]" -if [[ -z "$comp" ]]; then - name="$cmd2" - comp="$_comps[$cmd2]" -fi +[[ -z "$comp" ]] && name="$cmd2" comp="$_comps[$cmd2]" # And generate the matches, probably using default completion. @@ -77,11 +74,9 @@ if [[ -n "$comp" ]]; then _compskip=patterns "$comp" && ret=0 [[ "$_compskip" = (all|*patterns*) ]] && return ret -else - if [[ "$_compskip" != *default* ]]; then - name=-default- - comp="$_comps[-default-]" - fi +elif [[ "$_compskip" != *default* ]]; then + name=-default- + comp="$_comps[-default-]" fi if [[ "$_compskip" != (all|*patterns*) ]]; then diff --git a/Completion/Core/_path_files b/Completion/Core/_path_files index 07e75052f..62c52e3c4 100644 --- a/Completion/Core/_path_files +++ b/Completion/Core/_path_files @@ -290,7 +290,7 @@ for prepath in "$prepaths[@]"; do tmp2=( "$tmp1[@]" ) builtin compadd -D tmp1 -F _comp_ignore "$matcher[@]" - "${(@)tmp1:t}" - if [[ $#tmp1 -eq 0 && -n "$_comp_correct" ]]; then + if [[ $#tmp1 -eq 0 ]]; then tmp1=( "$tmp2[@]" ) compadd -D tmp1 -F _comp_ignore "$matcher[@]" - "${(@)tmp2:t}" fi @@ -334,7 +334,7 @@ for prepath in "$prepaths[@]"; do if [[ -z "$tpre$tsuf" && -n "$pre$suf" ]]; then pfxsfx=(-S '' "$pfxsfx[@]") - break; + break elif [[ "$haspats" = no && -z "$tpre$tsuf" && "$pre" = */ && -z "$suf" ]]; then PREFIX="${opre}" @@ -352,8 +352,8 @@ for prepath in "$prepaths[@]"; do if [[ "$rem" = *parent* ]]; then for i in ${(M)^tmp1:#*/*}(-/); do remt="${${i#$prepath$realpath$donepath}%/*}" - while [[ "$remt" = */* ]]; do - [[ "$prepath$realpath$donepath$remt" -ef "$i" ]] && break + while [[ "$remt" = */* && + ! "$prepath$realpath$donepath$remt" -ef "$i" ]]; do remt="${remt%/*}" done [[ "$remt" = */* || "$remt" -ef "$i" ]] && @@ -406,9 +406,7 @@ for prepath in "$prepaths[@]"; do if [[ "$tmp3" = */* ]]; then tmp4=( "${(@M)tmp1:#${tmp3%%/*}/*}" ) - if (( $#tmp4 )); then - tmp1=( "$tmp4[@]" ) - fi + (( $#tmp4 )) && tmp1=( "$tmp4[@]" ) fi # Next we see if this component is ambiguous. diff --git a/Completion/Core/_setup b/Completion/Core/_setup index b3b2bdb33..4c45cc271 100644 --- a/Completion/Core/_setup +++ b/Completion/Core/_setup @@ -3,12 +3,15 @@ local val nm="$compstate[nmatches]" if zstyle -a ":completion:${curcontext}:$1" list-colors val; then - zmodload -e zsh/complist || zmodload -i zsh/complist + zmodload -i zsh/complist if [[ "$1" = default ]]; then ZLS_COLORS="${(j.:.)${(@)val:gs/:/\\\:}}" else eval "ZLS_COLORS=\"(${1})\${(j.:(${1}).)\${(@)val:gs/:/\\\:}}:\${ZLS_COLORS}\"" fi +elif [[ "$1" = default && -n "$ZLS_COLORS$ZLS_COLOURS" ]]; then + zmodload -i zsh/complist + ZLS_COLORS="$ZLS_COLORS$ZLS_COLOURS" fi if zstyle -s ":completion:${curcontext}:$1" list-packed val; then diff --git a/Completion/Core/_tags b/Completion/Core/_tags index d2d5555fa..1884717e2 100644 --- a/Completion/Core/_tags +++ b/Completion/Core/_tags @@ -35,9 +35,6 @@ if (( $# )); then comptags -i "$curcontext" "$@" - _offered_tags=( "$_offered_tags[@]" "$@" ) - _last_tags=() - # Sort the tags. if [[ -n "$_sort_tags" ]]; then @@ -55,6 +52,15 @@ if (( $# )); then [[ -z "$nodef" ]] && comptry "$@" else + + # The first ones give the default behaviour. + + comptry arguments values + comptry options + comptry globbed-files + comptry directories + comptry all-files + comptry "$@" fi @@ -67,20 +73,4 @@ fi # The other mode: switch to the next set of tags. -local tags - -_failed_tags=( "$_failed_tags[@]" "$_last_tags[@]" ) - -# Return failure if no sets remaining. - -comptags -N || return 1 - -# Otherwise get the next tags. - -comptags -S _last_tags - -_tried_tags=( "$_tried_tags[@]" "$_last_tags[@]" ) - -shift 1 "$prios" - -return 0 +comptags -N diff --git a/Completion/Core/compinit b/Completion/Core/compinit index cd9ec7c2f..1555a9b2f 100644 --- a/Completion/Core/compinit +++ b/Completion/Core/compinit @@ -470,19 +470,6 @@ compstyle() { return 0 } -# Default styles. This should be executed conditionally somehow. - -zstyle ':completion:*' verbose 'yes' -zstyle ':completion:*' prefix-needed 'yes' -zstyle ':completion:*' prefix-hidden 'no' -zstyle ':completion:*:(correct|approximate):*' max-errors '2' numeric -zstyle ':completion:*:correct:*' prompt 'correct to:' -zstyle ':completion:*::::' completer '_complete' -zstyle ':completion:*::::default' list-colors "${(s.:.)ZLS_COLORS:-${ZLS_COLOURS:-no=0:fi=0:di=0:ln=0:pi=0:so=0:bd=0:cd=0:ex=0}}" -(( $+SELECTMIN )) && zstyle ':completion:*::::default' menu "select=$SELECTMIN" -zstyle ':completion:*' tag-order 'arguments values' options \ - globbed-files directories all-files - # Now we automatically make the definition files autoloaded. typeset -U _i_files diff --git a/Completion/Debian/_apt b/Completion/Debian/_apt index 60b8d51d6..be7973c34 100644 --- a/Completion/Debian/_apt +++ b/Completion/Debian/_apt @@ -106,7 +106,7 @@ tmp2=("$tmp2[@]" $_ra_left${(M)^short_bool:#$~tmp1} $_ra_left${(M)^short_intleve tmp3=("$tmp3[@]" $_ra_left${(M)^short_hasarg:#$~tmp1} $_ra_left${(M)^short_configfile:#$~tmp1} $_ra_left${(M)^short_arbitem:#$~tmp1}) _describe -o option tmp2 -- tmp3 -S=' - comp_opt='{ ! zstyle -t ":completion:${curcontext}:options" prefix-needed || [[ "$PREFIX" = -* ]] }'" && { $comp_short; $comp_long }" + comp_opt='{ ! zstyle -T ":completion:${curcontext}:options" prefix-needed || [[ "$PREFIX" = -* ]] }'" && { $comp_short; $comp_long }" regex_short=() regex_long=() diff --git a/Completion/User/_lp b/Completion/User/_lp index 7cd770f63..d1c110b1c 100644 --- a/Completion/User/_lp +++ b/Completion/User/_lp @@ -37,7 +37,7 @@ fi if compset -P -P || [[ "$words[CURRENT-1]" = -P ]]; then if _wanted printers expl printer; then - if zstyle -t ":completion:${curcontext}:printers" verbose; then + if zstyle -T ":completion:${curcontext}:printers" verbose; then zformat -a list ' -- ' "$_lp_cache[@]" disp=(-ld list) else @@ -47,7 +47,7 @@ if compset -P -P || [[ "$words[CURRENT-1]" = -P ]]; then (( $+_lp_alias_cache )) || return 1 - if zstyle -t ":completion:${curcontext}:printers" verbose; then + if zstyle -T ":completion:${curcontext}:printers" verbose; then zformat -a list ' -- ' "$_lp_alias_cache[@]" disp=(-ld list) else @@ -73,7 +73,7 @@ else if _requested users expl user; then strs=( "${(@)${(@)list##[^ ]##[ ]##[^ ]##[ ]##}%%[ ]*}" ) if [[ -z "$shown" ]] && - zstyle -t ":completion:${curcontext}:users" verbose; then + zstyle -T ":completion:${curcontext}:users" verbose; then disp=(-ld list) shown=yes else @@ -84,7 +84,7 @@ else if _requested jobs expl job; then strs=( "${(@)${(@)list##[^ ]##[ ]##[^ ]##[ ]##[^ ]##[ ]##}%%[ ]*}" ) if [[ -z "$shown" ]] && - zstyle -t ":completion:${curcontext}:jobs" verbose; then + zstyle -T ":completion:${curcontext}:jobs" verbose; then disp=(-ld list) shown=yes else diff --git a/Completion/User/_socket b/Completion/User/_socket index bb9ee2a67..dfe8f4844 100644 --- a/Completion/User/_socket +++ b/Completion/User/_socket @@ -9,7 +9,7 @@ local curcontext="$curcontext" state line expl typeset -A opt_args [[ $CURRENT -eq 2 ]] && _wanted options expl option && - { ! zstyle -t ":completion:${curcontext}:options" prefix-needed || + { ! zstyle -T ":completion:${curcontext}:options" prefix-needed || [[ "$PREFIX" = -* ]] } && compadd -M 'r:|[_-]=* r:|=*' "$expl[@]" - -version diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo index e54e5825b..f7b7f41d0 100644 --- a/Doc/Zsh/compsys.yo +++ b/Doc/Zsh/compsys.yo @@ -713,6 +713,9 @@ only completion for prediction one could use: example(zstyle ':completion:::::' completer _complete _correct _approximate zstyle ':completion:incremental::::' completer _complete _correct zstyle ':completion:predict::::' completer _complete) + +The default value for this style is tt(_complete), i.e. normally only +completion will be done. ) item(tt(completions))( This style is used by the tt(_expand) completer function. @@ -1115,7 +1118,10 @@ will em(not) try to generate corrected completions when given a numeric argument, so in this case the number given should be greater than zero. For example, `tt(2 not-numeric)' specifies that correcting completion with two errors will usually be performed, but if a -numeric argument is given, correcting completion will not be performed. +numeric argument is given, correcting completion will not be +performed. + +The default value for this style contains tt(2) and tt(numeric). ) item(tt(menu))( This style is tested for the tt(default) tag and the tags used when @@ -1219,6 +1225,8 @@ item(tt(prefix-hidden))( This is used when matches with a common prefix are added (e.g. option names). If it is `true', this prefix will not be shown in the list of matches. + +The default value for this style is `false'. ) item(tt(prefix-needed))( This, too, is used for matches with a common prefix. If it is set to @@ -1226,6 +1234,8 @@ This, too, is used for matches with a common prefix. If it is set to matches. E.g. for options this means that the `tt(-)', `tt(+)', or `tt(-)tt(-)' has to be on the line to make option names be completed at all. + +The default style for this style is `true'. ) item(tt(prompt))( The tt(incremental-complete-word) widget shows the value of this @@ -1344,7 +1354,10 @@ in which order tags are to be used based on additional context information. See the tt(_sort_tags) function below for a description of how such functions can be implemented. -If no style has been defined for a context, all tags will be used. +If no style has been defined for a context, the strings tt(arguments +values), tt(options), tt(globbed-files), tt(directories) and +tt(all-files) plus all tags offered by the completion function will be +used. ) item(tt(users))( This may be set to a list of names that should be completed whenever @@ -1369,7 +1382,9 @@ the tt(accounts) tag. item(tt(verbose))( This is used in several contexts to decide if only a simple or a verbose list of matches should be generated. For example some commands -show descriptions for option names if this style is true. +show descriptions for option names if this style is `true'. + +The default value for this style is `true'. ) item(tt(word))( To find out if listing should be performed on its own, the tt(_list) diff --git a/Doc/Zsh/mod_zutil.yo b/Doc/Zsh/mod_zutil.yo index e72a2b712..565dafed9 100644 --- a/Doc/Zsh/mod_zutil.yo +++ b/Doc/Zsh/mod_zutil.yo @@ -15,6 +15,7 @@ xitem(tt(zstyle -b) var(context) var(style) var(name)) xitem(tt(zstyle -a) var(context) var(style) var(name)) xitem(tt(zstyle -h) var(context) var(style) var(name)) xitem(tt(zstyle -t) var(context) var(style) [ var(strings) ...]) +xitem(tt(zstyle -T) var(context) var(style) [ var(strings) ...]) item(tt(zstyle -m) var(context) var(style) var(pattern))( This builtin command is used to define and lookup styles. Styles are pairs of names and values, where the values consist of any number of @@ -63,7 +64,7 @@ makes it be returned as an associative array (with the first, third, etc. string being used as the keys and the other strings being used as the values). -The tt(-t) option can be used to test the value of a style, i.e. it +The tt(-t) options can be used to test the value of a style, i.e. it only sets the return value. Without any var(strings) arguments it is zero if the style is defined for at least one matching pattern, has only one string in its value and that is equal to one of tt(true), @@ -71,6 +72,9 @@ tt(yes), tt(on) or tt(1). If any var(strings) are given the return zero if and only if at least one of the var(strings) is equal to at least one of the strings in the value. +The tt(-T) option is like tt(-t) but returns zero if the style is not +set for any matching pattern. + The tt(-m) option can be used to match a value. It returns zero if the var(pattern) matches at least one of the strings in the value. ) diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c index d40b0ae4c..8c552433f 100644 --- a/Src/Modules/zutil.c +++ b/Src/Modules/zutil.c @@ -285,6 +285,7 @@ bin_zstyle(char *nam, char **args, char *ops, int func) case 'a': min = 3; max = 3; break; case 'h': min = 3; max = 3; break; case 't': min = 2; max = -1; break; + case 'T': min = 2; max = -1; break; case 'm': min = 3; max = 3; break; case 'g': min = 1; max = 3; break; default: @@ -417,6 +418,7 @@ bin_zstyle(char *nam, char **args, char *ops, int func) } break; case 't': + case 'T': { Stypat s; @@ -438,7 +440,7 @@ bin_zstyle(char *nam, char **args, char *ops, int func) !strcmp(s->vals[0], "on") || !strcmp(s->vals[0], "1")); } - return 1; + return (args[0][1] == 't'); } break; case 'm': |