about summary refs log tree commit diff
path: root/Completion/Zsh/Context/_dynamic_directory_name
blob: 5e0d73a8de8c95d5d90a5d1614d8f70525410507 (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
#autoload
local -a dirfuncs=(
    ${(k)functions[zsh_directory_name]}
    $zsh_directory_name_functions
)
local descr='dynamically named directory'

if (( $#dirfuncs )); then
  local -a expl
  local -i ret
  local func suf tag=dynamically-named-directories

  [[ $ISUFFIX != \]* ]] &&
      suf=-S]

  _tags "$tag"
  while _tags; do
    while _next_label "$tag" expl "$descr" $suf; do
      for func in $dirfuncs; do
        $func c && ret=0
      done
    done
    (( ret )) || break
  done
  return ret

else
  _message "${descr}: implement as zsh_directory_name c"
fi