Browse Source

npm: hardcode completion function and delete cached one (#8679)

Fixes #8665
Marc Cornellà 4 years ago
parent
commit
609890847d
1 changed files with 12 additions and 10 deletions
  1. 12 10
      plugins/npm/npm.plugin.zsh

+ 12 - 10
plugins/npm/npm.plugin.zsh

@@ -1,14 +1,16 @@
 (( $+commands[npm] )) && {
-    __NPM_COMPLETION_FILE="${ZSH_CACHE_DIR:-$ZSH/cache}/npm_completion"
-
-    if [[ ! -f $__NPM_COMPLETION_FILE ]]; then
-        npm completion >! $__NPM_COMPLETION_FILE 2>/dev/null
-        [[ $? -ne 0 ]] && rm -f $__NPM_COMPLETION_FILE
-    fi
-
-    [[ -f $__NPM_COMPLETION_FILE ]] && source $__NPM_COMPLETION_FILE
-
-    unset __NPM_COMPLETION_FILE
+  rm -f "${ZSH_CACHE_DIR:-$ZSH/cache}/npm_completion"
+
+  _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
 }
 
 # Install dependencies globally