浏览代码

composer: keep composer autocompletion when using global (#5933)

Thomas Ruiz 4 年之前
父节点
当前提交
864b441688
共有 1 个文件被更改,包括 10 次插入14 次删除
  1. 10 14
      plugins/composer/composer.plugin.zsh

+ 10 - 14
plugins/composer/composer.plugin.zsh

@@ -15,20 +15,16 @@ _composer_get_required_list () {
 }
 
 _composer () {
-  local curcontext="$curcontext" state line
-  typeset -A opt_args
-  _arguments \
-    '1: :->command'\
-    '*: :->args'
-
-  case $state in
-    command)
-      compadd $(_composer_get_command_list)
-      ;;
-    *)
-      compadd $(_composer_get_required_list)
-      ;;
-  esac
+    local curcontext="$curcontext" state line
+    typeset -A opt_args
+    _arguments \
+        '*:: :->subcmds'
+
+    if (( CURRENT == 1 )) || ( ((CURRENT == 2)) && [ "$words[1]" = "global" ] ) ; then
+        compadd $(_composer_get_command_list)
+    else
+        compadd $(_composer_get_required_list)
+    fi
 }
 
 compdef _composer composer