branch: externals/leaf commit eb5aed99bfc8a72f426c5f36585b0ad6b5ccb4f2 Author: USAMI Kenta <tad...@zonu.me> Commit: USAMI Kenta <tad...@zonu.me>
Add custom type for leaf-defaults and change leaf-system-defaults to defvar To avoid user confusion, the system default value `leaf-system-defaults` should be defined as a defvar rather than a custom variable. Since `leaf-defaults` is a variable for user customization, end users only need to change it. Maybe there are use cases where developers of extensions like leaf-keywords.el change `leaf-system-defaults`, so I've changed it to defvar instead of defconst. --- leaf.el | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/leaf.el b/leaf.el index 3ef15dd..d92af84 100644 --- a/leaf.el +++ b/leaf.el @@ -361,15 +361,19 @@ Sort by `leaf-sort-leaf--values-plist' in this order.") (defcustom leaf-defaults '() "The value that are interpreted as specified for all `leaf' blocks." - :type 'sexp + :type '(plist :key-type (choice (const :leaf-autoload) + (const :leaf-defer) + (const :leaf-protect) + (const :leaf-defun) + (const :leaf-defvar) + (const :leaf-path)) + :value-type boolean) :group 'leaf) -(defcustom leaf-system-defaults (leaf-list - :leaf-autoload 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." - :type 'sexp - :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) + "The value for all `leaf' blocks for leaf system.") (defcustom leaf-defer-keywords (list :bind :bind*