From ed41dafd3c79ebf2ce390ee9af54fe8bb21deb73 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Thu, 3 Feb 2000 17:22:40 +0000 Subject: zsh-workers/9546 --- Completion/Core/_alternative | 2 +- Completion/Core/_approximate | 11 ++++++----- Completion/Core/_complete | 11 ++++++----- Completion/Core/_correct | 5 ++--- Completion/Core/_description | 12 ++++++------ Completion/Core/_expand | 13 ++++++------- Completion/Core/_files | 14 +++++++------- Completion/Core/_list | 6 +++--- Completion/Core/_main_complete | 6 ++++-- Completion/Core/_match | 8 ++++---- Completion/Core/_menu | 4 ++-- Completion/Core/_message | 4 ++-- Completion/Core/_normal | 8 ++++---- Completion/Core/_oldlist | 6 +++--- Completion/Core/_path_files | 18 +++++++++--------- Completion/Core/_setup | 12 ++++++------ Completion/Core/_sort_tags | 6 +++--- Completion/Core/_tags | 8 ++++---- Completion/Core/compinit | 10 +++++----- 19 files changed, 83 insertions(+), 81 deletions(-) (limited to 'Completion/Core') diff --git a/Completion/Core/_alternative b/Completion/Core/_alternative index 791d7517e..73292cb52 100644 --- a/Completion/Core/_alternative +++ b/Completion/Core/_alternative @@ -7,7 +7,7 @@ subopts=() while getopts 'O:C:' opt; do case "$opt" in O) subopts=( "${(@P)OPTARG}" ) ;; - C) curcontext="${curontext}:$OPTARG" ;; + C) curcontext="${curcontext%:*}:$OPTARG" ;; esac done diff --git a/Completion/Core/_approximate b/Completion/Core/_approximate index bb1faa7b3..283f30e83 100644 --- a/Completion/Core/_approximate +++ b/Completion/Core/_approximate @@ -16,11 +16,12 @@ local curcontext="${curcontext}" oldcontext [[ "${#:-$PREFIX$SUFFIX}" -le 1 ]] && return 1 -[[ "$curcontext" != *:correct* ]] && curcontext="${curcontext}:approximate" +[[ "$curcontext" != [^:]#:correct:* ]] && + curcontext="${curcontext/:[^:]#:/:approximate:}" oldcontext="$curcontext" -zstyle -s ":completion${curcontext}:" max-errors cfgacc +zstyle -s ":completion:${curcontext}:" max-errors cfgacc # Get the number of errors to accept. @@ -73,18 +74,18 @@ compstate[matcher]=-1 [[ -z "$compstate[pattern_match]" ]] && compstate[pattern_match]='*' while [[ _comp_correct -le comax ]]; do - curcontext="${oldcontext}:$_comp_correct" + curcontext="${oldcontext/(#b)([^:]#:[^:]#:)/${match[1][1,-2]}-${_comp_correct}:}" _description corrections _correct_expl corrections \ "e:$_comp_correct" "o:$PREFIX$SUFFIX" if _complete; then - if zstyle -t ":completion${curcontext}:" insert-unambiguous && + if zstyle -t ":completion:${curcontext}:" insert-unambiguous && [[ "${#compstate[unambiguous]}" -ge "${#:-$PREFIX$SUFFIX}" ]]; then compstate[pattern_insert]=unambiguous elif _requested original && ( [[ compstate[nmatches] -gt 1 ]] || - zstyle -t ":completion${curcontext}:" original ); then + zstyle -t ":completion:${curcontext}:" original ); then local expl _description -V original expl original diff --git a/Completion/Core/_complete b/Completion/Core/_complete index 00c5e1e9a..d589c1707 100644 --- a/Completion/Core/_complete +++ b/Completion/Core/_complete @@ -4,16 +4,17 @@ # a normal completion function, but as one possible value for the # completer style. -local comp name curcontext="$curcontext" oldcontext +local comp name oldcontext +typeset -T curcontext="$curcontext" ccarray -[[ "$funcstack[2]" = _main_complete ]] && curcontext="${curcontext}:complete" +ccarray[2]=complete oldcontext="$curcontext" # If we have a user-supplied context name, use only that. if [[ -n "$compcontext" ]]; then - curcontext="${curcontext}:$compcontext" + ccarray[3]="$compcontext" comp="$_comps[$compcontext]" [[ -z "$comp" ]] || "$comp" @@ -25,7 +26,7 @@ fi comp="$_comps[-first-]" if [[ ! -z "$comp" ]]; then - curcontext="${curcontext}:-first-" + ccarray[3]=-first- "$comp" if [[ "$_compskip" = all ]]; then _compskip='' @@ -46,7 +47,7 @@ else local cname="-${compstate[context]:s/_/-/}-" - curcontext="${oldcontext}:$cname" + ccarray[3]="$cname" comp="$_comps[$cname]" diff --git a/Completion/Core/_correct b/Completion/Core/_correct index 35114ed22..76560dfb2 100644 --- a/Completion/Core/_correct +++ b/Completion/Core/_correct @@ -8,9 +8,8 @@ # Supported configuration keys are the same as for `_approximate', only # starting with `correct'. -local ret=1 opm="$compstate[pattern_match]" curcontext="${curcontext}" - -[[ "$curcontext" != :correct* ]] && curcontext="${curcontext}:correct" +local ret=1 opm="$compstate[pattern_match]" +local curcontext="${curcontext/:[^:]#:/:correct:}" compstate[pattern_match]='-' diff --git a/Completion/Core/_description b/Completion/Core/_description index ffe016df8..b35889c4d 100644 --- a/Completion/Core/_description +++ b/Completion/Core/_description @@ -18,19 +18,19 @@ _setup "$1" name="$2" -zstyle -s ":completion${curcontext}:$1" format format || - zstyle -s ":completion${curcontext}:descriptions" format format +zstyle -s ":completion:${curcontext}:$1" format format || + zstyle -s ":completion:${curcontext}:descriptions" format format -zstyle -s ":completion${curcontext}:$1" hidden hidden +zstyle -s ":completion:${curcontext}:$1" hidden hidden if [[ "$hidden" = (all|yes|true|1|on) ]]; then [[ "$hidden" = all ]] && format='' hide=(-n) fi -zstyle -s ":completion${curcontext}:$1" group-name gname && +zstyle -s ":completion:${curcontext}:$1" group-name gname && [[ -z "$gname" ]] && gname="$1" -zstyle -s ":completion${curcontext}:$1" matcher match && +zstyle -s ":completion:${curcontext}:$1" matcher match && match=(-M "${(q)match}") -if zstyle -a ":completion${curcontext}:$1" ignored-patterns _comp_ignore; then +if zstyle -a ":completion:${curcontext}:$1" ignored-patterns _comp_ignore; then ign=(-F _comp_ignore) else _comp_ignore=() diff --git a/Completion/Core/_expand b/Completion/Core/_expand index cdfc2a8d1..b1609ad40 100644 --- a/Completion/Core/_expand +++ b/Completion/Core/_expand @@ -7,13 +7,12 @@ # the expansions done produce no result or do not change the original # word from the line. -local exp word="$PREFIX$SUFFIX" sort expr expl curcontext="${curcontext}" - -[[ "$curcontext" != :expand* ]] && curcontext="${curcontext}:expand" +local exp word="$PREFIX$SUFFIX" sort expr expl +local curcontext="${curcontext/:[^:]#:/:expand:}" # First, see if we should insert all *completions*. -if zstyle -s ":completion${curcontext}:" completions expr && +if zstyle -s ":completion:${curcontext}:" completions expr && [[ "${(e):-\$[$expr]}" -eq 1 ]]; then compstate[insert]=all return 1 @@ -30,7 +29,7 @@ exp=("$word") # First try substitution. That weird thing spanning multiple lines # changes quoted spaces, tabs, and newlines into spaces. -zstyle -s ":completion${curcontext}:" substitute expr && +zstyle -s ":completion:${curcontext}:" substitute expr && [[ "${(e):-\$[$expr]}" -eq 1 ]] && exp=( "${(e)exp//\\[ ]/ }" ) @@ -41,7 +40,7 @@ zstyle -s ":completion${curcontext}:" substitute expr && # Now try globbing. -zstyle -s ":completion${curcontext}:" glob expr && +zstyle -s ":completion:${curcontext}:" glob expr && [[ "${(e):-\$[$expr]}" -eq 1 ]] && exp=( ${~exp}(N) ) @@ -53,7 +52,7 @@ zstyle -s ":completion${curcontext}:" glob expr && # Now add as matches whatever the user requested. -zstyle -s ":completion${curcontext}:" sort sort +zstyle -s ":completion:${curcontext}:" sort sort [[ "$sort" = (yes|true|1|on) ]] && exp=( "${(@o)exp}" ) diff --git a/Completion/Core/_files b/Completion/Core/_files index f7ce74d80..cd337713a 100644 --- a/Completion/Core/_files +++ b/Completion/Core/_files @@ -25,11 +25,11 @@ if [[ "$group[2]" = files ]]; then group=() fi -if zstyle -s ":completion${curcontext}:all-files" file-patterns tmp && +if zstyle -s ":completion:${curcontext}:all-files" file-patterns tmp && [[ -n "$tmp" ]]; then aopts=(-g "$tmp") fi -if zstyle -s ":completion${curcontext}:directories" file-patterns tmp && +if zstyle -s ":completion:${curcontext}:directories" file-patterns tmp && [[ -n "$tmp" ]]; then dopts=(-g "$tmp") if [[ "$type" = (*dir*glob*|*glob*dir*) ]]; then @@ -38,7 +38,7 @@ if zstyle -s ":completion${curcontext}:directories" file-patterns tmp && type="${type}dir" fi fi -if zstyle -s ":completion${curcontext}:globbed-files" file-patterns tmp && +if zstyle -s ":completion:${curcontext}:globbed-files" file-patterns tmp && [[ -n "$tmp" ]]; then gopts=(-g "$tmp") if [[ "$type" != (*dir*glob*|*glob*dir*) ]]; then @@ -64,7 +64,7 @@ while _tags; do group[2]=all-files _setup all-files [[ -z "$hasign" ]] && - zstyle -a ":completion${curcontext}:all-files" ignored-patterns _comp_ignore && + zstyle -a ":completion:${curcontext}:all-files" ignored-patterns _comp_ignore && ign=(-F _comp_ignore) fi _path_files "$opts[@]" "$ign[@]" "$aopts[@]" @@ -75,7 +75,7 @@ while _tags; do group[2]=globbed-files _setup globbed-files [[ -z "$hasign" ]] && - zstyle -a ":completion${curcontext}:all-files" ignored-patterns _comp_ignore && + zstyle -a ":completion:${curcontext}:all-files" ignored-patterns _comp_ignore && ign=(-F _comp_ignore) fi _path_files "$opts[@]" "$ign[@]" "$dopts[@]" "$gopts[@]" && return 0 @@ -84,7 +84,7 @@ while _tags; do group[2]=directories _setup directories [[ -z "$hasign" ]] && - zstyle -a ":completion${curcontext}:all-files" ignored-patterns _comp_ignore && + zstyle -a ":completion:${curcontext}:all-files" ignored-patterns _comp_ignore && ign=(-F _comp_ignore) fi _path_files "$opts[@]" "$ign[@]" "$dopts[@]" && return 0 @@ -94,7 +94,7 @@ while _tags; do group[2]=globbed-files _setup globbed-files [[ -z "$hasign" ]] && - zstyle -a ":completion${curcontext}:all-files" ignored-patterns _comp_ignore && + zstyle -a ":completion:${curcontext}:all-files" ignored-patterns _comp_ignore && ign=(-F _comp_ignore) fi if [[ "$type" = (*dir*glob*|*glob*dir*) ]]; then diff --git a/Completion/Core/_list b/Completion/Core/_list index 294467eca..597d173ad 100644 --- a/Completion/Core/_list +++ b/Completion/Core/_list @@ -4,11 +4,11 @@ # insert possible completions only after the list has been shown at # least once. -local pre suf curcontext="${curcontext}:list" expr +local pre suf expr curcontext="${curcontext/:[^:]#:/:list:}" # Get the strings to compare. -if zstyle -t ":completion${curcontext}:" word; then +if zstyle -t ":completion:${curcontext}:" word; then pre="$HISTNO$LBUFFER" suf="$RBUFFER" else @@ -18,7 +18,7 @@ fi # Should we only show a list now? -zstyle -s ":completion${curcontext}:" condition expr +zstyle -s ":completion:${curcontext}:" condition expr if [[ ( -z "$expr" || "${(e):-\$[$expr]}" -eq 1 ) && ( "$pre" != "$_list_prefix" || "$suf" != "$_list_suffix" ) ]]; then diff --git a/Completion/Core/_main_complete b/Completion/Core/_main_complete index 09feae10f..ebe256588 100644 --- a/Completion/Core/_main_complete +++ b/Completion/Core/_main_complete @@ -35,6 +35,8 @@ _failed_tags=() typeset -U _lastdescr +[[ -z "$curcontext" ]] && curcontext=::: + # Special completion contexts after `~' and `='. if compset -P 1 '='; then @@ -55,7 +57,7 @@ _last_menu_style=() if (( ! $# )); then local tmp - zstyle -a ":completion${curcontext}:" completer tmp + zstyle -a ":completion:${curcontext}:" completer tmp set -- "$tmp[@]" fi @@ -123,7 +125,7 @@ if (( $compstate[nmatches] )); then fi elif [[ compstate[matcher] -eq compstate[total_matchers] && $#_lastdescr -ne 0 ]] && - zstyle -s ":completion${curcontext}:warnings" format format; then + zstyle -s ":completion:${curcontext}:warnings" format format; then local str _lastdescr=( "\`${(@)^_lastdescr:#}'" ) diff --git a/Completion/Core/_match b/Completion/Core/_match index b7075b715..42416242d 100644 --- a/Completion/Core/_match +++ b/Completion/Core/_match @@ -1,7 +1,7 @@ #autoload # This is intended to be used as a completer function after the normal -# completer as in: `zstyle ":completion:*" completer _complete _match'. +# completer as in: `zstyle ":completion:::::" completer _complete _match'. # It temporarily switches on pattern matching, allowing you to try # completion on patterns without having to setopt glob_complete. # @@ -10,7 +10,7 @@ # be expanded using globbing. local tmp opm="$compstate[pattern_match]" ret=0 orig ins -local curcontext="${curcontext}:match" +local curcontext="${curcontext/:[^:]#:/:match:}" # Do nothing if we don't have a pattern or there are still global # match specifications to try. @@ -19,8 +19,8 @@ tmp="${${:-$PREFIX$SUFFIX}#[~=]}" [[ "$tmp:q" = "$tmp" || compstate[matcher] -ne compstate[total_matchers] ]] && return 1 -zstyle -s ":completion${curcontext}:" original orig -zstyle -b ":completion${curcontext}:" insert-unambiguous ins +zstyle -s ":completion:${curcontext}:" original orig +zstyle -b ":completion:${curcontext}:" insert-unambiguous ins # Try completion without inserting a `*'? diff --git a/Completion/Core/_menu b/Completion/Core/_menu index 7f8035098..5ec1a1a55 100644 --- a/Completion/Core/_menu +++ b/Completion/Core/_menu @@ -1,12 +1,12 @@ #autoload -local curcontext="${curcontext}:menu" +local curcontext="${curcontext/:[^:]#:/:menu:}" # This completer is an example showing how menucompletion can be # implemented with the new completion system. # Use this one before the normal _complete completer, as in: # -# zstyle ":completion:*" completer _menu _complete +# zstyle ":completion:::::" completer _menu _complete if [[ -n "$compstate[old_list]" ]]; then diff --git a/Completion/Core/_message b/Completion/Core/_message index 8ae93f973..a6cb799e5 100644 --- a/Completion/Core/_message +++ b/Completion/Core/_message @@ -4,8 +4,8 @@ local format _tags messages || return 1 -zstyle -s ":completion${curcontext}:messages" format format || - zstyle -s ":completion${curcontext}:descriptions" format format +zstyle -s ":completion:${curcontext}:messages" format format || + zstyle -s ":completion:${curcontext}:descriptions" format format if [[ -n "$format" ]]; then zformat -f format "$format" "d:$1" "${(@)argv[2,-1]}" diff --git a/Completion/Core/_normal b/Completion/Core/_normal index a9e1dc5e4..c3315610f 100644 --- a/Completion/Core/_normal +++ b/Completion/Core/_normal @@ -16,7 +16,7 @@ local curcontext="$curcontext" command="$words[1]" if [[ CURRENT -eq 1 ]]; then - curcontext="${curcontext}:-command-" + curcontext="${curcontext%:*:*}:-command-:" comp="$_comps[-command-]" [[ -z "$comp" ]] || "$comp" && ret=0 @@ -26,15 +26,15 @@ else if [[ "$command[1]" == '=' ]]; then eval cmd1\=$command cmd2="$command[2,-1]" - curcontext="${curcontext}::${cmd2}:" + curcontext="${curcontext%:*:*}:${cmd2}:" elif [[ "$command" == */* ]]; then cmd1="$command" cmd2="${command:t}" - curcontext="${curcontext}::${cmd2}:" + curcontext="${curcontext%:*:*}:${cmd2}:" else cmd1="$command" cmd2="$commands[$command]" - curcontext="${curcontext}::${cmd1}:" + curcontext="${curcontext%:*:*}:${cmd1}:" fi fi diff --git a/Completion/Core/_oldlist b/Completion/Core/_oldlist index b0092d586..450e3cb29 100644 --- a/Completion/Core/_oldlist +++ b/Completion/Core/_oldlist @@ -1,8 +1,8 @@ #autoload -local curcontext="${curcontext}:oldlist" list +local curcontext="${curcontext/:[^:]#:/:oldlist:}" list -zstyle -s ":completion${curcontext}:" list list +zstyle -s ":completion:${curcontext}:" list list # If this is a listing widget and there is already an old list, # and either the style :oldlist:list is `always', or it is not `never' @@ -34,7 +34,7 @@ fi if [[ -z $compstate[old_insert] && -n $compstate[old_list] ]]; then compstate[old_list]=keep elif [[ $WIDGET = *complete(|-prefix|-word) ]] && - zstyle -t ":completion${curcontext}:" menu; then + zstyle -t ":completion:${curcontext}:" menu; then if [[ -n $compstate[old_insert] ]]; then compstate[old_list]=keep if [[ $WIDGET = *reverse* ]]; then diff --git a/Completion/Core/_path_files b/Completion/Core/_path_files index cacf62cd7..a41f8d73a 100644 --- a/Completion/Core/_path_files +++ b/Completion/Core/_path_files @@ -82,7 +82,7 @@ while getopts "P:S:qr:R:W:F:J:V:X:f/g:M:12n" opt; do done if [[ -z "$_file_pat_checked" ]] && - zstyle -s ":completion${curcontext}:files" file-patterns tmp1 && + zstyle -s ":completion:${curcontext}:files" file-patterns tmp1 && [[ -n "$tmp1" ]]; then if [[ "$tmp1" = '*(-/)' ]]; then gopt='' @@ -126,7 +126,7 @@ if [[ "$sopt" = - ]]; then fi fi -if zstyle -s ":completion${curcontext}:files" sort tmp1; then +if zstyle -s ":completion:${curcontext}:files" sort tmp1; then case "$tmp1" in *size*) sort=oL;; *links*) sort=ol;; @@ -159,7 +159,7 @@ fi # Skip over sequences of slashes. -zstyle -t ":completion${curcontext}:paths" squeeze-slashes && skips=yes +zstyle -t ":completion:${curcontext}:paths" squeeze-slashes && skips=yes # We get the prefix and the suffix from the line and save the whole # original string. Then we see if we will do menucompletion. @@ -293,7 +293,7 @@ for prepath in "$prepaths[@]"; do [[ ! -o globdots && "$PREFIX" = .* ]] && tmp2=( "$tmp2[@]" ${^tmp1}.*(-/) ) if [[ -o globdots || "$PREFIX" = .* ]] && - zstyle -s ":completion${curcontext}:paths" special-dirs atmp; then + zstyle -s ":completion:${curcontext}:paths" special-dirs atmp; then if [[ "$atmp" = (yes|true|1|on) ]]; then tmp2=( "$tmp2[@]" . .. ) elif [[ "$atmp" = .. ]]; then @@ -305,7 +305,7 @@ for prepath in "$prepaths[@]"; do [[ ! -o globdots && "$PREFIX" = .* ]] && tmp2=( "$tmp2[@]" ${^tmp1}.${^~pats} ) if (( $#tmp2 )) && - zstyle -s ":completion${curcontext}:files" ignore-parents rem && + zstyle -s ":completion:${curcontext}:files" ignore-parents rem && [[ ( "$rem" != *dir* || "$pats" = '*(-/)' ) && ( "$rem" != *..* || "$tmp1" = *../* ) ]]; then if [[ "$rem" = *parent* ]]; then @@ -330,7 +330,7 @@ for prepath in "$prepaths[@]"; do expl=( "$expl[@]" -F _comp_ignore ) fi if [[ "$sopt" = *[/f]* && ( -o globdots || "$PREFIX" = .* ) ]] && - zstyle -s ":completion${curcontext}:paths" special-dirs atmp; then + zstyle -s ":completion:${curcontext}:paths" special-dirs atmp; then if [[ "$atmp" = (yes|true|1|on) ]]; then tmp2=( "$tmp2[@]" . .. ) elif [[ "$atmp" = .. ]]; then @@ -465,8 +465,8 @@ for prepath in "$prepaths[@]"; do compquote tmp1 tmp2 if [[ -n $menu ]] || - ! zstyle -t ":completion${curcontext}:paths" expand suffix; then - (( $#tmp4 )) && zstyle -t ":completion${curcontext}:paths" cursor && + ! zstyle -t ":completion:${curcontext}:paths" expand suffix; then + (( $#tmp4 )) && zstyle -t ":completion:${curcontext}:paths" cursor && compstate[to_end]='' if [[ "$tmp3" = */* ]]; then compadd -Qf "$mopts[@]" -p "$linepath$tmp2" -s "/${tmp3#*/}" \ @@ -555,7 +555,7 @@ done exppaths=( "${(@)exppaths:#$eorig}" ) -if zstyle -t ":completion${curcontext}:paths" expand prefix && +if zstyle -t ":completion:${curcontext}:paths" expand prefix && [[ $#exppaths -gt 0 && nm -eq compstate[nmatches] ]]; then PREFIX="${opre}" SUFFIX="${osuf}" diff --git a/Completion/Core/_setup b/Completion/Core/_setup index 4054f5ecc..b3b2bdb33 100644 --- a/Completion/Core/_setup +++ b/Completion/Core/_setup @@ -2,7 +2,7 @@ local val nm="$compstate[nmatches]" -if zstyle -a ":completion${curcontext}:$1" list-colors val; then +if zstyle -a ":completion:${curcontext}:$1" list-colors val; then zmodload -e zsh/complist || zmodload -i zsh/complist if [[ "$1" = default ]]; then ZLS_COLORS="${(j.:.)${(@)val:gs/:/\\\:}}" @@ -11,7 +11,7 @@ if zstyle -a ":completion${curcontext}:$1" list-colors val; then fi fi -if zstyle -s ":completion${curcontext}:$1" list-packed val; then +if zstyle -s ":completion:${curcontext}:$1" list-packed val; then if [[ "$val" = (yes|true|1|on) ]]; then compstate[list]="${compstate[list]} packed" else @@ -21,7 +21,7 @@ else compstate[list]="$_saved_list" fi -if zstyle -s ":completion${curcontext}:$1" list-rows-first val; then +if zstyle -s ":completion:${curcontext}:$1" list-rows-first val; then if [[ "$val" = (yes|true|1|on) ]]; then compstate[list]="${compstate[list]} rows" else @@ -31,7 +31,7 @@ else compstate[list]="$_saved_list" fi -if zstyle -s ":completion${curcontext}:$1" last-prompt val; then +if zstyle -s ":completion:${curcontext}:$1" last-prompt val; then if [[ "$val" = (yes|true|1|on) ]]; then compstate[last_prompt]=yes else @@ -41,7 +41,7 @@ else compstate[last_prompt]="$_saved_lastprompt" fi -if zstyle -s ":completion${curcontext}:$1" accept-exact val; then +if zstyle -s ":completion:${curcontext}:$1" accept-exact val; then if [[ "$val" = (yes|true|1|on) ]]; then compstate[exact]=accept else @@ -54,7 +54,7 @@ fi [[ _last_nmatches -ge 0 && _last_nmatches -ne nm ]] && _menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" ) -if zstyle -a ":completion${curcontext}:$1" menu val; then +if zstyle -a ":completion:${curcontext}:$1" menu val; then _last_nmatches="$nm" _last_menu_style=( "$val[@]" ) else diff --git a/Completion/Core/_sort_tags b/Completion/Core/_sort_tags index 6f07eec1c..778a6000b 100644 --- a/Completion/Core/_sort_tags +++ b/Completion/Core/_sort_tags @@ -6,15 +6,15 @@ comptry options case "$curcontext" in # Some silly examples commented out: # -# *::*p[bgpn]m:*) # change the order for file-completion +# *:*:*:*p[bgpn]m:*) # change the order for file-completion # comptry globbed-files directories # comptry all-files # ;; -# *::dvips::-o*) # automatic context set by _arguments +# *:*:*:dvips:-o*) # automatic context set by _arguments # comptry all-files # return # ;; -# *::kill:*) +# *:*:*:kill:*) # comptry processes # return # this return ensures that we use only processes # ;; diff --git a/Completion/Core/_tags b/Completion/Core/_tags index 208ec32b1..d2d5555fa 100644 --- a/Completion/Core/_tags +++ b/Completion/Core/_tags @@ -7,10 +7,10 @@ if (( $# )); then local curcontext="$curcontext" order tag nodef if [[ "$1" = -C?* ]]; then - curcontext="${curcontext}:${1[3,-1]}" + curcontext="${curcontext%:*}:${1[3,-1]}" shift elif [[ "$1" = -C ]]; then - curcontext="${curcontext}:${2}" + curcontext="${curcontext%:*}:${2}" shift 2 else targs=() @@ -18,7 +18,7 @@ if (( $# )); then [[ "$1" = -(|-) ]] && shift - if zstyle -a ":completion${curcontext}" group-order order; then + if zstyle -a ":completion:${curcontext}:" group-order order; then local name for name in "$order[@]"; do @@ -42,7 +42,7 @@ if (( $# )); then if [[ -n "$_sort_tags" ]]; then "$_sort_tags" "$@" - elif zstyle -a ":completion${curcontext}" tag-order order; then + elif zstyle -a ":completion:${curcontext}:" tag-order order; then for tag in $order; do case $tag in diff --git a/Completion/Core/compinit b/Completion/Core/compinit index bfb697279..cd9ec7c2f 100644 --- a/Completion/Core/compinit +++ b/Completion/Core/compinit @@ -475,11 +475,11 @@ compstyle() { 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:*:(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 -- cgit 1.4.1