branch: externals/leaf
commit bf870b13490cd05200f4677ae751fd88e2d6103e
Merge: 256abf5 d3a0f73
Author: Naoya Yamashita <con...@gmail.com>
Commit: GitHub <nore...@github.com>

    Merge pull request #495 from conao3/feature#494
    
    feature#494
---
 leaf-tests.el |  3 ++-
 leaf.el       | 14 +++++++++-----
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/leaf-tests.el b/leaf-tests.el
index 3a8e607..bf87adf 100644
--- a/leaf-tests.el
+++ b/leaf-tests.el
@@ -156,6 +156,7 @@ Example:
 (setq leaf-expand-leaf-defun nil)
 (setq leaf-expand-leaf-defvar nil)
 (setq leaf-expand-leaf-path nil)
+(setq leaf-expand-leaf-defer-let nil)
 
 (cort-deftest-with-macroexpand leaf/none
   '(((leaf leaf)
@@ -2341,7 +2342,7 @@ Example:
        (leaf-init)))
 
     ((leaf-handler-leaf-path leaf)
-     (let ((file (or load-file-name buffer-file-name 
byte-compile-current-file)))
+     (let ((file (leaf-this-file)))
        (unless (boundp 'leaf--paths) (defvar leaf--paths nil))
        (when file
          (add-to-list 'leaf--paths (cons 'leaf file)))))))
diff --git a/leaf.el b/leaf.el
index 40ba1f8..9bec14d 100644
--- a/leaf.el
+++ b/leaf.el
@@ -5,7 +5,7 @@
 ;; Author: Naoya Yamashita <con...@gmail.com>
 ;; Maintainer: Naoya Yamashita <con...@gmail.com>
 ;; Keywords: lisp settings
-;; Version: 4.4.7
+;; Version: 4.4.8
 ;; URL: https://github.com/conao3/leaf.el
 ;; Package-Requires: ((emacs "24.1"))
 
@@ -153,8 +153,12 @@ Same as `list' but this macro does not evaluate any 
arguments."
                         (mapc (lambda (elm) (leaf-register-autoload (car elm) 
(cdr elm))) leaf--value)
                         `(,@(mapcar (lambda (elm) `(,(car elm) 1)) 
leaf--value) ,@leaf--body))
 
+   :leaf-defer-let    (if (and leaf--body (eval (car leaf--value))
+                               (let ((defer--value (plist-get leaf--raw 
:leaf-defer))) (eval (car defer--value)))
+                               (leaf-list-memq leaf-defer-keywords 
(leaf-plist-keys leaf--raw)))
+                          `((let ((leaf--load-file-name ,load-file-name)) 
,(print leaf-expand-minimally) ,@leaf--body)) `(,@leaf--body))
    :leaf-defer        (if (and leaf--body (eval (car leaf--value)) 
(leaf-list-memq leaf-defer-keywords (leaf-plist-keys leaf--raw)))
-                          `((eval-after-load ',leaf--name '(let 
((leaf--load-file-name ,load-file-name)) ,@leaf--body))) `(,@leaf--body))
+                          `((eval-after-load ',leaf--name '(progn 
,@leaf--body))) `(,@leaf--body))
 
    :setq              `(,@(mapcar (lambda (elm) `(setq ,(car elm) ,(cdr elm))) 
leaf--value) ,@leaf--body)
    :setq-default      `(,@(mapcar (lambda (elm) `(setq-default ,(car elm) 
,(cdr elm))) leaf--value) ,@leaf--body)
@@ -374,8 +378,8 @@ Sort by `leaf-sort-leaf--values-plist' in this order.")
   :group 'leaf)
 
 (defvar leaf-system-defaults (list
-                              :leaf-autoload t :leaf-defer t :leaf-protect t
-                              :leaf-defun t :leaf-defvar t :leaf-path t)
+                              :leaf-autoload t :leaf-defer-let t :leaf-defer t
+                              :leaf-protect t :leaf-defun t :leaf-defvar t 
:leaf-path t)
   "The value for all `leaf' blocks for leaf system.")
 
 (defcustom leaf-defer-keywords (list
@@ -399,7 +403,7 @@ If non-nil, disabled keywords of 
`leaf-expand-minimally-suppress-keywords'."
   :type 'boolean
   :group 'leaf)
 
-(defcustom leaf-expand-minimally-suppress-keywords '(:leaf-protect :leaf-defun 
:leaf-defvar :leaf-path)
+(defcustom leaf-expand-minimally-suppress-keywords '(:leaf-protect :leaf-defun 
:leaf-defvar :leaf-path :leaf-defer-let)
   "Suppress keywords when `leaf-expand-minimally' is non-nil."
   :type 'sexp
   :group 'leaf)

Reply via email to