[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/eldoc.el
From: |
Dave Love |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/eldoc.el |
Date: |
Sat, 06 Sep 2003 13:32:31 -0400 |
Index: emacs/lisp/emacs-lisp/eldoc.el
diff -c emacs/lisp/emacs-lisp/eldoc.el:1.26 emacs/lisp/emacs-lisp/eldoc.el:1.27
*** emacs/lisp/emacs-lisp/eldoc.el:1.26 Mon Sep 1 11:45:22 2003
--- emacs/lisp/emacs-lisp/eldoc.el Sat Sep 6 13:32:31 2003
***************
*** 7,13 ****
;; Keywords: extensions
;; Created: 1995-10-06
! ;; $Id: eldoc.el,v 1.26 2003/09/01 15:45:22 miles Exp $
;; This file is part of GNU Emacs.
--- 7,13 ----
;; Keywords: extensions
;; Created: 1995-10-06
! ;; $Id: eldoc.el,v 1.27 2003/09/06 17:32:31 fx Exp $
;; This file is part of GNU Emacs.
***************
*** 40,50 ****
;; One useful way to enable this minor mode is to put the following in your
;; .emacs:
;;
- ;; (autoload 'turn-on-eldoc-mode "eldoc" nil t)
;; (add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode)
;; (add-hook 'lisp-interaction-mode-hook 'turn-on-eldoc-mode)
;; (add-hook 'ielm-mode-hook 'turn-on-eldoc-mode)
;;; Code:
(require 'help-fns) ;For fundoc-usage handling functions.
--- 40,53 ----
;; One useful way to enable this minor mode is to put the following in your
;; .emacs:
;;
;; (add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode)
;; (add-hook 'lisp-interaction-mode-hook 'turn-on-eldoc-mode)
;; (add-hook 'ielm-mode-hook 'turn-on-eldoc-mode)
+ ;; Major modes for other languages may use Eldoc by defining an
+ ;; appropriate function as the buffer-local value of
+ ;; `eldoc-print-current-symbol-info-function'.
+
;;; Code:
(require 'help-fns) ;For fundoc-usage handling functions.
***************
*** 233,251 ****
(not (eq (selected-window) (minibuffer-window)))))
(defun eldoc-print-current-symbol-info ()
(condition-case err
(and (eldoc-display-message-p)
! (let* ((current-symbol (eldoc-current-symbol))
! (current-fnsym (eldoc-fnsym-in-current-sexp))
! (doc (cond
! ((eq current-symbol current-fnsym)
! (or (eldoc-get-fnsym-args-string current-fnsym)
! (eldoc-get-var-docstring current-symbol)))
! (t
! (or (eldoc-get-var-docstring current-symbol)
! (eldoc-get-fnsym-args-string current-fnsym))))))
! (eldoc-message doc)))
;; This is run from post-command-hook or some idle timer thing,
;; so we need to be careful that errors aren't ignored.
(error (message "eldoc error: %s" err))))
--- 236,267 ----
(not (eq (selected-window) (minibuffer-window)))))
+ (defvar eldoc-print-current-symbol-info-function nil
+ "If non-nil, function to call to return doc string.
+ The function of no args should return a one-line string for displaying
+ doc about a function etc. appropriate to the context around point.
+ It should return nil if there's no doc appropriate for the context.
+ Typically doc is returned if point is on a function-like name or in its
+ arg list.
+
+ This variable is expected to be made buffer-local by modes (other than
+ Emacs Lisp mode) that support Eldoc.")
+
(defun eldoc-print-current-symbol-info ()
(condition-case err
(and (eldoc-display-message-p)
! (if eldoc-print-current-symbol-info-function
! (eldoc-message (funcall
eldoc-print-current-symbol-info-function))
! (let* ((current-symbol (eldoc-current-symbol))
! (current-fnsym (eldoc-fnsym-in-current-sexp))
! (doc (cond
! ((eq current-symbol current-fnsym)
! (or (eldoc-get-fnsym-args-string current-fnsym)
! (eldoc-get-var-docstring current-symbol)))
! (t
! (or (eldoc-get-var-docstring current-symbol)
! (eldoc-get-fnsym-args-string current-fnsym))))))
! (eldoc-message doc))))
;; This is run from post-command-hook or some idle timer thing,
;; so we need to be careful that errors aren't ignored.
(error (message "eldoc error: %s" err))))