From 6d5ba2d6c489d56fb34788ec128f98609e60b7be Mon Sep 17 00:00:00 2001 From: Carlo Date: Tue, 15 Nov 2022 20:23:09 +0100 Subject: feat(nvm)!: settings now are zstyle-based (#11335) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- plugins/nvm/nvm.plugin.zsh | 47 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) (limited to 'plugins/nvm/nvm.plugin.zsh') diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 1fb4d238b..ec583cc2d 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -16,14 +16,41 @@ fi # Note: nvm is a function so we need to use `which` which nvm &>/dev/null && return -if (( $+NVM_LAZY )); then - # Call nvm when first using nvm, node, npm, pnpm, yarn or $NVM_LAZY_CMD - function nvm node npm pnpm yarn $NVM_LAZY_CMD { - unfunction nvm node npm pnpm yarn $NVM_LAZY_CMD - # Load nvm if it exists in $NVM_DIR - [[ -f "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh" - "$0" "$@" - } +# TODO: 2022-11-11: Remove soft-deprecate options +if (( ${+NVM_LAZY} + ${+NVM_LAZY_CMD} + ${+NVM_AUTOLOAD} )); then + # Get list of NVM_* variable settings defined + local -a used_vars + used_vars=(${(o)parameters[(I)NVM_(AUTOLOAD|LAZY|LAZY_CMD)]}) + # 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" + zstyle ':omz:plugins:nvm' autoload yes + fi + if (( $+NVM_LAZY )); then + echo " zstyle ':omz:plugins:nvm' lazy true" + zstyle ':omz:plugins:nvm' lazy yes + fi + if (( $+NVM_LAZY_CMD )); then + echo " zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD" + zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD + fi + echo "$reset_color" + unset used_vars NVM_AUTOLOAD NVM_LAZY NVM_LAZY_CMD +fi + +if zstyle -t ':omz:plugins:nvm' lazy; then + # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd + zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd + eval " + function nvm node npm pnpm yarn $nvm_lazy_cmd { + unfunction nvm node npm pnpm yarn $nvm_lazy_cmd + # Load nvm if it exists in \$NVM_DIR + [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\" + \"\$0\" \"\$@\" + } + " + unset nvm_lazy_cmd elif [[ -f "$NVM_DIR/nvm.sh" ]]; then # Load nvm if it exists in $NVM_DIR source "$NVM_DIR/nvm.sh" @@ -33,7 +60,7 @@ fi # Autoload nvm when finding a .nvmrc file in the current directory # Adapted from: https://github.com/nvm-sh/nvm#zsh -if (( $+NVM_AUTOLOAD )); then +if zstyle -t ':omz:plugins:nvm' autoload; then load-nvmrc() { local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" @@ -70,4 +97,4 @@ for nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_complet fi done -unset NVM_HOMEBREW NVM_LAZY NVM_AUTOLOAD nvm_completion +unset NVM_HOMEBREW nvm_completion -- cgit v1.2.3-70-g09d2 From 64bc22aee4d32eb64ee918fc9e63318b68979070 Mon Sep 17 00:00:00 2001 From: Carlo Date: Thu, 1 Dec 2022 19:44:48 +0100 Subject: feat(nvm): add `silent-autoload` setting (#11363) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Regulski Closes #10942 --- plugins/nvm/README.md | 10 +++++++++- plugins/nvm/nvm.plugin.zsh | 12 +++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'plugins/nvm/nvm.plugin.zsh') diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index 4c6312e6e..d3fd980be 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -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_ diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index ec583cc2d..c5799c88e 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -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 } -- cgit v1.2.3-70-g09d2 From fc44c49cca9d5e499097392d3f42b1375d0253ba Mon Sep 17 00:00:00 2001 From: Zeragamba Date: Thu, 1 Dec 2022 13:49:41 -0500 Subject: fix(nvm): trim non-printable chars from .nvmrc (#10997) --- plugins/nvm/nvm.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/nvm/nvm.plugin.zsh') diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index c5799c88e..a4ff29cf1 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -68,7 +68,7 @@ if zstyle -t ':omz:plugins:nvm' autoload; then zstyle -t ':omz:plugins:nvm' silent-autoload && _nvm_silent="--silent" if [[ -n "$nvmrc_path" ]]; then - local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") + local nvmrc_node_version=$(nvm version $(cat "$nvmrc_path" | tr -dc '[:print:]')) if [[ "$nvmrc_node_version" = "N/A" ]]; then nvm install -- cgit v1.2.3-70-g09d2 From 585e7138b556db89715eb2a850f8959fdf527384 Mon Sep 17 00:00:00 2001 From: Michał Regulski Date: Tue, 6 Dec 2022 18:22:13 +0100 Subject: fix(nvm): omit message when silent-autoload is enabled (#11371) --- plugins/nvm/nvm.plugin.zsh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'plugins/nvm/nvm.plugin.zsh') diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index a4ff29cf1..20697d67d 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -65,7 +65,7 @@ if zstyle -t ':omz:plugins:nvm' autoload; then local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" local nvm_silent="" - zstyle -t ':omz:plugins:nvm' silent-autoload && _nvm_silent="--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" | tr -dc '[:print:]')) @@ -76,7 +76,10 @@ if zstyle -t ':omz:plugins:nvm' autoload; then nvm use $nvm_silent fi elif [[ "$node_version" != "$(nvm version default)" ]]; then - echo "Reverting to nvm default version" + if [[ -z $nvm_silent ]]; then + echo "Reverting to nvm default version" + fi + nvm use default $nvm_silent fi } -- cgit v1.2.3-70-g09d2