zsh-workers
 help / color / mirror / code / Atom feed
9c92cda76967c382ac9adcff85e5da6cb912506b blob 3317 bytes (raw)

  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
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
 
#compdef compadd -P _*

local curcontext="$curcontext" ret=1
local -a state line args
typeset -A opt_args

args=(
  '-P+[specify prefix]:prefix'
  '-S+[specify suffix]:suffix'
  '-p+[specify hidden prefix]:hidden prefix'
  '-s+[specify hidden suffix]:hidden suffix'
  '-i+[specify ignored prefix]:ignored prefix'
  '-I+[specify ignored suffix]:ignored suffix'
  '-o[specify order for matches by match string not by display string]:: : _values -s , order
    "match[order by match not by display string]"
    "nosort[matches are pre-ordered]"
    "numeric[order numerically]"
    "reverse[order backwards]"'
  '(-1 -E)-J+[specify match group]:group'
  '!-V+:group'
  '(-J -E)-1[remove only consecutive duplicates from group]'
  '-2[preserve all duplicates]'
  '(-x)-X[specify explanation]:explanation'
  '(-X)-x[specify unconditional explanation]:explanation'
  '-q[make suffix autoremovable]'
  '-r+[specify character class for suffix autoremoval]:character class'
  '-R+[specify function for suffix autoremoval]:function:_functions'
  '-F+[specify array of ignore patterns]:array:_parameters -g "*array*"'
  '-Q[disable quoting of possible completions]'
  '*-M[specify matching specifications]'
  '-n[hide matches in completion listing]'
  '-O+[populate array with matches instead of adding them]:array:_parameters -g "*array*"'
  '-A+[populate array with expanded matches instead of adding them]:array:_parameters -g "*array*"'
  '-D+[delete elements from array corresponding to non-matching candidates]:array:_parameters -g "*array*"'
)

case $service in
  compadd|_(path_|)files)
    args+=(
      '-W[specify location for matches marked as files]'
    )
  ;|
  compadd)
    args+=(
      '(-k)-a[matches are elements of specified arrays]'
      '(-a)-k[matches are keys of specified associative arrays]'
      '-d+[specify display strings]:array:_parameters -g "*array*"'
      '-l[list display strings one per line, not in columns]'
      '-f[mark matches as being files]'
      '-e[mark matches as being parameters]'
      '-C[add special match that expands to all other matches]'
      '(-1 -J)-E+[add specified number of display only matches]:number'
      '-U[disable internal matching of completion candidates]'
      '*:candidate:->candidates'
    )
  ;;
  _dates)
    args=( ${args:#([(][^)]##\)|)-[12noOAD]*}
      '-f[specify format for matches]:format:_date_formats'
      '-F[select a future rather than past date]'
    )
  ;;
  _(path_|)files)
    args=( ${args:#([(][^)]##\)|)-[OAD]*}
      '-g+[specify file glob pattern]:glob pattern'
      '-/[complete only directories]'
    )
  ;;
  _parameters)
    args+=(
      '-g+[specify pattern to filter parameter type by]:pattern'
    )
  ;;
  _pids)
    args+=( '-m+[pattern to filter process command line by]:pattern' )
  ;;
  _process_names)
    args+=(
      '-a[include all processes]'
      '-t[use truncated process names]'
    )
  ;;
  _sys_calls)
    args+=(
      '-a[add "all" as an additional match]'
      '-n[add "none" as an additional match]'
    )
  ;;
esac

_arguments -C -s -S -A "-*" $args && ret=0

if [[ -n $state ]]; then
  if (( $+opt_args[-a] )); then
    _parameters -g "*array*" && ret=0
  elif (( $+opt_args[-k] )); then
    _parameters -g "*assoc*" && ret=0
  else
    _message -e candidates candidate
  fi
fi

return ret
debug log:

solving 9c92cda76 ...
found 9c92cda76 in https://git.vuxu.org/mirror/zsh/

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).