From f81f30895dd1e54684ed3bd66a49ea76dd9e5cf7 Mon Sep 17 00:00:00 2001 From: Eshel Yaron Date: Fri, 26 Apr 2024 11:43:29 +0200 Subject: [PATCH] Refine the Custom type of generated '*-modes' options * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Refine the Custom type of the '*-modes' option, generated when this macro is given a ':predicate' argument. --- lisp/emacs-lisp/easy-mmode.el | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index eaad9646985..72509a24241 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -580,7 +580,19 @@ define-globalized-minor-mode and nil means \"don't use\". There's an implicit nil at the end of the list." mode) - :type '(repeat sexp) + :type '(choice (const :tag "Enable in all major modes" t) + (const :tag "Don't enable in any major mode" nil) + (repeat :tag "Only enable in" + (choice + (const :tag "All major modes" t) + (const :tag "No major mode" nil) + (symbol :value fundamental-mode + :tag "Specific major mode") + (cons :tag "Exclude modes" + (const :tag "Exclude..." not) + (repeat + (symbol :value fundamental-mode + :tag "Major mode")))))) ,@group)) ;; Autoloading define-globalized-minor-mode autoloads everything -- 2.44.0