From: Chong Yidong Date: Sat, 28 May 2011 17:40:37 +0000 (-0400) Subject: In describe-function, print the parent of a derived mode. X-Git-Url: https://git.hcoop.net/bpt/emacs.git/commitdiff_plain/5199bde17738aba58d6380ba5b334fd2a48b6621 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. --- 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)