about summary refs log tree commit diff
path: root/Completion/Unix/Type/_dir_list
blob: 536d424e3e701c7618ef598b85d93561b93507e9 (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
#compdef -value-,TERMINFO_DIRS,-default- -P -value-,*PATH,-default-

# options:
#  -s <sep> to specify the separator (default is a colon)
#  -S       to say that the separator should be added as a suffix (instead
#           of the default slash)
# any description passed should apply to an individual directory and not
# to the entire list

local sep=: dosuf suf

while [[ "$1" = -(s*|S) ]]; do
  case "$1" in
  -s)  sep="$2"; shift 2;;
  -s*) sep="${1[3,-1]}"; shift;;
  -S)  dosuf=yes; shift;;
  esac
done

compset -P "*${sep}"
compset -S "${sep}*" || suf="$sep"

if [[ -n "$dosuf" ]]; then
  suf=(-S "$suf")
else
  suf=()
fi

_directories "$suf[@]" -r "${sep}"' /\t\t\-' "$@"