Ver código fonte

Update the module loading system

to load modules with `{module_name}.plugin.zsh` and `{module_name}.zsh`
in order to improve compatibility.

Closes ##257
Atomic Coding 6 anos atrás
pai
commit
2ea2ba2fc8
2 arquivos alterados com 27 adições e 6 exclusões
  1. 13 4
      init.zsh
  2. 14 2
      login_init.zsh

+ 13 - 4
init.zsh

@@ -29,13 +29,22 @@ fi
 
 # Initialize modules
 () {
-  local zmodule
+  local zmodule zmodule_dir zmodule_file
 
   for zmodule (${zmodules}); do
-    if [[ -s ${ZIM_HOME}/modules/${zmodule}/init.zsh ]]; then
-      source ${ZIM_HOME}/modules/${zmodule}/init.zsh
-    elif [[ ! -d ${ZIM_HOME}/modules/${zmodule} ]]; then
+    zmodule_dir=${ZIM_HOME}/modules/${zmodule}
+    if [[ ! -d ${zmodule_dir} ]]; then
       print "No such module \"${zmodule}\"." >&2
+    else
+      for zmodule_file (${zmodule_dir}/{,zsh-}${zmodule}.zsh-theme \
+          ${zmodule_dir}/init.zsh \
+          ${zmodule_dir}/{,zsh-}${zmodule}.plugin.zsh \
+          ${zmodule_dir}/{,zsh-}${zmodule}.{z,}sh); do
+        if [[ -f ${zmodule_file} ]]; then
+          source ${zmodule_file}
+          break
+        fi
+      done
     fi
   done
 }

+ 14 - 2
login_init.zsh

@@ -24,8 +24,20 @@
   done
 
   # zcompile enabled module init scripts
-  for file in ${ZIM_HOME}/modules/${^zmodules}/init.zsh(-.N); do
-    zrecompile -pq ${file}
+  local zmodule zmodule_dir
+  for zmodule (${zmodules}); do
+    zmodule_dir=${ZIM_HOME}/modules/${zmodule}
+    if [[ -d ${zmodule_dir} ]]; then
+      for file (${zmodule_dir}/{,zsh-}${zmodule}.zsh-theme \
+          ${zmodule_dir}/init.zsh \
+          ${zmodule_dir}/{,zsh-}${zmodule}.plugin.zsh \
+          ${zmodule_dir}/{,zsh-}${zmodule}.{z,}sh); do
+        if [[ -f ${file} ]]; then
+          zrecompile -pq ${file}
+          break
+        fi
+      done
+    fi
   done
 
   # zcompile all prompt setup scripts