diff --git a/.zshrc b/.zshrc index 76930a3..dfd820c 100644 --- a/.zshrc +++ b/.zshrc @@ -7,29 +7,36 @@ mkdir -p "$ZDOTDIR/net.d" find "$ZDOTDIR/net.d" -name "*.zsh" -print0 | sort -z | while IFS= read -r -d $'\0' net; do source "$net"; done -for S in \ - 05-start \ - 15-options \ - 25-history \ - 42-zinit \ - 45-plugins \ - 55-agents \ - 62-scripts \ - 65-vpy \ - 68-aliases \ - 72-widgets \ - 78-keybindings \ - 82-completion \ - 88-prompt \ - 95-finish; do - N="${S//[0-9\-]/}" - if [[ -r "$ZDOTDIR/$S.pre.zsh" ]]; then source "$ZDOTDIR/$S.pre.zsh"; fi - if [[ -r "$ZDOTDIR/$S.zsh" ]]; then source "$ZDOTDIR/$S.zsh"; fi - if [[ -r "$ZDOTDIR/$S.user.zsh" ]]; then source "$ZDOTDIR/$S.user.zsh"; fi - if [[ -r "$ZDOTDIR/$N.user.zsh" ]]; then source "$ZDOTDIR/$N.user.zsh"; fi - if [[ -r "$ZDOTDIR/$S.post.zsh" ]]; then source "$ZDOTDIR/$S.post.zsh"; fi +stages=( + 05-start + 15-options + 25-history + 42-zinit + 45-plugins + 55-agents + 62-scripts + 65-vpy + 68-aliases + 72-widgets + 78-keybindings + 82-completion + 88-prompt + 95-finish +) + +# Итерация по этапам +for S in "${stages[@]}"; do + # Zsh-подстановка (удаление цифр и дефиса в начале) + N=${S##[0-9]#-} + + # Проход по файлам в строгом порядке их загрузки + for F in "$ZDOTDIR/$S.pre.zsh" "$ZDOTDIR/$S.zsh" "$ZDOTDIR/$S.user.zsh" "$ZDOTDIR/$N.user.zsh" "$ZDOTDIR/$S.post.zsh"; do + [[ -r "$F" ]] && source "$F" + done done +unset stages S N F + mkdir -p "$ZDOTDIR/apps.d" find "$ZDOTDIR/apps.d" -name "*.zsh" -print0 | sort -z | while IFS= read -r -d $'\0' app; do source "$app"; done