mirror of
				https://github.com/dcarrillo/prezto.git
				synced 2025-11-04 06:19:09 +00:00 
			
		
		
		
	[#23] Add a module loading function
This commit is contained in:
		
							
								
								
									
										52
									
								
								helper.zsh
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								helper.zsh
									
									
									
									
									
								
							@@ -5,12 +5,8 @@
 | 
				
			|||||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
					#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Checks if a file can be autoloaded by trying to load it in a subshell.
 | 
					# Checks boolean variable for "true".
 | 
				
			||||||
function autoloadable {
 | 
					# Case insensitive: "1", "y", "yes", "t", "true", "o", and "on".
 | 
				
			||||||
  ( unfunction $1 ; autoload -U +X $1 ) &> /dev/null
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Checks boolean variable for "true" (case insensitive "1", "y", "yes", "t", "true", "o", and "on").
 | 
					 | 
				
			||||||
function is-true {
 | 
					function is-true {
 | 
				
			||||||
  [[ -n "$1" && "$1" == (1|[Yy]([Ee][Ss]|)|[Tt]([Rr][Uu][Ee]|)|[Oo]([Nn]|)) ]]
 | 
					  [[ -n "$1" && "$1" == (1|[Yy]([Ee][Ss]|)|[Tt]([Rr][Uu][Ee]|)|[Oo]([Nn]|)) ]]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -24,6 +20,50 @@ function coalesce {
 | 
				
			|||||||
  return 1
 | 
					  return 1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Checks if a file can be autoloaded by trying to load it in a subshell.
 | 
				
			||||||
 | 
					function autoloadable {
 | 
				
			||||||
 | 
					  ( unfunction $1 ; autoload -U +X $1 ) &> /dev/null
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Loads Oh My Zsh modules.
 | 
				
			||||||
 | 
					function omodload {
 | 
				
			||||||
 | 
					  local omodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Extended globbing is needed for autoloading of module functions.
 | 
				
			||||||
 | 
					  setopt EXTENDED_GLOB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Add functions and completions to fpath.
 | 
				
			||||||
 | 
					  fpath=(${argv:+${OMZ}/modules/${^argv}/{functions,completions}(/FN)} $fpath)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Load Oh My Zsh functions.
 | 
				
			||||||
 | 
					  for ofunction in $OMZ/modules/**/functions/^([_.]*|prompt_*_setup)(.N:t); do
 | 
				
			||||||
 | 
					    autoload -Uz "$ofunction"
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					  unset ofunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Extended globbing is no longer needed.
 | 
				
			||||||
 | 
					  unsetopt EXTENDED_GLOB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for omodule in "$argv[@]"; do
 | 
				
			||||||
 | 
					    if zstyle -t ":omz:module:$omodule" loaded; then
 | 
				
			||||||
 | 
					      continue
 | 
				
			||||||
 | 
					    elif [[ ! -d "$OMZ/modules/$omodule" ]]; then
 | 
				
			||||||
 | 
					      print "$0: no such module: $omodule" >&2
 | 
				
			||||||
 | 
					      continue
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      if [[ -f "$OMZ/modules/$omodule/init.zsh" ]]; then
 | 
				
			||||||
 | 
					        source "$OMZ/modules/$omodule/init.zsh"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (( $? == 0 )); then
 | 
				
			||||||
 | 
					        zstyle ":omz:module:$omodule" loaded 'yes'
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        zstyle ":omz:module:$omodule" loaded 'no'
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Trap signals were generated with 'kill -l'.
 | 
					# Trap signals were generated with 'kill -l'.
 | 
				
			||||||
# DEBUG, EXIT, and ZERR are Zsh signals.
 | 
					# DEBUG, EXIT, and ZERR are Zsh signals.
 | 
				
			||||||
TRAP_SIGNALS=(
 | 
					TRAP_SIGNALS=(
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										69
									
								
								init.zsh
									
									
									
									
									
								
							
							
						
						
									
										69
									
								
								init.zsh
									
									
									
									
									
								
							@@ -16,72 +16,33 @@ unset min_zsh_version
 | 
				
			|||||||
# Disable color and theme in dumb terminals.
 | 
					# Disable color and theme in dumb terminals.
 | 
				
			||||||
if [[ "$TERM" == 'dumb' ]]; then
 | 
					if [[ "$TERM" == 'dumb' ]]; then
 | 
				
			||||||
  zstyle ':omz:*:*' color 'no'
 | 
					  zstyle ':omz:*:*' color 'no'
 | 
				
			||||||
  zstyle ':omz:prompt' theme 'off'
 | 
					  zstyle ':omz:module:prompt' theme 'off'
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Get enabled OMZ modules.
 | 
					 | 
				
			||||||
zstyle -a ':omz:load' omodule 'omodules'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add functions to fpath.
 | 
					 | 
				
			||||||
fpath=(
 | 
					 | 
				
			||||||
  ${0:h}/themes/*(/FN)
 | 
					 | 
				
			||||||
  ${omodules:+${0:h}/modules/${^omodules}/{functions,completions}(/FN)}
 | 
					 | 
				
			||||||
  $fpath
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Load Zsh modules.
 | 
					# Load Zsh modules.
 | 
				
			||||||
zstyle -a ':omz:load' module 'zmodules'
 | 
					zstyle -a ':omz:load' zmodule 'zmodules'
 | 
				
			||||||
for zmodule in "$zmodules[@]"; do
 | 
					for zmodule in "$zmodules[@]"; do
 | 
				
			||||||
  zmodload "${(z)zmodule}"
 | 
					  zmodload "zsh/${(z)zmodule}"
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
unset zmodules zmodule
 | 
					unset zmodule{s,}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Autoload Zsh functions.
 | 
					# Autoload Zsh functions.
 | 
				
			||||||
zstyle -a ':omz:load' function 'zfunctions'
 | 
					zstyle -a ':omz:load' zfunction 'zfunctions'
 | 
				
			||||||
for zfunction in "$zfunctions[@]"; do
 | 
					for zfunction in "$zfunctions[@]"; do
 | 
				
			||||||
  autoload -Uz "$zfunction"
 | 
					  autoload -Uz "$zfunction"
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
unset zfunctions zfunction
 | 
					unset zfunction{s,}
 | 
				
			||||||
 | 
					 | 
				
			||||||
# Load and initialize the completion system ignoring insecure directories.
 | 
					 | 
				
			||||||
autoload -Uz compinit && compinit -i
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Source files (the order matters).
 | 
					# Source files (the order matters).
 | 
				
			||||||
source "${0:h}/helper.zsh"
 | 
					source "${0:h}/helper.zsh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Source modules defined in ~/.zshrc.
 | 
					# Source modules defined in ~/.zshrc.
 | 
				
			||||||
for omodule in "$omodules[@]"; do
 | 
					zstyle -a ':omz:load' omodule 'omodules'
 | 
				
			||||||
  if [[ ! -d "${0:h}/modules/$omodule" ]]; then
 | 
					omodload "$omodules[@]"
 | 
				
			||||||
    print "omz: no such module: $omodule" >&2
 | 
					unset omodules
 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ -f "${0:h}/modules/$omodule/init.zsh" ]]; then
 | 
					# Add themes to fpath.
 | 
				
			||||||
    source "${0:h}/modules/$omodule/init.zsh"
 | 
					fpath=(${0:h}/themes/*(/FN) $fpath)
 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (( $? == 0 )); then
 | 
					 | 
				
			||||||
    zstyle ":omz:module:$omodule" loaded 'yes'
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
unset omodule omodules
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Autoload Oh My Zsh functions.
 | 
					 | 
				
			||||||
for fdir in "$fpath[@]"; do
 | 
					 | 
				
			||||||
  if [[ "$fdir" == ${0:h}/(|*/)functions ]]; then
 | 
					 | 
				
			||||||
    for ofunction in $fdir/[^_.]*(N.:t); do
 | 
					 | 
				
			||||||
      autoload -Uz "$ofunction"
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
unset fdir ofunction
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set environment variables for launchd processes.
 | 
					 | 
				
			||||||
if [[ "$OSTYPE" == darwin* ]]; then
 | 
					 | 
				
			||||||
  for env_var in PATH MANPATH; do
 | 
					 | 
				
			||||||
    launchctl setenv "$env_var" "${(P)env_var}" &!
 | 
					 | 
				
			||||||
  done
 | 
					 | 
				
			||||||
  unset env_var
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Load and run the prompt theming system.
 | 
					# Load and run the prompt theming system.
 | 
				
			||||||
autoload -Uz promptinit && promptinit
 | 
					autoload -Uz promptinit && promptinit
 | 
				
			||||||
@@ -95,6 +56,14 @@ else
 | 
				
			|||||||
fi
 | 
					fi
 | 
				
			||||||
unset prompt_argv
 | 
					unset prompt_argv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Set environment variables for launchd processes.
 | 
				
			||||||
 | 
					if [[ "$OSTYPE" == darwin* ]]; then
 | 
				
			||||||
 | 
					  for env_var in PATH MANPATH; do
 | 
				
			||||||
 | 
					    launchctl setenv "$env_var" "${(P)env_var}" &!
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					  unset env_var
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Compile the completion dump, to increase startup speed.
 | 
					# Compile the completion dump, to increase startup speed.
 | 
				
			||||||
dump_file="$HOME/.zcompdump"
 | 
					dump_file="$HOME/.zcompdump"
 | 
				
			||||||
if [[ "$dump_file" -nt "${dump_file}.zwc" || ! -f "${dump_file}.zwc" ]]; then
 | 
					if [[ "$dump_file" -nt "${dump_file}.zwc" || ! -f "${dump_file}.zwc" ]]; then
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,9 @@ if [[ "$TERM" == 'dumb' ]]; then
 | 
				
			|||||||
  return 1
 | 
					  return 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Load and initialize the completion system ignoring insecure directories.
 | 
				
			||||||
 | 
					autoload -Uz compinit && compinit -i
 | 
				
			||||||
 | 
					
 | 
				
			||||||
setopt COMPLETE_IN_WORD    # Complete from both ends of a word.
 | 
					setopt COMPLETE_IN_WORD    # Complete from both ends of a word.
 | 
				
			||||||
setopt ALWAYS_TO_END       # Move cursor to the end of a completed word.
 | 
					setopt ALWAYS_TO_END       # Move cursor to the end of a completed word.
 | 
				
			||||||
setopt PATH_DIRS           # Perform path search even on command names with slashes.
 | 
					setopt PATH_DIRS           # Perform path search even on command names with slashes.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,9 @@
 | 
				
			|||||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
					#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Set the path to Oh My Zsh.
 | 
				
			||||||
 | 
					export OMZ="$HOME/.oh-my-zsh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set the key mapping style to 'emacs' or 'vi'.
 | 
					# Set the key mapping style to 'emacs' or 'vi'.
 | 
				
			||||||
zstyle ':omz:module:editor' keymap 'emacs'
 | 
					zstyle ':omz:module:editor' keymap 'emacs'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,7 +30,8 @@ zstyle ':omz:module:terminal' auto-title 'yes'
 | 
				
			|||||||
# zstyle ':omz:load' zfunction 'zargs' 'zmv'
 | 
					# zstyle ':omz:load' zfunction 'zargs' 'zmv'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set the Oh My Zsh modules to load (browse modules).
 | 
					# Set the Oh My Zsh modules to load (browse modules).
 | 
				
			||||||
zstyle ':omz:load' omodule 'archive' 'git'
 | 
					zstyle ':omz:load' omodule 'environment' 'terminal' 'editor' \
 | 
				
			||||||
 | 
					  'completion' 'history' 'directory' 'spectrum' 'alias' 'utility'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set the prompt theme to load.
 | 
					# Set the prompt theme to load.
 | 
				
			||||||
# Setting it to 'random' loads a random theme.
 | 
					# Setting it to 'random' loads a random theme.
 | 
				
			||||||
@@ -35,7 +39,7 @@ zstyle ':omz:load' omodule 'archive' 'git'
 | 
				
			|||||||
zstyle ':omz:prompt' theme 'sorin'
 | 
					zstyle ':omz:prompt' theme 'sorin'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# This will make you shout: OH MY ZSHELL!
 | 
					# This will make you shout: OH MY ZSHELL!
 | 
				
			||||||
source "$HOME/.oh-my-zsh/init.zsh"
 | 
					source "$OMZ/init.zsh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Customize to your needs...
 | 
					# Customize to your needs...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user