From 2e00f34e4ce2b3bf6a3ecd295077bc62c9e82a3b Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Wed, 26 Feb 2025 06:37:52 +0100 Subject: [PATCH] Make define-global-minor-mode alias obsolete * lisp/emacs-lisp/easy-mmode.el (define-global-minor-mode): Make alias for old name obsolete, just in time for its 20th anniversary. * test/lisp/emacs-lisp/lisp-mode-tests.el (test-font-lock-keywords): * lisp/progmodes/subword.el (global-subword-mode) (global-superword-mode): Don't use above obsolete name. * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression) (lisp-fdefs): Remove syntax highlighting for obsolete name. * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): Add comment mentioning the obsolete status of above alias. * doc/lispref/loading.texi (Autoload): Don't document obsolete name. (cherry picked from commit b4d1061b82a6accedc14770669f701945b209813) --- doc/lispref/loading.texi | 4 +-- lisp/emacs-lisp/easy-mmode.el | 7 +++-- lisp/emacs-lisp/lisp-mode.el | 3 +- lisp/emacs-lisp/loaddefs-gen.el | 37 +++++++++++++++---------- lisp/progmodes/subword.el | 4 +-- test/lisp/emacs-lisp/lisp-mode-tests.el | 2 +- 6 files changed, 32 insertions(+), 25 deletions(-) diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index 5466ed2796e..8fd5a8303f7 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi @@ -659,8 +659,8 @@ and @code{define-overloadable-function} (see the commentary in @item Definitions for major or minor modes: @code{define-minor-mode}, @code{define-globalized-minor-mode}, -@code{define-generic-mode}, @code{define-derived-mode}, -@code{define-compilation-mode}, and @code{define-global-minor-mode}. +@code{define-generic-mode}, @code{define-derived-mode}, and +@code{define-compilation-mode}. @item Other definition types: @code{defcustom}, @code{defgroup}, @code{deftheme}, @code{defclass} diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index d583b61b2a6..1558bdb172a 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -454,8 +454,6 @@ No problems result if this variable is not bound. ;;; make global minor mode ;;; -;;;###autoload -(defalias 'define-global-minor-mode #'define-globalized-minor-mode) ;;;###autoload (defmacro define-globalized-minor-mode (global-mode mode turn-on &rest body) "Make a global mode GLOBAL-MODE corresponding to buffer-local minor MODE. @@ -862,11 +860,14 @@ Interactively, COUNT is the prefix numeric argument, and defaults to 1." name) ,@body) (put ',prev-sym 'definition-name ',base)))) -;; When deleting these two, also delete them from loaddefs-gen.el. +;; When deleting these, also delete them from loaddefs-gen.el. ;;;###autoload (define-obsolete-function-alias 'easy-mmode-define-minor-mode #'define-minor-mode "30.1") ;;;###autoload (define-obsolete-function-alias 'easy-mmode-define-global-mode #'define-globalized-minor-mode "30.1") +;;;###autoload +(define-obsolete-function-alias 'define-global-minor-mode + #'define-globalized-minor-mode "31.1") (provide 'easy-mmode) diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 787bc7f634e..353034d5eb3 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -101,7 +101,6 @@ "defun*" "defsubst" "define-inline" "define-advice" "defadvice" "define-skeleton" "define-compilation-mode" "define-minor-mode" - "define-global-minor-mode" "define-globalized-minor-mode" "define-derived-mode" "define-generic-mode" "ert-deftest" @@ -349,7 +348,7 @@ This will generate compile-time constants from BINDINGS." (el-fdefs '("defsubst" "cl-defsubst" "define-inline" "define-advice" "defadvice" "defalias" "define-derived-mode" "define-minor-mode" - "define-generic-mode" "define-global-minor-mode" + "define-generic-mode" "define-globalized-minor-mode" "define-skeleton" "define-widget" "ert-deftest")) (el-vdefs '("defconst" "defcustom" "defvaralias" "defvar-local" diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el index 39f2c05f125..ede6d43bed2 100644 --- a/lisp/emacs-lisp/loaddefs-gen.el +++ b/lisp/emacs-lisp/loaddefs-gen.el @@ -197,11 +197,14 @@ expression, in which case we want to handle forms differently." (when exps (cons 'progn exps))))) ;; For complex cases, try again on the macro-expansion. - ((and (memq car '(easy-mmode-define-global-mode define-global-minor-mode - define-globalized-minor-mode defun defmacro - easy-mmode-define-minor-mode define-minor-mode - define-inline cl-defun cl-defmacro cl-defgeneric - cl-defstruct pcase-defmacro iter-defun cl-iter-defun)) + ((and (memq car '( define-globalized-minor-mode defun defmacro + define-minor-mode define-inline + cl-defun cl-defmacro cl-defgeneric + cl-defstruct pcase-defmacro iter-defun cl-iter-defun + ;; Obsolete; keep until the alias is removed. + easy-mmode-define-global-mode + easy-mmode-define-minor-mode + define-global-minor-mode)) (macrop car) (setq expand (let ((load-true-file-name file) (load-file-name file)) @@ -211,15 +214,18 @@ expression, in which case we want to handle forms differently." (loaddefs-generate--make-autoload expand file 'expansion)) ;; For special function-like operators, use the `autoload' function. - ((memq car '(define-skeleton define-derived-mode + ((memq car '( define-skeleton define-derived-mode define-compilation-mode define-generic-mode - easy-mmode-define-global-mode define-global-minor-mode - define-globalized-minor-mode - easy-mmode-define-minor-mode define-minor-mode + define-globalized-minor-mode + define-minor-mode cl-defun defun* cl-defmacro defmacro* define-overloadable-function transient-define-prefix transient-define-suffix - transient-define-infix transient-define-argument)) + transient-define-infix transient-define-argument + ;; Obsolete; keep until the alias is removed. + easy-mmode-define-global-mode + easy-mmode-define-minor-mode + define-global-minor-mode)) (let* ((macrop (memq car '(defmacro cl-defmacro defmacro*))) (name (nth 1 form)) (args (pcase car @@ -243,17 +249,18 @@ expression, in which case we want to handle forms differently." (loaddefs-generate--shorten-autoload `(autoload ,(if (listp name) name (list 'quote name)) ,file ,doc - ,(or (and (memq car '(define-skeleton define-derived-mode + ,(or (and (memq car '( define-skeleton define-derived-mode define-generic-mode - easy-mmode-define-global-mode - define-global-minor-mode define-globalized-minor-mode - easy-mmode-define-minor-mode define-minor-mode transient-define-prefix transient-define-suffix transient-define-infix - transient-define-argument)) + transient-define-argument + ;; Obsolete; keep until the alias is removed. + easy-mmode-define-global-mode + easy-mmode-define-minor-mode + define-global-minor-mode)) t) (and (eq (car-safe (car body)) 'interactive) ;; List of modes or just t. diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el index 3db64d5319f..4305e36c33f 100644 --- a/lisp/progmodes/subword.el +++ b/lisp/progmodes/subword.el @@ -119,7 +119,7 @@ treat nomenclature boundaries as word boundaries." (define-obsolete-function-alias 'c-subword-mode 'subword-mode "23.2") ;;;###autoload -(define-global-minor-mode global-subword-mode subword-mode +(define-globalized-minor-mode global-subword-mode subword-mode (lambda () (subword-mode 1)) :group 'convenience) @@ -273,7 +273,7 @@ syntax are treated as parts of words: e.g., in `superword-mode', (subword-setup-buffer)) ;;;###autoload -(define-global-minor-mode global-superword-mode superword-mode +(define-globalized-minor-mode global-superword-mode superword-mode (lambda () (superword-mode 1)) :group 'convenience) diff --git a/test/lisp/emacs-lisp/lisp-mode-tests.el b/test/lisp/emacs-lisp/lisp-mode-tests.el index 1c2e0c2d01d..ea47380fe80 100644 --- a/test/lisp/emacs-lisp/lisp-mode-tests.el +++ b/test/lisp/emacs-lisp/lisp-mode-tests.el @@ -420,7 +420,7 @@ lisp-fill-paragraph was refactored in version 28.\")")) '("defsubst" "cl-defsubst" "define-inline" "define-advice" "defadvice" "defalias" "define-derived-mode" "define-minor-mode" - "define-generic-mode" "define-global-minor-mode" + "define-generic-mode" "define-globalized-minor-mode" "define-skeleton" "define-widget" "ert-deftest" "defconst" "defcustom" "defvaralias" "defvar-local" "defface" "define-error")))) -- 2.39.5