zimfw/init.zsh

48 lines
1.1 KiB
Bash
Executable File

#
# Zim initializition
#
# Define zim location
ZIM="${ZDOTDIR:-$HOME}/.zim"
# Source user configuration
if [[ -s "${ZDOTDIR:-$HOME}/.zimrc" ]]; then
source "${ZDOTDIR:-$HOME}/.zimrc"
fi
load_zim_module() {
local wanted_module
for wanted_module ($zmodules); do
if [[ -s "${ZIM}/modules/$wanted_module/init.zsh" ]]; then
source "${ZIM}/modules/$wanted_module/init.zsh"
elif [[ ! -d "${ZIM}/modules/$wanted_module" ]]; then
print "No such module \"$wanted_module\"." >&2
fi
done
}
load_zim_function() {
local function_glob='^([_.]*|prompt_*_setup|README*)(-.N:t)'
local mod_function
# autoload searches fpath for function locations; add enabled module function paths
fpath+=(${argv:+${ZIM}/modules/${^zmodules}/functions(/FN)})
function {
setopt LOCAL_OPTIONS EXTENDED_GLOB
for mod_function in ${ZIM}/modules/${^zmodules}/functions/$~function_glob; do
autoload -Uz ${mod_function}
done
}
}
# Load zim functions
load_zim_function ${zmodules[@]}
# Load zim modules
load_zim_module ${zmodules[@]}
unset zmodules