From 37b1fc65d52d9a6a8d5f37de3f745782a3af695b Mon Sep 17 00:00:00 2001 From: Draniu Date: Wed, 18 May 2016 23:58:12 +0200 Subject: [PATCH 1/2] Better cake3 completion --- plugins/cakephp3/cakephp3.plugin.zsh | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/plugins/cakephp3/cakephp3.plugin.zsh b/plugins/cakephp3/cakephp3.plugin.zsh index 28d5af2ea..a635caec8 100644 --- a/plugins/cakephp3/cakephp3.plugin.zsh +++ b/plugins/cakephp3/cakephp3.plugin.zsh @@ -1,19 +1,38 @@ # 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 () { 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 } +has3rdargument=("all" "controller" "fixture" "model" "template") + compdef _cakephp3 bin/cake compdef _cakephp3 cake #Alias alias c3='bin/cake' - alias c3cache='bin/cake orm_cache clear' alias c3migrate='bin/cake migrations migrate' From 79a87fa4376fc3e5f4fdaf3aa3610c300961b53a Mon Sep 17 00:00:00 2001 From: Draniu Date: Mon, 23 May 2016 12:19:14 +0200 Subject: [PATCH 2/2] Update cakephp3.plugin.zsh saffowing sugestion @mcornella --- plugins/cakephp3/cakephp3.plugin.zsh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/cakephp3/cakephp3.plugin.zsh b/plugins/cakephp3/cakephp3.plugin.zsh index a635caec8..2b0f58998 100644 --- a/plugins/cakephp3/cakephp3.plugin.zsh +++ b/plugins/cakephp3/cakephp3.plugin.zsh @@ -12,6 +12,7 @@ _cakephp3_get_3rd_argument () { } _cakephp3 () { + has3rdargument=("all" "controller" "fixture" "model" "template") if [ -f bin/cake ]; then if (( CURRENT == 2 )); then compadd `_cakephp3_get_command_list` @@ -27,8 +28,6 @@ _cakephp3 () { fi } -has3rdargument=("all" "controller" "fixture" "model" "template") - compdef _cakephp3 bin/cake compdef _cakephp3 cake