From 88ad06894cba8cfaf7b7c1916449f9f10e1cb6e7 Mon Sep 17 00:00:00 2001 From: Eshel Yaron Date: Fri, 26 Apr 2024 11:43:29 +0200 Subject: [PATCH v2] 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. (Bug#70589) --- 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..081619002c8 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 "Rules (earlier takes precedence)..." + (choice + (const :tag "By default, enable" t) + (const :tag "By default, don't enable" nil) + (symbol :value fundamental-mode + :tag "Enable in major mode") + (cons :tag "Don't enable in major modes" + (const :tag "Don't enable in..." not) + (repeat + (symbol :value fundamental-mode + :tag "Major mode")))))) ,@group)) ;; Autoloading define-globalized-minor-mode autoloads everything -- 2.44.0