]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/help-fns.el (help-fns--parent-mode): Mention the extra parents
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 16 Jan 2024 00:00:50 +0000 (19:00 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 16 Jan 2024 00:00:50 +0000 (19:00 -0500)
As suggested by Stefan Kangas in bug#68246.

lisp/help-fns.el

index ca21408f6c355a83aadf0d81128a9712ebcc39ff..99642d08bbd230ad62309f1b8e6ead466cdb7cf1 100644 (file)
@@ -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.