about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Unix/Command/_npm20
2 files changed, 8 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 6827f5ec0..49dcf6b62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2014-02-24  Peter Stephenson  <p.stephenson@samsung.com>
 
+	* Hong Xu: 32492: Completion/Unix/Command/_npm: fix outdated
+	completion.
+
 	* Sebastien Alaiwan: 32462: Completion/Unix/Command/_bzr:
 	improve completion with directory path.
 
diff --git a/Completion/Unix/Command/_npm b/Completion/Unix/Command/_npm
index 24b536188..f5493a321 100644
--- a/Completion/Unix/Command/_npm
+++ b/Completion/Unix/Command/_npm
@@ -1,19 +1,9 @@
 #compdef npm
 
-# Node Package Manager 0.3.15 completion, letting npm do all the completion work
+# Node Package Manager completion, letting npm do all the completion work
 
-_npm() {
-  compadd -- $(_npm_complete $words)
-}
+if type npm > /dev/null; then
+  eval "$(npm completion)"
 
-# 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 "$@"
+  _npm_completion "$@"
+fi