about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrank Terbeck <bewater@users.sourceforge.net>2011-03-20 10:34:33 +0000
committerFrank Terbeck <bewater@users.sourceforge.net>2011-03-20 10:34:33 +0000
commit2895154f894a285e12b039895438e0bb6b7800f3 (patch)
tree30f4b06b411ad06dfbe707c744f5c2d7b4fa3b37
parentcce858f5ae3406762138ec2632329f4392c84553 (diff)
downloadzsh-2895154f894a285e12b039895438e0bb6b7800f3.tar.gz
zsh-2895154f894a285e12b039895438e0bb6b7800f3.tar.xz
zsh-2895154f894a285e12b039895438e0bb6b7800f3.zip
Johan Sundström: 28890: New _npm completion.
-rw-r--r--ChangeLog7
-rw-r--r--Completion/Unix/Command/.distfiles1
-rw-r--r--Completion/Unix/Command/_npm19
3 files changed, 26 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2ab3209b4..5710f7d9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-03-20  Frank Terbeck  <ft@bewatermyfriend.org>
+
+	* Johan Sundström: 28890: Completion/Unix/Command/.distfiles,
+	Completion/Unix/Command/_npm: New _npm completion.
+
 2011-03-18  Frank Terbeck  <ft@bewatermyfriend.org>
 
 	* Nikolai Weibull: 28914: Completion/Unix/Command/_git: Typo
@@ -14358,5 +14363,5 @@
 
 *****************************************************
 * This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5227 $
+* $Revision: 1.5228 $
 *****************************************************
diff --git a/Completion/Unix/Command/.distfiles b/Completion/Unix/Command/.distfiles
index a0ac7f8f5..78b89f2cf 100644
--- a/Completion/Unix/Command/.distfiles
+++ b/Completion/Unix/Command/.distfiles
@@ -137,6 +137,7 @@ _ncftp
 _netcat
 _nice
 _nmap
+_npm
 _nslookup
 _osc
 _pack
diff --git a/Completion/Unix/Command/_npm b/Completion/Unix/Command/_npm
new file mode 100644
index 000000000..24b536188
--- /dev/null
+++ b/Completion/Unix/Command/_npm
@@ -0,0 +1,19 @@
+#compdef npm
+
+# Node Package Manager 0.3.15 completion, letting npm do all the completion work
+
+_npm() {
+  compadd -- $(_npm_complete $words)
+}
+
+# We want to show all errors of any substance, but never the "npm (not )ok" one.
+# (Also doesn't consider "ERR! no match found" worth breaking the terminal for.)
+_npm_complete() {
+  local ask_npm
+  ask_npm=(npm completion --color false --loglevel error -- $@)
+  { _call_program npm $ask_npm 2>&1 >&3 \
+  | egrep -v '^(npm (not |)ok|ERR! no match found)$' >&2; \
+  } 3>&1
+}
+
+_npm "$@"