diff options
author | Stephen Leake <stephen_leake@stephe-leake.org> | 2015-08-26 15:33:41 -0500 |
---|---|---|
committer | Stephen Leake <stephen_leake@stephe-leake.org> | 2015-08-26 16:45:06 -0500 |
commit | 2e8750c76940a712f0be93667c042c8987d919d4 (patch) | |
tree | 5d5b5a3df7b9240a3a1317579caee04ef44b2ac4 /lisp/cedet/mode-local.el | |
parent | 1be208c2b061a6849760579f185be9b9e05de569 (diff) | |
download | emacs-2e8750c76940a712f0be93667c042c8987d919d4.tar.gz emacs-2e8750c76940a712f0be93667c042c8987d919d4.tar.bz2 emacs-2e8750c76940a712f0be93667c042c8987d919d4.zip |
Add mode local overrides to describe-function
* lisp/cedet/mode-local.el (describe-mode-local-overload): New; add mode
local overrides to describe-function.
* etc/NEWS: Document change.
Diffstat (limited to 'lisp/cedet/mode-local.el')
-rw-r--r-- | lisp/cedet/mode-local.el | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el index 01e37005b5d..ce30a985a79 100644 --- a/lisp/cedet/mode-local.el +++ b/lisp/cedet/mode-local.el @@ -625,6 +625,30 @@ SYMBOL is a function that can be overridden." ;; LIST ALL LOADED OVERRIDES FOR SYMBOL HERE ))) +(defun describe-mode-local-overload (symbol) + "For `help-fns-describe-function-functions'; add overloads for SYMBOL." + (when (get symbol 'mode-local-overload) + (let ((default (or (intern-soft (format "%s-default" (symbol-name symbol))) + symbol)) + (override (and + (boundp 'describe-function-orig-buffer) ;; added in Emacs 25 + describe-function-orig-buffer + (with-current-buffer describe-function-orig-buffer + (fetch-overload symbol))))) + (insert (overload-docstring-extension symbol) "\n\n") + (insert (substitute-command-keys (format "default function: `%s'\n" default))) + (when (and (boundp 'describe-function-orig-buffer) ;; added in Emacs 25 + describe-function-orig-buffer) + (if override + (insert (substitute-command-keys + (format "\noverride in buffer '%s': `%s'\n" + describe-function-orig-buffer override))) + (insert (substitute-command-keys (format "\nno override in buffer '%s'\n" + describe-function-orig-buffer))))) + ))) + +(add-hook 'help-fns-describe-function-functions 'describe-mode-local-overload) + ;; Help for mode-local bindings. (defun mode-local-print-binding (symbol) "Print the SYMBOL binding." |