Diff
1diff --git a/plugins/composer/README.md b/plugins/composer/README.md
2index 7a5f7256ebbaf335a83d67b95b1ebfdf7b127ae9..00ada1e138dc07f08c5944ebefbfc244dfe0d7c0 100644
3--- a/plugins/composer/README.md
4+++ b/plugins/composer/README.md
5@@ -10,22 +10,24 @@ To use it add `composer` to the plugins array in your zshrc file.
6 plugins=(... composer)
7 ```
8
9+Original author: Daniel Gomes <me@danielcsgomes.com>
10+
11 ## Aliases
12
13-| Alias | Command | Description |
14-| ------ | ------------------------------------------- | --------------------------------------------------------------------------------------- |
15-| `c` | `composer` | Starts composer |
16-| `csu` | `composer self-update` | Updates composer to the latest version |
17-| `cu` | `composer update` | Updates composer dependencies and `composer.lock` file |
18-| `cr` | `composer require` | Adds new packages to `composer.json` |
19-| `crm` | `composer remove` | Removes packages from `composer.json` |
20-| `ci` | `composer install` | Resolves and installs dependencies from `composer.json` |
21-| `ccp` | `composer create-project` | Create new project from an existing package |
22-| `cdu` | `composer dump-autoload` | Updates the autoloader |
23-| `cdo` | `composer dump-autoload -o` | Converts PSR-0/4 autoloading to classmap for a faster autoloader (good for production) |
24-| `cgu` | `composer global update` | Allows update command to run on COMPOSER_HOME directory |
25-| `cgr` | `composer global require` | Allows require command to run on COMPOSER_HOME directory |
26-| `cgrm` | `composer global remove` | Allows remove command to run on COMPOSER_HOME directory |
27-| `cget` | `curl -s https://getcomposer.org/installer` | Installs composer in the current directory |
28-| `co` | `composer outdated` | Shows a list of installed packages with available updates |
29-| `cod` | `composer outdated --direct` | Shows a list of installed packages with available updates which are direct dependencies |
30+| Alias | Command | Description |
31+| ------ | ---------------------------- | --------------------------------------------------------------------------------------- |
32+| `c` | `composer` | Starts composer |
33+| `ccp` | `composer create-project` | Create new project from an existing package |
34+| `cdo` | `composer dump-autoload -o` | Converts PSR-0/4 autoloading to classmap for a faster autoloader (good for production) |
35+| `cdu` | `composer dump-autoload` | Updates the autoloader |
36+| `cget` | `curl -s <installer> \| php` | Installs composer in the current directory |
37+| `cgr` | `composer global require` | Allows require command to run on COMPOSER_HOME directory |
38+| `cgrm` | `composer global remove` | Allows remove command to run on COMPOSER_HOME directory |
39+| `cgu` | `composer global update` | Allows update command to run on COMPOSER_HOME directory |
40+| `ci` | `composer install` | Resolves and installs dependencies from `composer.json` |
41+| `co` | `composer outdated` | Shows a list of installed packages with available updates |
42+| `cod` | `composer outdated --direct` | Shows a list of installed packages with available updates which are direct dependencies |
43+| `cr` | `composer require` | Adds new packages to `composer.json` |
44+| `crm` | `composer remove` | Removes packages from `composer.json` |
45+| `csu` | `composer self-update` | Updates composer to the latest version |
46+| `cu` | `composer update` | Updates composer dependencies and `composer.lock` file |
47diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh
48index 218a13e5f116d8089de06ab8cd28d6ef590848ad..ba29503e423598f820278d8b1f4e437e2b369f4a 100644
49--- a/plugins/composer/composer.plugin.zsh
50+++ b/plugins/composer/composer.plugin.zsh
51@@ -1,19 +1,3 @@
52-# ------------------------------------------------------------------------------
53-# FILE: composer.plugin.zsh
54-# DESCRIPTION: oh-my-zsh composer plugin file.
55-# AUTHOR: Daniel Gomes (me@danielcsgomes.com)
56-# VERSION: 1.0.0
57-# ------------------------------------------------------------------------------
58-
59-# Composer basic command completion
60-_composer_get_command_list () {
61- $_comp_command1 --no-ansi 2>/dev/null | sed "1,/Available commands/d" | awk '/^[ \t]*[a-z]+/ { print $1 }'
62-}
63-
64-_composer_get_required_list () {
65- $_comp_command1 show -s --no-ansi 2>/dev/null | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }'
66-}
67-
68 _composer () {
69 local curcontext="$curcontext" state line
70 typeset -A opt_args
71@@ -30,41 +14,45 @@ _composer () {
72 compdef _composer composer
73 compdef _composer composer.phar
74
75-# Aliases
76+
77+## Aliases
78 alias c='composer'
79-alias csu='composer self-update'
80-alias cu='composer update'
81-alias cr='composer require'
82-alias crm='composer remove'
83-alias ci='composer install'
84 alias ccp='composer create-project'
85-alias cdu='composer dump-autoload'
86 alias cdo='composer dump-autoload -o'
87-alias cgu='composer global update'
88+alias cdu='composer dump-autoload'
89+alias cget='curl -s https://getcomposer.org/installer | php'
90 alias cgr='composer global require'
91 alias cgrm='composer global remove'
92+alias cgu='composer global update'
93+alias ci='composer install'
94 alias co='composer outdated'
95 alias cod='composer outdated --direct'
96+alias cr='composer require'
97+alias crm='composer remove'
98+alias csu='composer self-update'
99+alias cu='composer update'
100
101-# install composer in the current directory
102-alias cget='curl -s https://getcomposer.org/installer | php'
103
104-# Add Composer's global binaries to PATH, using Composer if available.
105-if (( $+commands[composer] )); then
106- autoload -Uz _store_cache _retrieve_cache _cache_invalid
107+## If Composer not found, try to add known directories to $PATH
108+if (( ! $+commands[composer] )); then
109+ [[ -d "$HOME/.composer/vendor/bin" ]] && export PATH="$PATH:$HOME/.composer/vendor/bin"
110+ [[ -d "$HOME/.config/composer/vendor/bin" ]] && export PATH="$PATH:$HOME/.config/composer/vendor/bin"
111
112- _retrieve_cache composer
113+ # If still not found, don't do the rest of the script
114+ (( $+commands[composer] )) || return 0
115+fi
116
117- if [[ -z $__composer_bin_dir ]]; then
118- __composer_bin_dir=$(composer global config bin-dir --absolute 2>/dev/null)
119- _store_cache composer __composer_bin_dir
120- fi
121
122- # Add Composer's global binaries to PATH
123- export PATH="$PATH:$__composer_bin_dir"
124+## Add Composer's global binaries to PATH
125+autoload -Uz _store_cache _retrieve_cache _cache_invalid
126+_retrieve_cache composer
127
128- unset __composer_bin_dir
129-else
130- [ -d $HOME/.composer/vendor/bin ] && export PATH=$PATH:$HOME/.composer/vendor/bin
131- [ -d $HOME/.config/composer/vendor/bin ] && export PATH=$PATH:$HOME/.config/composer/vendor/bin
132+if [[ -z $__composer_bin_dir ]]; then
133+ __composer_bin_dir=$(composer global config bin-dir --absolute 2>/dev/null)
134+ _store_cache composer __composer_bin_dir
135 fi
136+
137+# Add Composer's global binaries to PATH
138+export PATH="$PATH:$__composer_bin_dir"
139+
140+unset __composer_bin_dir