diff options
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Core/_main_complete | 2 | ||||
-rw-r--r-- | Completion/Core/_path_files | 14 | ||||
-rw-r--r-- | Completion/Core/compdump | 6 | ||||
-rw-r--r-- | Completion/Core/compinit | 84 |
4 files changed, 27 insertions, 79 deletions
diff --git a/Completion/Core/_main_complete b/Completion/Core/_main_complete index a5acb36f7..d019351b9 100644 --- a/Completion/Core/_main_complete +++ b/Completion/Core/_main_complete @@ -106,7 +106,7 @@ fi if [[ -n "$tmp" || $compstate[old_list] = keep || $compstate[nmatches]+$compstate[alternate_nmatches] -gt 1 ]]; then [[ _last_nmatches -ge 0 && - _last_nmatches -ne $compstate[nmatches]+$compstate[alternate_nmatches ]] && + _last_nmatches -ne $compstate[nmatches]+$compstate[alternate_nmatches] ]] && _menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" ) if [[ "$compstate[insert]" = "$_saved_insert" ]]; then diff --git a/Completion/Core/_path_files b/Completion/Core/_path_files index 2452c3c34..bc3a52e5c 100644 --- a/Completion/Core/_path_files +++ b/Completion/Core/_path_files @@ -163,6 +163,8 @@ if (( $#ignore )); then (( $mopts[(I)-F] )) || mopts=( "$mopts[@]" -F _comp_ignore ) fi +(( $#matcher )) && mopts=( "$mopts[@]" "$matcher[@]" ) + # Now let's have a closer look at the string to complete. if [[ "$pre[1]" = \~ ]]; then @@ -458,26 +460,26 @@ for prepath in "$prepaths[@]"; do if [[ "$tmp3" = */* ]]; then compadd -Qf "$mopts[@]" -p "$linepath$tmp2" -s "/${tmp3#*/}" \ -W "$prepath$realpath$testpath" \ - "$pfxsfx[@]" "$matcher[@]" "r:|/=* r:|=*" \ + "$pfxsfx[@]" -M "r:|/=* r:|=*" \ - "${(@)tmp1%%/*}" else compadd -Qf "$mopts[@]" -p "$linepath$tmp2" \ -W "$prepath$realpath$testpath" \ - "$pfxsfx[@]" "$matcher[@]" "r:|/=* r:|=*" \ + "$pfxsfx[@]" -M "r:|/=* r:|=*" \ - "$tmp1[@]" fi else if [[ "$tmp3" = */* ]]; then atmp=( -Qf "$mopts[@]" -p "$linepath$tmp2" -W "$prepath$realpath$testpath" - "$pfxsfx[@]" "$matcher[@]" "r:|/=* r:|=*" ) + "$pfxsfx[@]" -M "r:|/=* r:|=*" ) for i in "$tmp1[@]"; do compadd "$atmp[@]" -s "/${i#*/}" - "${i%%/*}" done else compadd -Qf "$mopts[@]" -p "$linepath$tmp2" \ -W "$prepath$realpath$testpath" \ - "$pfxsfx[@]" "$matcher[@]" "r:|/=* r:|=*" \ + "$pfxsfx[@]" -M "r:|/=* r:|=*" \ - "$tmp1[@]" fi fi @@ -525,7 +527,7 @@ for prepath in "$prepaths[@]"; do tmp4="$testpath" compquote tmp4 tmp1 compadd -Qf "$mopts[@]" -p "$linepath$tmp4" -W "$prepath$realpath$testpath" \ - "$pfxsfx[@]" "$matcher[@]" "r:|/=* r:|=*" - "$tmp1[@]" + "$pfxsfx[@]" -M "r:|/=* r:|=*" - "$tmp1[@]" fi done @@ -541,7 +543,7 @@ if zstyle -t ":completion:${curcontext}:paths" expand prefix && if (( $#exppaths )); then PREFIX="${opre}" SUFFIX="${osuf}" - compadd -Q "$mopts[@]" -S '' "$matcher[@]" "r:|/=* r:|=*" -p "$linepath" - "$exppaths[@]" + compadd -Q "$mopts[@]" -S '' -M "r:|/=* r:|=*" -p "$linepath" - "$exppaths[@]" fi fi diff --git a/Completion/Core/compdump b/Completion/Core/compdump index 97a181084..c577747a1 100644 --- a/Completion/Core/compdump +++ b/Completion/Core/compdump @@ -29,19 +29,19 @@ print "#files: $#_d_files" > $_d_file print "_comps=(" >> $_d_file for _d_f in ${(ok)_comps}; do - print -r - "'${_d_f//\'/'\\''}'" "'${_comps[$_d_f]//\'/'\\''}'" + print -r - "${(q)_d_f}" "${(q)_comps[$_d_f]}" done >> $_d_file print ")" >> $_d_file print "\n_patcomps=(" >> $_d_file for _d_f in "${(ok@)_patcomps}"; do - print -r - "'${_d_f//\'/'\\''}'" "'${_patcomps[$_d_f]//\'/'\\''}'" + print -r - "${(q)_d_f}" "${(q)_patcomps[$_d_f]}" done >> $_d_file print ")" >> $_d_file print "\n_postpatcomps=(" >> $_d_file for _d_f in "${(ok@)_postpatcomps}"; do - print -r - "'${_d_f//\'/'\\''}'" "'${_postpatcomps[$_d_f]//\'/'\\''}'" + print -r - "${(q)_d_f}" "${(q)_postpatcomps[$_d_f]}" done >> $_d_file print ")" >> $_d_file diff --git a/Completion/Core/compinit b/Completion/Core/compinit index 1555a9b2f..5aaaea8fe 100644 --- a/Completion/Core/compinit +++ b/Completion/Core/compinit @@ -308,12 +308,16 @@ compconf() { Hello -\`compconf' will be removed in the near future. The \`styles' form of -your setup should be available in the file: +\`compconf' will be removed in the near future, we now use a more +general (and powerful) mechanism using the \`zstyle' builtin. An +approximation to your old setup using \`zstyle' should be available +in the file: \`${HOME}/.zsh-styles' -Note that the values for the style may not be fully correct. +Note that the values for the styles may be partly incorrect. Please +read the manual to find out how to configure the completion system +with styles. Have fun @@ -358,7 +362,7 @@ Have fun tmp="'*:options' prefix-needed yes" [[ "$val" = hide* ]] && tmp="$tmp -zstyle ':completion*:options' prefix-hidden yes" +zstyle ':completion:*:options' prefix-hidden yes" ;; group_matches) tmp="'*' group-name ''" @@ -373,28 +377,28 @@ zstyle ':completion*:options' prefix-hidden yes" tmp="'*:paths' cursor ${(qq)val}" ;; (approximate|incremental|predict|list|oldlist|match)_*) - tmp="':${name%%_*}' ${${name#*_}//_/-} ${(qq)val}" + tmp="'*${name%%_*}:*' ${${name#*_}//_/-} ${(qq)val}" ;; correct_*) cmt="# This one is a bit ugly. You may want to use only \`*:correct' # if you also have the \`correctword_*' or \`approximate_*' keys. " - tmp="':(correct(|-word)|approximate)' ${name#*_} ${(qq)val}" + tmp="'*(correct(|-word)|approximate):*' ${name#*_} ${(qq)val}" ;; correctword_*) - tmp="':correct-word' ${name#correctword_} ${(qq)val}" + tmp="'*:correct-word' ${name#correctword_} ${(qq)val}" ;; expand_*) cmt="# This one is a bit ugly. You may want to use only \`*:expand' # if you also have the \`expandword_*' keys. " - tmp="':expand(|expand-word)' ${name#*_} ${(qq)val}" + tmp="'*expand(|expand-word):*' ${name#*_} ${(qq)val}" ;; expandword_*) - tmp="':expand-word' ${name#expandword_} ${(qq)val}" + tmp="'expand-word:*' ${name#expandword_} ${(qq)val}" ;; history_*) - tmp="'*:history-words' ${name#history_} ${(qq)val}" + tmp="'history-words:*' ${name#history_} ${(qq)val}" ;; completer) tmp="'*' completer ${${(qqs.:.)val}}" @@ -403,7 +407,7 @@ zstyle ':completion*:options' prefix-hidden yes" tmp="'*' last-prompt 'yes'" ;; esac - [[ -n "$tmp" ]] && style="${style}${cmt}zstyle :completion${tmp} + [[ -n "$tmp" ]] && style="${style}${cmt}zstyle :completion:${tmp} " done @@ -412,64 +416,6 @@ zstyle ':completion*:options' prefix-hidden yes" print "$style" >>! ${HOME}/.zsh-styles } -# Very simple interface for setting styles: -# -# compstyle pattern style values... - -compstyle() { - local long - - if [[ "$1" = -L ]]; then - long=yes - shift - fi - - if (( ! $# )); then - local pats styles vals pat style pre eq - - zstyle -g pats - - for pat in "${(@M)pats:#:completion*}"; do - if [[ -n "$long" ]]; then - pre="compstyle ${(qq)pat#:completion} " - else - print "${pat#:completion}" - pre=' ' - eq=' =' - fi - zstyle -g styles "$pat" - for style in "$styles[@]"; do - zstyle -g vals "$pat" "$style" - print "${pre}${style}${eq}" "${(@qq)vals}" - done - done - - return 0 - fi - - if [[ "$1" = -d ]]; then - if [[ $# -gt 1 ]]; then - zstyle -d ":completion$2" "${(@)argv[3,-1]}" - else - local pats - - zstyle -g pats - - for pat in "${(@M)pats:#:completion}"; do - zstyle -d "$pat" - done - fi - - return 0 - fi - - [[ "$1" = -(|-) ]] && shift - - zstyle - ":completion$1" "${(@)argv[2,-1]}" - - return 0 -} - # Now we automatically make the definition files autoloaded. typeset -U _i_files |