From d5c799a53672a37a83bc71b555b930ff4db12f84 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 2 Mar 2018 20:45:37 -0500 Subject: [PATCH] Rewrite require! macro --- core/core-packages.el | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/core-packages.el b/core/core-packages.el index 94e5fe572..77d135801 100644 --- a/core/core-packages.el +++ b/core/core-packages.el @@ -456,20 +456,20 @@ If NOERROR is non-nil, don't throw an error if the file doesn't exist." (unless noerror (error "Could not load file '%s' from '%s'" file path)))))) -(defmacro require! (module submodule &optional flags path reload-p) +(defmacro require! (module submodule &optional reload-p &rest plist) "Loads the module specified by MODULE (a property) and SUBMODULE (a symbol). The module is only loaded once. If RELOAD-P is non-nil, load it again." (let ((enabled-p (doom-module-p module submodule))) + (when (or (not enabled-p) plist) + (apply #'doom-module-set module submodule + (mapcar #'eval plist))) (when (or reload-p (not enabled-p)) - (if (not enabled-p) - (doom-module-set module submodule :flags flags :path path) - (if flags (doom-module-put module submodule :flags flags)) - (if path (doom-module-put module submodule :path path))) - (let ((module-path (doom-module-expand-file module submodule))) + (let ((module-path (doom-module-find-path module submodule))) (if (file-directory-p module-path) `(condition-case-unless-debug ex (let ((doom--current-module ',(cons module submodule))) + ;; ,(if plist `(doom-module-set ,module ',submodule ,@plist)) (load! init ,module-path :noerror) (load! config ,module-path :noerror)) ('error