mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 13:33:52 +01:00
44 lines
868 B
Plaintext
44 lines
868 B
Plaintext
#autoload
|
|
|
|
_all_matches() {
|
|
local old
|
|
|
|
zstyle -s ":completion:${curcontext}:" old-matches old
|
|
|
|
if [[ "$old" = (only|true|yes|1|on) ]]; then
|
|
|
|
if [[ -n "$compstate[old_list]" ]]; then
|
|
compstate[insert]=all
|
|
compstate[old_list]=keep
|
|
return 0
|
|
fi
|
|
|
|
[[ "$old" = *only* ]] && return 1
|
|
fi
|
|
|
|
(( $comppostfuncs[(I)_all_matches_end] )) ||
|
|
comppostfuncs=( "$comppostfuncs[@]" _all_matches_end )
|
|
|
|
_all_matches_context=":completion:${curcontext}:"
|
|
|
|
return 1
|
|
}
|
|
|
|
_all_matches_end() {
|
|
local not
|
|
|
|
zstyle -s "$_all_matches_context" avoid-completer not ||
|
|
not=( _expand _old_list _correct _approximate )
|
|
|
|
if [[ "$compstate[nmatches]" -gt 1 && $not[(I)(|_)$_completer] -eq 0 ]]; then
|
|
local expl
|
|
|
|
_description all-matches expl 'all matches'
|
|
compadd "$expl[@]" -C
|
|
fi
|
|
|
|
unset _all_matches_context
|
|
}
|
|
|
|
_all_matches "$@"
|