emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 27ff4d9c495: * lisp/help-fns.el (help-fns--parent-mode): Mention


From: Stefan Monnier
Subject: master 27ff4d9c495: * lisp/help-fns.el (help-fns--parent-mode): Mention the extra parents
Date: Mon, 15 Jan 2024 19:00:54 -0500 (EST)

branch: master
commit 27ff4d9c4956fe06c59f342def8b35d32bbc3b50
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * lisp/help-fns.el (help-fns--parent-mode): Mention the extra parents
    
    As suggested by Stefan Kangas in bug#68246.
---
 lisp/help-fns.el | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index ca21408f6c3..99642d08bbd 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -741,18 +741,28 @@ the C sources, too."
 
 (defun help-fns--parent-mode (function)
   ;; If this is a derived mode, link to the parent.
-  (let ((parent-mode (and (symbolp function)
-                          ;; FIXME: Should we mention other parent modes?
-                          (get function
-                               'derived-mode-parent))))
+  (when (symbolp function)
+    (let ((parent-mode (get function 'derived-mode-parent))
+          (extra-parents (get function 'derived-mode-extra-parents)))
     (when parent-mode
       (insert (substitute-quotes "  Parent mode: `"))
       (let ((beg (point)))
-        (insert (format "%s" parent-mode))
+        (insert (format "%S" parent-mode))
         (make-text-button beg (point)
                           'type 'help-function
                           'help-args (list parent-mode)))
-      (insert (substitute-quotes "'.\n")))))
+      (insert (substitute-quotes "'.\n")))
+    (when extra-parents
+      (insert (format "  Extra parent mode%s:" (if (cdr extra-parents) "s" 
"")))
+      (dolist (parent extra-parents)
+        (insert (substitute-quotes " `"))
+        (let ((beg (point)))
+          (insert (format "%S" parent))
+          (make-text-button beg (point)
+                            'type 'help-function
+                            'help-args (list parent)))
+        (insert (substitute-quotes "'")))
+      (insert ".\n")))))
 
 (defun help-fns--obsolete (function)
   ;; Ignore lambda constructs, keyboard macros, etc.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]