Fixes #15135: Automatic completion for help in bash and zsh

This commit is contained in:
Valkeru
2017-11-15 00:29:39 +03:00
committed by Alexander Makarov
parent 10e7b1b541
commit c5aac68382
3 changed files with 7 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ _yii()
local cur opts yii command
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
yii="${COMP_WORDS[0]}"
# exit if ./yii does not exist
@@ -31,9 +32,10 @@ _yii()
[[ $cur == $command ]] && state="command"
[[ $cur != $command ]] && state="option"
[[ $cur = *=* ]] && state="value"
[[ $prev == "help" ]] && state="help"
case $state in
command)
command|help)
# complete command/route if not given
# fetch available commands from ./yii help/list command
opts=$($yii help/list 2> /dev/null)

View File

@@ -3,6 +3,7 @@
_yii() {
local state command lastArgument commands options executive
lastArgument=${words[${#words[@]}]}
prevArgument=${words[${#words[@]}-1]}
executive=$words[1]
# lookup for command
@@ -16,9 +17,10 @@ _yii() {
[[ $lastArgument == $command ]] && state="command"
[[ $lastArgument != $command ]] && state="option"
[[ $prevArgument == "help" ]] && state="help"
case $state in
command)
command|help)
commands=("${(@f)$(${executive} help/list 2>/dev/null)}")
_describe 'command' commands
;;