diff --git a/plugins/cakephp3/cakephp3.plugin.zsh b/plugins/cakephp3/cakephp3.plugin.zsh index 28d5af2ea..2b0f58998 100644 --- a/plugins/cakephp3/cakephp3.plugin.zsh +++ b/plugins/cakephp3/cakephp3.plugin.zsh @@ -1,11 +1,30 @@ # CakePHP 3 basic command completion _cakephp3_get_command_list () { - cakephp3commands=($(bin/cake completion commands));printf "%s\n" "${cakephp3commands[@]}" + bin/cake Completion commands +} + +_cakephp3_get_sub_command_list () { + bin/cake Completion subcommands ${words[2]} +} + +_cakephp3_get_3rd_argument () { + bin/cake ${words[2]} ${words[3]} | grep '\-\ '| awk '{print $2}' } _cakephp3 () { + has3rdargument=("all" "controller" "fixture" "model" "template") if [ -f bin/cake ]; then - compadd `_cakephp3_get_command_list` + if (( CURRENT == 2 )); then + compadd `_cakephp3_get_command_list` + fi + if (( CURRENT == 3 )); then + compadd `_cakephp3_get_sub_command_list` + fi + if (( CURRENT == 4 )); then + if [[ ${has3rdargument[(i)${words[3]}]} -le ${#has3rdargument} ]] ; then ; + compadd `_cakephp3_get_3rd_argument` + fi + fi fi } @@ -14,6 +33,5 @@ compdef _cakephp3 cake #Alias alias c3='bin/cake' - alias c3cache='bin/cake orm_cache clear' alias c3migrate='bin/cake migrations migrate'