summary refs log tree commit diff
path: root/Completion/Unix/Command/_zsh
blob: a5414670b33cdc474f5c726c5ee87e073d977f48 (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
#compdef zsh

local curcontext=$curcontext state state_descr line expl
typeset -A opt_args

_arguments -S -s : \
  '*-o+[set named option]:option:_options' \
  '*+o+[unset named option]:option:_options' \
  '(1 -s --shinstdin)'{-s,--shinstdin}'[read commands from standard input]' \
  '(-)-b[end of option processing, like --]' \
  '(1 -)-c[run a command]:command:_cmdstring' \
  '(-)1:script file:_files' \
  '*::script arguments:->args' -- && return 0

case $state in
  (args)
    if [[ -n ${opt_args[(I)-c|-s|--shinstdin]} ]]; then
      _files
    else
      _normal
    fi
    ;;
esac