summaryrefslogtreecommitdiff
path: root/plugins/composer/composer.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/composer/composer.plugin.zsh')
-rw-r--r--plugins/composer/composer.plugin.zsh42
1 files changed, 26 insertions, 16 deletions
diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh
index 634961023..218a13e5f 100644
--- a/plugins/composer/composer.plugin.zsh
+++ b/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
@@ -43,17 +39,31 @@ alias crm='composer remove'
alias ci='composer install'
alias ccp='composer create-project'
alias cdu='composer dump-autoload'
-alias cdo='composer dump-autoload --optimize-autoloader'
+alias cdo='composer dump-autoload -o'
alias cgu='composer global update'
alias cgr='composer global require'
alias cgrm='composer global remove'
+alias co='composer outdated'
+alias cod='composer outdated --direct'
# install composer in the current directory
alias cget='curl -s https://getcomposer.org/installer | php'
# Add Composer's global binaries to PATH, using Composer if available.
if (( $+commands[composer] )); then
- export PATH=$PATH:$(composer global config bin-dir --absolute 2>/dev/null)
+ autoload -Uz _store_cache _retrieve_cache _cache_invalid
+
+ _retrieve_cache composer
+
+ if [[ -z $__composer_bin_dir ]]; then
+ __composer_bin_dir=$(composer global config bin-dir --absolute 2>/dev/null)
+ _store_cache composer __composer_bin_dir
+ fi
+
+ # Add Composer's global binaries to PATH
+ export PATH="$PATH:$__composer_bin_dir"
+
+ unset __composer_bin_dir
else
[ -d $HOME/.composer/vendor/bin ] && export PATH=$PATH:$HOME/.composer/vendor/bin
[ -d $HOME/.config/composer/vendor/bin ] && export PATH=$PATH:$HOME/.config/composer/vendor/bin