branch: externals/leaf
commit 86b4b850738e4f2acf4160f730efb7b5e8414c6d
Author: Naoya Yamashita <[email protected]>
Commit: Naoya Yamashita <[email protected]>
implement leaf--create-custom-comment and use it
---
leaf.el | 38 +++++++++++++++++++++++++++++---------
1 file changed, 29 insertions(+), 9 deletions(-)
diff --git a/leaf.el b/leaf.el
index b7fdd40..2d0b09f 100644
--- a/leaf.el
+++ b/leaf.el
@@ -134,11 +134,11 @@ Same as `list' but this macro does not evaluate any
arguments."
:pl-pre-setq `(,@(mapcar (lambda (elm) `(setq ,(car elm)
(leaf-handler-auth ,leaf--name ,(car elm) ,(cdr elm)))) leaf--value)
,@leaf--body)
:auth-pre-setq `(,@(mapcar (lambda (elm) `(setq ,(car elm)
(leaf-handler-auth ,leaf--name ,(car elm) ,(cdr elm)))) leaf--value)
,@leaf--body)
- :custom `(,@(mapcar (lambda (elm) `(customize-set-variable
',(car elm) ,(cdr elm) ,(format "Customized with leaf in %s %s block"
load-file-name leaf--name))) leaf--value) ,@leaf--body)
- :custom* `(,@(mapcar (lambda (elm) `(customize-set-variable
',(car elm) ,(cdr elm) ,(format "Customized with leaf in %s %s block"
load-file-name leaf--name))) leaf--value) ,@leaf--body)
- :pl-custom `(,@(mapcar (lambda (elm) `(customize-set-variable
',(car elm) (leaf-handler-auth ,leaf--name ,(car elm) ,(cdr elm)) ,(format
"Customized in leaf `%s' from plstore `%s' at %s" leaf--name (symbol-name (cdr
elm)) load-file-name))) leaf--value) ,@leaf--body)
- :auth-custom `(,@(mapcar (lambda (elm) `(customize-set-variable
',(car elm) (leaf-handler-auth ,leaf--name ,(car elm) ,(cdr elm)) ,(format
"Customized in leaf `%s' from plstore `%s' at %s" leaf--name (symbol-name (cdr
elm)) load-file-name))) leaf--value) ,@leaf--body)
- :custom-face `((custom-set-faces ,@(mapcar (lambda (elm) `'(,(car
elm) ,(car (cddr elm)) nil ,(format "Customized with leaf in %s %s block"
load-file-name leaf--name))) leaf--value)) ,@leaf--body)
+ :custom `(,@(mapcar (lambda (elm) `(customize-set-variable
',(car elm) ,(cdr elm) ,(leaf--create-custom-comment :custom))) leaf--value)
,@leaf--body)
+ :custom* `(,@(mapcar (lambda (elm) `(customize-set-variable
',(car elm) ,(cdr elm) ,(leaf--create-custom-comment :custom*))) leaf--value)
,@leaf--body)
+ :pl-custom `(,@(mapcar (lambda (elm) `(customize-set-variable
',(car elm) (leaf-handler-auth ,leaf--name ,(car elm) ,(cdr elm))
,(leaf--create-custom-comment :pl-custom (cdr elm)))) leaf--value) ,@leaf--body)
+ :auth-custom `(,@(mapcar (lambda (elm) `(customize-set-variable
',(car elm) (leaf-handler-auth ,leaf--name ,(car elm) ,(cdr elm))
,(leaf--create-custom-comment :auth-custom (cdr elm)))) leaf--value)
,@leaf--body)
+ :custom-face `((custom-set-faces ,@(mapcar (lambda (elm) `'(,(car
elm) ,(car (cddr elm)) nil ,(leaf--create-custom-comment :custom-face)))
leaf--value)) ,@leaf--body)
:init `(,@leaf--value ,@leaf--body)
:require `(,@(mapcar (lambda (elm) `(require ',elm)) leaf--value)
,@leaf--body)
@@ -587,6 +587,16 @@ see `alist-get'."
"Raise error with type leaf. MESSAGE and ARGS is same form as `lwarn'."
(apply #'lwarn `(leaf :error ,message ,@args)))
+(defun leaf--create-custom-comment (type &rest args)
+ "Create message for TYPE using ARGS."
+ (concat
+ (format "Customized with leaf in `%s' block" leaf--name)
+ (when (memq type '(:pl-custom :auth-custom))
+ (let* ((store (pop args)))
+ (format " using `%s' plstore" store)))
+ (when load-file-name
+ (format " at `%s'" load-file-name))))
+
;;;; General functions for leaf
@@ -905,8 +915,14 @@ FN also accept list of FN."
`(condition-case err
(progn ,@body)
(error
- (display-warning 'leaf (format ,(format "Error in `%s' block at `%s'.
Error msg: %%s" name load-file-name)
- (error-message-string err))))))
+ (display-warning 'leaf (format
+ ,(concat
+ (format "Error in `%s' block" name)
+ (when load-file-name
+ (format " at `%s'" load-file-name))
+ "."
+ " Error msg: %s")
+ (error-message-string err))))))
(defmacro leaf-handler-package (name pkg _pin)
"Handler ensure PKG via PIN in NAME leaf block."
@@ -923,8 +939,12 @@ FN also accept list of FN."
(error
(display-warning 'leaf
(format
- ,(format "In `%s' block at `%s', failed to
:package of %s. Error msg: %%s"
- name load-file-name pkg)
+ ,(concat
+ (format "In `%s' block" name)
+ (when load-file-name
+ (format " at `%s'" load-file-name))
+ (format ", failed to :package of `%s'." pkg)
+ " Error msg: %s")
(error-message-string err)))))))))
(defmacro leaf-handler-auth (name sym store)