|
@@ -1,3 +1,7 @@
|
|
|
+# Don't try to load nvm if command already available
|
|
|
+# Note: nvm is a function so we need to use `which`
|
|
|
+which nvm &>/dev/null && return
|
|
|
+
|
|
|
# See https://github.com/nvm-sh/nvm#installation-and-update
|
|
|
if [[ -z "$NVM_DIR" ]]; then
|
|
|
if [[ -d "$HOME/.nvm" ]]; then
|
|
@@ -12,39 +16,34 @@ if [[ -z "$NVM_DIR" ]]; then
|
|
|
fi
|
|
|
fi
|
|
|
|
|
|
-# Don't try to load nvm if command already available
|
|
|
-# Note: nvm is a function so we need to use `which`
|
|
|
-which nvm &>/dev/null && return
|
|
|
-
|
|
|
if [[ -z "$NVM_DIR" ]] || [[ ! -f "$NVM_DIR/nvm.sh" ]]; then
|
|
|
return
|
|
|
fi
|
|
|
|
|
|
-if zstyle -t ':omz:plugins:nvm' lazy && \
|
|
|
- ! zstyle -t ':omz:plugins:nvm' autoload; 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
|
|
|
- nvm_lazy_cmd=(nvm node npm npx pnpm yarn $nvm_lazy_cmd) # default values
|
|
|
- eval "
|
|
|
- function $nvm_lazy_cmd {
|
|
|
- for func in $nvm_lazy_cmd; do
|
|
|
- if (( \$+functions[\$func] )); then
|
|
|
- unfunction \$func
|
|
|
- fi
|
|
|
- done
|
|
|
- # Load nvm if it exists in \$NVM_DIR
|
|
|
- [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\"
|
|
|
- \"\$0\" \"\$@\"
|
|
|
- }
|
|
|
- "
|
|
|
- unset nvm_lazy_cmd
|
|
|
-else
|
|
|
- source "$NVM_DIR/nvm.sh"
|
|
|
-fi
|
|
|
+function _omz_load_nvm_completion {
|
|
|
+ local _nvm_completion
|
|
|
+ # Load nvm bash completion
|
|
|
+ for _nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do
|
|
|
+ if [[ -f "$_nvm_completion" ]]; then
|
|
|
+ # Load bashcompinit
|
|
|
+ autoload -U +X bashcompinit && bashcompinit
|
|
|
+ # Bypass compinit call in nvm bash completion script. See:
|
|
|
+ # https://github.com/nvm-sh/nvm/blob/4436638/bash_completion#L86-L93
|
|
|
+ ZSH_VERSION= source "$_nvm_completion"
|
|
|
+ break
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ unfunction _omz_load_nvm_completion
|
|
|
+}
|
|
|
+
|
|
|
+function _omz_setup_autoload {
|
|
|
+ if ! zstyle -t ':omz:plugins:nvm' autoload; then
|
|
|
+ unfunction _omz_setup_autoload
|
|
|
+ return
|
|
|
+ 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
|
|
|
+ # Autoload nvm when finding a .nvmrc file in the current directory
|
|
|
+ # Adapted from: https://github.com/nvm-sh/nvm#zsh
|
|
|
function load-nvmrc {
|
|
|
local node_version="$(nvm version)"
|
|
|
local nvmrc_path="$(nvm_find_nvmrc)"
|
|
@@ -72,18 +71,30 @@ if zstyle -t ':omz:plugins:nvm' autoload; then
|
|
|
add-zsh-hook chpwd load-nvmrc
|
|
|
|
|
|
load-nvmrc
|
|
|
-fi
|
|
|
-
|
|
|
-# Load nvm bash completion
|
|
|
-for nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do
|
|
|
- if [[ -f "$nvm_completion" ]]; then
|
|
|
- # Load bashcompinit
|
|
|
- autoload -U +X bashcompinit && bashcompinit
|
|
|
- # Bypass compinit call in nvm bash completion script. See:
|
|
|
- # https://github.com/nvm-sh/nvm/blob/4436638/bash_completion#L86-L93
|
|
|
- ZSH_VERSION= source "$nvm_completion"
|
|
|
- break
|
|
|
- fi
|
|
|
-done
|
|
|
+ unfunction _omz_setup_autoload
|
|
|
+}
|
|
|
|
|
|
-unset NVM_HOMEBREW nvm_completion
|
|
|
+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
|
|
|
+ nvm_lazy_cmd=(nvm node npm npx pnpm yarn $nvm_lazy_cmd) # default values
|
|
|
+ eval "
|
|
|
+ function $nvm_lazy_cmd {
|
|
|
+ for func in $nvm_lazy_cmd; do
|
|
|
+ if (( \$+functions[\$func] )); then
|
|
|
+ unfunction \$func
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ # Load nvm if it exists in \$NVM_DIR
|
|
|
+ [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\"
|
|
|
+ _omz_load_nvm_completion
|
|
|
+ _omz_setup_autoload
|
|
|
+ \"\$0\" \"\$@\"
|
|
|
+ }
|
|
|
+ "
|
|
|
+ unset nvm_lazy_cmd
|
|
|
+else
|
|
|
+ source "$NVM_DIR/nvm.sh"
|
|
|
+ _omz_load_nvm_completion
|
|
|
+ _omz_setup_autoload
|
|
|
+fi
|