64bc22aee4d32eb64ee918fc9e63318b68979070

Author
Carlo <carlosalag@protonmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

feat(nvm): add `silent-autoload` setting (#11363)

Co-authored-by: Michał Regulski <regulskimichal@outlook.com>

Closes #10942

Diff

 1diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md
 2index 4c6312e6ea07c9b9819549ecb94159a08c21d0f5..d3fd980be1904c3fb629f9bf88f0642c39fe1570 100644
 3--- a/plugins/nvm/README.md
 4+++ b/plugins/nvm/README.md
 5@@ -48,5 +48,13 @@ If set, the plugin will automatically load a node version when if finds a
 6 version to load. This can be done, similar as previous options, adding:
 7 
 8 ```zsh
 9-zstyle ':omz:plugins:nvm' autoload true
10+zstyle ':omz:plugins:nvm' autoload yes
11 ```
12+
13+To remove the output generated by NVM when autoloading, you can set the following option:
14+
15+```zsh
16+zstyle ':omz:plugins:nvm' silent-autoload yes
17+```
18+
19+Note: _this will not remove regular `nvm` output_
20diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh
21index ec583cc2db67a2f751b0d72be9d6e63621a463ed..c5799c88e861164311262191a01f3dc7ed9a2de1 100644
22--- a/plugins/nvm/nvm.plugin.zsh
23+++ b/plugins/nvm/nvm.plugin.zsh
24@@ -24,11 +24,11 @@ if (( ${+NVM_LAZY} + ${+NVM_LAZY_CMD} + ${+NVM_AUTOLOAD} )); then
25   # Nicely print the list in the style `var1, var2 and var3`
26   echo "${fg[yellow]}[nvm plugin] Variable-style settings are deprecated. Instead of ${(j:, :)used_vars[1,-2]}${used_vars[-2]+ and }${used_vars[-1]}, use:\n"
27   if (( $+NVM_AUTOLOAD )); then
28-    echo "  zstyle ':omz:plugins:nvm' autoload true"
29+    echo "  zstyle ':omz:plugins:nvm' autoload yes"
30     zstyle ':omz:plugins:nvm' autoload yes
31   fi
32   if (( $+NVM_LAZY )); then
33-    echo "  zstyle ':omz:plugins:nvm' lazy true"
34+    echo "  zstyle ':omz:plugins:nvm' lazy yes"
35     zstyle ':omz:plugins:nvm' lazy yes
36   fi
37   if (( $+NVM_LAZY_CMD )); then
38@@ -61,9 +61,11 @@ fi
39 # Autoload nvm when finding a .nvmrc file in the current directory
40 # Adapted from: https://github.com/nvm-sh/nvm#zsh
41 if zstyle -t ':omz:plugins:nvm' autoload; then
42-  load-nvmrc() {
43+  function load-nvmrc {
44     local node_version="$(nvm version)"
45     local nvmrc_path="$(nvm_find_nvmrc)"
46+    local nvm_silent=""
47+    zstyle -t ':omz:plugins:nvm' silent-autoload && _nvm_silent="--silent"
48 
49     if [[ -n "$nvmrc_path" ]]; then
50       local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
51@@ -71,11 +73,11 @@ if zstyle -t ':omz:plugins:nvm' autoload; then
52       if [[ "$nvmrc_node_version" = "N/A" ]]; then
53         nvm install
54       elif [[ "$nvmrc_node_version" != "$node_version" ]]; then
55-        nvm use
56+        nvm use $nvm_silent
57       fi
58     elif [[ "$node_version" != "$(nvm version default)" ]]; then
59       echo "Reverting to nvm default version"
60-      nvm use default
61+      nvm use default $nvm_silent
62     fi
63   }
64