1514145a09140425b914e9cd98fc1d638a8c4003

Author
Carlo Sala <carlosalag@protonmail.com>
Committer
Carlo Sala <carlosalag@protonmail.com>
Date

Message

feat(nvm): add `_omz_nvm_load` function

Diff

 1diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md
 2index fe91cc3b2c17e0da9c5f661ff390cc97b558d24a..1245f66dbccff38a8908822a3efa6df6bfeb61f8 100644
 3--- a/plugins/nvm/README.md
 4+++ b/plugins/nvm/README.md
 5@@ -42,6 +42,8 @@ as you want:
 6 zstyle ':omz:plugins:nvm' lazy-cmd eslint prettier typescript ...
 7 ```
 8 
 9+There will be a function `_omz_nvm_load` available to load `nvm` without executing any other trigger command.
10+
11 #### `.nvmrc` autoload
12 
13 Note: _if used at the same time as `lazy`, `autoload` will start working only after nvm has been lazy-loaded_
14diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh
15index a00c2e1172a47de4f0206885a131d8860f0a0c8b..682bddc478f8c9793af78bfa7afa4f117859d671 100644
16--- a/plugins/nvm/nvm.plugin.zsh
17+++ b/plugins/nvm/nvm.plugin.zsh
18@@ -20,7 +20,7 @@ if [[ -z "$NVM_DIR" ]] || [[ ! -f "$NVM_DIR/nvm.sh" ]]; then
19   return
20 fi
21 
22-function _omz_load_nvm_completion {
23+function _omz_nvm_setup_completion {
24   local _nvm_completion
25   # Load nvm bash completion
26   for _nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do
27@@ -33,12 +33,12 @@ function _omz_load_nvm_completion {
28       break
29     fi
30   done
31-  unfunction _omz_load_nvm_completion
32+  unfunction _omz_nvm_setup_completion
33 }
34 
35-function _omz_setup_autoload {
36+function _omz_nvm_setup_autoload {
37   if ! zstyle -t ':omz:plugins:nvm' autoload; then
38-    unfunction _omz_setup_autoload
39+    unfunction _omz_nvm_setup_autoload
40     return
41   fi
42 
43@@ -68,13 +68,13 @@ function _omz_setup_autoload {
44   add-zsh-hook chpwd load-nvmrc
45 
46   load-nvmrc
47-  unfunction _omz_setup_autoload
48+  unfunction _omz_nvm_setup_autoload
49 }
50 
51 if zstyle -t ':omz:plugins:nvm' lazy; then
52   # Call nvm when first using nvm, node, npm, pnpm, yarn, corepack or other commands in lazy-cmd
53   zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd
54-  nvm_lazy_cmd=(nvm node npm npx pnpm pnpx yarn corepack $nvm_lazy_cmd) # default values
55+  nvm_lazy_cmd=(_omz_nvm_load nvm node npm npx pnpm pnpx yarn corepack $nvm_lazy_cmd) # default values
56   eval "
57     function $nvm_lazy_cmd {
58       for func in $nvm_lazy_cmd; do
59@@ -84,14 +84,16 @@ if zstyle -t ':omz:plugins:nvm' lazy; then
60       done
61       # Load nvm if it exists in \$NVM_DIR
62       [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\"
63-      _omz_load_nvm_completion
64-      _omz_setup_autoload
65-      \"\$0\" \"\$@\"
66+      _omz_nvm_setup_completion
67+      _omz_nvm_setup_autoload
68+      if [[ \"\$0\" != _omz_nvm_load ]]; then
69+        \"\$0\" \"\$@\"
70+      fi
71     }
72   "
73   unset nvm_lazy_cmd
74 else
75   source "$NVM_DIR/nvm.sh"
76-  _omz_load_nvm_completion
77-  _omz_setup_autoload
78+  _omz_nvm_setup_completion
79+  _omz_nvm_setup_autoload
80 fi