summaryrefslogtreecommitdiff
path: root/development/nodejs/npm.sh
diff options
context:
space:
mode:
Diffstat (limited to 'development/nodejs/npm.sh')
-rw-r--r--development/nodejs/npm.sh59
1 files changed, 59 insertions, 0 deletions
diff --git a/development/nodejs/npm.sh b/development/nodejs/npm.sh
new file mode 100644
index 0000000000..c0a293c917
--- /dev/null
+++ b/development/nodejs/npm.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+###-begin-npm-completion-###
+#
+# npm command completion script
+#
+# Installation: npm completion >> ~/.bashrc (or ~/.zshrc)
+# Or, maybe: npm completion > /usr/local/etc/bash_completion.d/npm
+#
+
+if type complete &>/dev/null; then
+ _npm_completion () {
+ local words cword
+ if type _get_comp_words_by_ref &>/dev/null; then
+ _get_comp_words_by_ref -n = -n @ -w words -i cword
+ else
+ cword="$COMP_CWORD"
+ words=("${COMP_WORDS[@]}")
+ fi
+
+ local si="$IFS"
+ IFS=$'\n' COMPREPLY=($(COMP_CWORD="$cword" \
+ COMP_LINE="$COMP_LINE" \
+ COMP_POINT="$COMP_POINT" \
+ npm completion -- "${words[@]}" \
+ 2>/dev/null)) || return $?
+ IFS="$si"
+ }
+ complete -o default -F _npm_completion npm
+elif type compdef &>/dev/null; then
+ _npm_completion() {
+ local si=$IFS
+ compadd -- $(COMP_CWORD=$((CURRENT-1)) \
+ COMP_LINE=$BUFFER \
+ COMP_POINT=0 \
+ npm completion -- "${words[@]}" \
+ 2>/dev/null)
+ IFS=$si
+ }
+ compdef _npm_completion npm
+elif type compctl &>/dev/null; then
+ _npm_completion () {
+ local cword line point words si
+ read -Ac words
+ read -cn cword
+ let cword-=1
+ read -l line
+ read -ln point
+ si="$IFS"
+ IFS=$'\n' reply=($(COMP_CWORD="$cword" \
+ COMP_LINE="$line" \
+ COMP_POINT="$point" \
+ npm completion -- "${words[@]}" \
+ 2>/dev/null)) || return $?
+ IFS="$si"
+ }
+ compctl -K _npm_completion npm
+fi
+###-end-npm-completion-###
+