aboutsummaryrefslogtreecommitdiff
path: root/zsh/.zsh/completion/_composer
diff options
context:
space:
mode:
authorxero <x@xero.nu>2015-04-18 14:37:59 -0400
committerxero <x@xero.nu>2015-04-18 14:37:59 -0400
commit57a1c829609c04ff382f8a94327db629f917b3a5 (patch)
tree627fd3ac82a88f9f4ac2bf80d04e2c3682e9a98e /zsh/.zsh/completion/_composer
parentc2470791e31fa2952644e26c52ff1f956f03d41b (diff)
downloaddotfiles_ascii-57a1c829609c04ff382f8a94327db629f917b3a5.tar.xz
dotfiles_ascii-57a1c829609c04ff382f8a94327db629f917b3a5.zip
setup zsh autocompletion for a few custom apps
Diffstat (limited to '')
-rw-r--r--zsh/.zsh/completion/_composer76
1 files changed, 76 insertions, 0 deletions
diff --git a/zsh/.zsh/completion/_composer b/zsh/.zsh/completion/_composer
new file mode 100644
index 0000000..f30360f
--- /dev/null
+++ b/zsh/.zsh/completion/_composer
@@ -0,0 +1,76 @@
+#compdef composer
+# ------------------------------------------------------------------------------
+# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of the zsh-users nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# ------------------------------------------------------------------------------
+# Description
+# -----------
+#
+# Completion script for composer (https://getcomposer.org/).
+#
+# ------------------------------------------------------------------------------
+# Authors
+# -------
+#
+# * Daniel Gomes (me@danielcsgomes.com)
+# * Valerii Hiora (https://github.com/vhbit)
+# * loranger (https://github.com/loranger)
+#
+# ------------------------------------------------------------------------------
+
+local curcontext=$curcontext state line
+declare -A opt_args
+
+_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
+ case $state in
+ command)
+ compadd `_composer_get_command_list`
+ ;;
+ *)
+ compadd `_composer_get_required_list`
+ ;;
+ esac
+ else
+ compadd create-project init search selfupdate show
+ fi
+}
+
+compdef _composer composer