Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Fix the outdated _npm completion script



On 2/23/14, 8:02 PM, Hong Xu wrote:
Hi,

The existing npm completion script no longer works. The stdout of `npm
completion` has become a script to add a completion function. Here is
the patch to update it.

An update to the patch, handling the case in which the npm command does not exist.

Hong
diff --git a/Completion/Unix/Command/_npm b/Completion/Unix/Command/_npm
index 24b5361..f5493a3 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


Messages sorted by: Reverse Date, Date, Thread, Author