diff options
Diffstat (limited to 'plugins/cakephp3')
| -rw-r--r-- | plugins/cakephp3/cakephp3.plugin.zsh | 27 | 
1 files changed, 23 insertions, 4 deletions
| diff --git a/plugins/cakephp3/cakephp3.plugin.zsh b/plugins/cakephp3/cakephp3.plugin.zsh index 28d5af2ea..dbfbeba3b 100644 --- a/plugins/cakephp3/cakephp3.plugin.zsh +++ b/plugins/cakephp3/cakephp3.plugin.zsh @@ -1,11 +1,31 @@  # 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` +	local -a has3rdargument +	has3rdargument=("all" "controller" "fixture" "model" "template") +	if [ -f bin/cake ]; then +		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 +34,5 @@ compdef _cakephp3 cake  #Alias  alias c3='bin/cake' -  alias c3cache='bin/cake orm_cache clear'  alias c3migrate='bin/cake migrations migrate' | 
