(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.
This commit is contained in:
Stefan Monnier 2001-11-18 01:35:12 +00:00
parent ddf6b836f5
commit d3b80e9b70

View file

@ -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 @@ not the default value itself."
(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 @@ information."
;;; 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 @@ information."
(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 @@ If there already is an entry for OPTION and WIDGET, nothing is done."
(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))