Browse Source

autocomplete required packages as second argumet

Gunther Konig 11 years ago
parent
commit
decf9cdb31
1 changed files with 23 additions and 1 deletions
  1. 23 1
      plugins/composer/composer.plugin.zsh

+ 23 - 1
plugins/composer/composer.plugin.zsh

@@ -10,14 +10,36 @@ _composer_get_command_list () {
 	composer --no-ansi | sed "1,/Available commands/d" | awk '/^  [a-z]+/ { print $1 }'
 }
 
+_composer_get_required_list () {
+    composer show -s --no-ansi | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }'
+}
+
 _composer () {
+  local curcontext="$curcontext" state line
+  typeset -A opt_args
+  _arguments \
+    '1: :->command'\
+    '*: :->args'
   if [ -f composer.json ]; then
-    compadd `_composer_get_command_list`
+    case $state in
+      command)
+        compadd `_composer_get_command_list`
+        ;;
+      *)
+        compadd `_composer_get_required_list`
+        ;;
+    esac
   else
     compadd create-project init search selfupdate show
   fi
 }
 
+_composer_required () {
+  if [ -f composer.json ]; then
+    compadd `_composer_get_required_list`
+  fi
+}
+
 compdef _composer composer
 
 # Aliases