yii2.plugin.zsh 496 Bytes
Newer Older
ekaragodin's avatar
ekaragodin committed
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
# Yii2 command completion

_yii2_format_command () {
  awk '/^- [a-z]+/ { sub(":", "", $2); print $2 }'
}

_yii2 () {
  if [ -f ./yii ]; then
    _arguments \
      '1: :->command'\
      '*: :->params'

    case $state in
      command)

      local -a commands
      local -a name

      if [[ $words[2] == *\/ ]]; then
        name=$words[2]
      fi

      commands=(${(f)"$(./yii help $name | _yii2_format_command)"})
      compadd -Q -S '' -a -- commands
    esac
  fi
}

compdef _yii2 yii