From 5199bde17738aba58d6380ba5b334fd2a48b6621 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 28 May 2011 13:40:37 -0400 Subject: [PATCH] In describe-function, print the parent of a derived mode. * lisp/help-fns.el (describe-function-1): If the function is a derived major mode, print the parent mode. --- lisp/ChangeLog | 3 +++ lisp/help-fns.el | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 88289fc165..dde6bffe7f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2011-05-28 Chong Yidong + * help-fns.el (describe-function-1): If the function is a derived + major mode, print the parent mode. + * progmodes/cc-mode.el (c-mode, c++-mode, objc-mode, java-mode) (idl-mode, pike-mode, awk-mode): Inherit from prog-mode. diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 97ce7ca44e..ed1bd836fb 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -557,6 +557,21 @@ suitable file is found, return nil." (insert (car high) "\n") (fill-region fill-begin (point))) (setq doc (cdr high)))) + + ;; If this is a derived mode, link to the parent. + (let ((parent-mode (and (symbolp real-function) + (get real-function + 'derived-mode-parent)))) + (when parent-mode + (with-current-buffer standard-output + (insert "\nParent mode: `") + (let ((beg (point))) + (insert (format "%s" parent-mode)) + (make-text-button beg (point) + 'type 'help-function + 'help-args (list parent-mode)))) + (princ "'.\n"))) + (let* ((obsolete (and ;; function might be a lambda construct. (symbolp function) -- 2.20.1