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

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

Closes #10942
This commit is contained in:
Carlo 2022-12-01 19:44:48 +01:00 committed by GitHub
parent a051eb04b8
commit 64bc22aee4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 6 deletions

View File

@ -48,5 +48,13 @@ If set, the plugin will automatically load a node version when if finds a
version to load. This can be done, similar as previous options, adding:
```zsh
zstyle ':omz:plugins:nvm' autoload true
zstyle ':omz:plugins:nvm' autoload yes
```
To remove the output generated by NVM when autoloading, you can set the following option:
```zsh
zstyle ':omz:plugins:nvm' silent-autoload yes
```
Note: _this will not remove regular `nvm` output_

View File

@ -24,11 +24,11 @@ if (( ${+NVM_LAZY} + ${+NVM_LAZY_CMD} + ${+NVM_AUTOLOAD} )); then
# Nicely print the list in the style `var1, var2 and var3`
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"
if (( $+NVM_AUTOLOAD )); then
echo " zstyle ':omz:plugins:nvm' autoload true"
echo " zstyle ':omz:plugins:nvm' autoload yes"
zstyle ':omz:plugins:nvm' autoload yes
fi
if (( $+NVM_LAZY )); then
echo " zstyle ':omz:plugins:nvm' lazy true"
echo " zstyle ':omz:plugins:nvm' lazy yes"
zstyle ':omz:plugins:nvm' lazy yes
fi
if (( $+NVM_LAZY_CMD )); then
@ -61,9 +61,11 @@ fi
# Autoload nvm when finding a .nvmrc file in the current directory
# Adapted from: https://github.com/nvm-sh/nvm#zsh
if zstyle -t ':omz:plugins:nvm' autoload; then
load-nvmrc() {
function load-nvmrc {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
local nvm_silent=""
zstyle -t ':omz:plugins:nvm' silent-autoload && _nvm_silent="--silent"
if [[ -n "$nvmrc_path" ]]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
@ -71,11 +73,11 @@ if zstyle -t ':omz:plugins:nvm' autoload; then
if [[ "$nvmrc_node_version" = "N/A" ]]; then
nvm install
elif [[ "$nvmrc_node_version" != "$node_version" ]]; then
nvm use
nvm use $nvm_silent
fi
elif [[ "$node_version" != "$(nvm version default)" ]]; then
echo "Reverting to nvm default version"
nvm use default
nvm use default $nvm_silent
fi
}