From: Lars Ingebrigtsen Date: Mon, 14 Oct 2019 05:47:53 +0000 (+0200) Subject: Make `C-h v' list all aliases a variable has X-Git-Tag: emacs-27.0.90~1084 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c4fcaf5e729fe5ff9249a56b1d0f5927ef3932a5;p=emacs.git Make `C-h v' list all aliases a variable has * lisp/help-fns.el (help-fns--var-aliases): New function (bug#15179). --- diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 06b15a30f99..bd27ad62605 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -1228,6 +1228,30 @@ variable.\n"))) " This variable is an alias for `%s'.\n" alias))))) +(add-hook 'help-fns-describe-variable-functions #'help-fns--var-aliases) +(defun help-fns--var-aliases (variable) + ;; Mention if it has any aliases. + (let (aliases) + (mapatoms + (lambda (sym) + (when (and (boundp sym) + (setq alias (indirect-variable sym)) + (eq alias variable) + (not (eq alias sym))) + (push sym aliases))) + obarray) + (when aliases + (princ + (if (= (length aliases) 1) + (format-message + " This variable has an alias: `%s'.\n" (car aliases)) + (format-message + " This variable has the following aliases: %s.\n" + (mapconcat + (lambda (sym) + (format "`%s'" sym)) + aliases ",\n "))))))) + (add-hook 'help-fns-describe-variable-functions #'help-fns--var-bufferlocal) (defun help-fns--var-bufferlocal (variable) (let ((permanent-local (get variable 'permanent-local))