@item
The mode can specify a local value for
@item
The mode can specify a local value for
-@code{eldoc-documentation-functions} to tell ElDoc mode how to handle
+@code{eldoc-documentation-function} to tell ElDoc mode how to handle
breakpoint (e.g. with "f" and "o") by customizing the new option
'edebug-sit-on-break'.
breakpoint (e.g. with "f" and "o") by customizing the new option
'edebug-sit-on-break'.
-** ElDoc
-
-+++
-*** 'eldoc-documentation-functions' replaces 'eldoc-documentation-function'.
-
;; Major modes for other languages may use ElDoc by defining an
;; appropriate function as the buffer-local value of
;; Major modes for other languages may use ElDoc by defining an
;; appropriate function as the buffer-local value of
-;; `eldoc-documentation-functions'.
+;; `eldoc-documentation-function'.
returns another string is acceptable.
Note that this variable has no effect, unless
returns another string is acceptable.
Note that this variable has no effect, unless
-`eldoc-documentation-functions' handle it explicitly."
+`eldoc-documentation-function' handles it explicitly."
:type '(radio (function-item upcase)
(function-item downcase)
function)
:type '(radio (function-item upcase)
(function-item downcase)
function)
truncated to make more of the arglist or documentation string visible.
Note that this variable has no effect, unless
truncated to make more of the arglist or documentation string visible.
Note that this variable has no effect, unless
-`eldoc-documentation-functions' handle it explicitly."
+`eldoc-documentation-function' handles it explicitly."
:type '(radio (const :tag "Always" t)
(const :tag "Never" nil)
(const :tag "Yes, but truncate symbol names if it will\
:type '(radio (const :tag "Always" t)
(const :tag "Never" nil)
(const :tag "Yes, but truncate symbol names if it will\
(defface eldoc-highlight-function-argument
'((t (:inherit bold)))
"Face used for the argument at point in a function's argument list.
(defface eldoc-highlight-function-argument
'((t (:inherit bold)))
"Face used for the argument at point in a function's argument list.
-Note that this face has no effect unless the `eldoc-documentation-functions'
-handle it explicitly."
+Note that this face has no effect unless the `eldoc-documentation-function'
+handles it explicitly."
:group 'eldoc)
;;; No user options below here.
:group 'eldoc)
;;; No user options below here.
:group 'eldoc :lighter eldoc-minor-mode-string
(setq eldoc-last-message nil)
(cond
:group 'eldoc :lighter eldoc-minor-mode-string
(setq eldoc-last-message nil)
(cond
- ((not (eldoc-supported-p))
+ ((memq eldoc-documentation-function '(nil ignore))
(message "There is no ElDoc support in this buffer")
(setq eldoc-mode nil))
(eldoc-mode
(message "There is no ElDoc support in this buffer")
(setq eldoc-mode nil))
(eldoc-mode
If Global Eldoc mode is on, `eldoc-mode' will be enabled in all
buffers where it's applicable. These are buffers that have modes
If Global Eldoc mode is on, `eldoc-mode' will be enabled in all
buffers where it's applicable. These are buffers that have modes
-that have enabled eldoc support. See `eldoc-documentation-functions'."
+that have enabled eldoc support. See `eldoc-documentation-function'."
:group 'eldoc
:global t
:initialize 'custom-initialize-delay
:group 'eldoc
:global t
:initialize 'custom-initialize-delay
eldoc-idle-delay nil
(lambda ()
(when (or eldoc-mode
eldoc-idle-delay nil
(lambda ()
(when (or eldoc-mode
- (and global-eldoc-mode (eldoc-supported-p)))
+ (and global-eldoc-mode
+ (not (memq eldoc-documentation-function
+ '(nil ignore)))))
(eldoc-print-current-symbol-info))))))
;; If user has changed the idle delay, update the timer.
(eldoc-print-current-symbol-info))))))
;; If user has changed the idle delay, update the timer.
-(defvar eldoc-documentation-functions #'ignore
- "Hook to run to return doc string.
-A function in this hook should accept no args and return a
-one-line string for displaying documentation of a function,
-variable, etc. appropriate to the context around point.
+(defvar eldoc-documentation-function #'ignore
+ "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.
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.
and the face `eldoc-highlight-function-argument', if they are to have any
effect.
and the face `eldoc-highlight-function-argument', if they are to have any
effect.
-Major modes should modify this variable using `add-hook', for example:
- (add-hook \\='eldoc-documentation-functions #\\='foo-eldoc nil t)
+Major modes should modify this variable using `add-function', for example:
+ (add-function :before-until (local \\='eldoc-documentation-function)
+ #\\='foo-mode-eldoc-function)
so that the global documentation function (i.e. the default value of the
variable) is taken into account if the major mode specific function does not
return any documentation.")
so that the global documentation function (i.e. the default value of the
variable) is taken into account if the major mode specific function does not
return any documentation.")
-(define-obsolete-variable-alias 'eldoc-documentation-function
- 'eldoc-documentation-functions "25.2")
-
(defun eldoc-print-current-symbol-info ()
;; This is run from post-command-hook or some idle timer thing,
;; so we need to be careful that errors aren't ignored.
(defun eldoc-print-current-symbol-info ()
;; This is run from post-command-hook or some idle timer thing,
;; so we need to be careful that errors aren't ignored.
(when eldoc-last-message
(eldoc-message nil)
nil))
(when eldoc-last-message
(eldoc-message nil)
nil))
- (eldoc-message
- (run-hook-with-args-until-success 'eldoc-documentation-functions)))))
-
-(defun eldoc-supported-p ()
- "Return t if `eldoc-documentation-functions' has non-null elements."
- (if (listp eldoc-documentation-functions)
- (catch :eldoc-supported
- (mapc
- (lambda (fun)
- (when (not (memq fun '(nil ignore)))
- (throw :eldoc-supported t)))
- eldoc-documentation-functions)
- nil)
- (not (memq eldoc-documentation-functions '(nil ignore)))))
+ (eldoc-message (funcall eldoc-documentation-function)))))
;; If the entire line cannot fit in the echo area, the symbol name may be
;; truncated or eliminated entirely from the output to make room for the
;; If the entire line cannot fit in the echo area, the symbol name may be
;; truncated or eliminated entirely from the output to make room for the