Mercurial > emacs
changeset 41224:fc0e6d3f905d
(custom-current-group-alist): New var.
(custom-declare-group): Set it.
(custom-current-group): New fun.
(custom-declare-variable, custom-handle-all-keywords):
Use it as a default if no :group argument is specified.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sun, 18 Nov 2001 01:35:12 +0000 |
parents | 0ca8b0f41ebd |
children | 74219f3013c6 |
files | lisp/custom.el |
diffstat | 1 files changed, 14 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/custom.el Sun Nov 18 01:29:22 2001 +0000 +++ b/lisp/custom.el Sun Nov 18 01:35:12 2001 +0000 @@ -39,6 +39,9 @@ ;; Customize information for this option is in `cus-edit.el'. "Hook called after defining each customize option.") +(defvar custom-current-group-alist nil + "Alist of (FILE . GROUP) indicating the current group to use for FILE.") + ;;; The `defcustom' Macro. (defun custom-initialize-default (symbol value) @@ -114,6 +117,8 @@ (put symbol 'variable-documentation doc)) (let ((initialize 'custom-initialize-reset) (requests nil)) + (unless (memq :group args) + (custom-add-to-group (custom-current-group) symbol 'custom-variable)) (while args (let ((arg (car args))) (setq args (cdr args)) @@ -262,6 +267,9 @@ ;;; The `defgroup' Macro. +(defun custom-current-group () + (cdr (assoc load-file-name custom-current-group-alist))) + (defun custom-declare-group (symbol members doc &rest args) "Like `defgroup', but SYMBOL is evaluated as a normal argument." (while members @@ -286,6 +294,10 @@ (t (custom-handle-keyword symbol keyword value 'custom-group)))))) + ;; Record the group on the `current' list. + (let ((elt (assoc load-file-name custom-current-group-alist))) + (if elt (setcdr elt symbol) + (push (cons load-file-name symbol) custom-current-group-alist))) (run-hooks 'custom-define-hook) symbol) @@ -332,6 +344,8 @@ (defun custom-handle-all-keywords (symbol args type) "For customization option SYMBOL, handle keyword arguments ARGS. Third argument TYPE is the custom option type." + (unless (memq :group args) + (custom-add-to-group (custom-current-group) symbol 'custom-face)) (while args (let ((arg (car args))) (setq args (cdr args))