about summary refs log tree commit diff
path: root/Completion/Core/_ignored
blob: 69a5244cce7a351d6284bdb1b7eb5525a4185d2b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#autoload

# Use ignored matches.

(( $compstate[ignored] )) || return 1

local curcontext="${curcontext/:[^:]#:/:ignored-${(M)#_completers[1,_completer_num]:#_ignored}:}"
local comp i _comp_no_ignore=yes tmp expl

zstyle -a ":completion:${curcontext}:" completer comp ||
  comp=( "${(@)_completers[1,_completer_num-1][(R)_ignored,-1]}" )

for i in "$comp[@]"; do
  if [[ "$i" != _ignored ]] && "$i"; then
    if zstyle -s ":completion:${curcontext}:" single-ignored tmp &&
       [[ $compstate[old_list] != shown && $compstate[nmatches] -eq 1 ]]; then
      case "$tmp" in
      show) compstate[insert]='' compstate[list]='list force' tmp='' ;;
      menu)
        compstate[insert]=menu
        _description original expl original    
        compadd "$expl[@]" -S '' - "$PREFIX$SUFFIX"
        ;;
      *) tmp='' ;;
      esac
    fi

    return 0
  fi
done

return 1