* emacs-lisp/eldoc.el (eldoc-print-current-symbol-info): Refactor

out eldoc-documentation-function-default.
(eldoc-documentation-function-default): New function.
(eldoc-documentation-function): Change value.
This commit is contained in:
Leo Liu 2014-03-31 09:31:17 +08:00
parent 1db854ccdd
commit 294b2b0928
2 changed files with 23 additions and 18 deletions

View file

@ -1,3 +1,10 @@
2014-03-31 Leo Liu <sdl.web@gmail.com>
* emacs-lisp/eldoc.el (eldoc-print-current-symbol-info): Refactor
out eldoc-documentation-function-default.
(eldoc-documentation-function-default): New function.
(eldoc-documentation-function): Change value.
2014-03-31 Glenn Morris <rgm@gnu.org>
* simple.el (cycle-spacing--context, cycle-spacing): Doc tweaks.

View file

@ -298,8 +298,8 @@ Otherwise work like `message'."
;;;###autoload
(defvar eldoc-documentation-function nil
"If non-nil, function to call to return doc string.
(defvar eldoc-documentation-function #'eldoc-documentation-function-default
"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.
@ -323,22 +323,20 @@ Emacs Lisp mode) that support ElDoc.")
(when eldoc-last-message
(eldoc-message nil)
nil))
(if eldoc-documentation-function
(eldoc-message (funcall eldoc-documentation-function))
(let* ((current-symbol (eldoc-current-symbol))
(current-fnsym (eldoc-fnsym-in-current-sexp))
(doc (cond
((null current-fnsym)
nil)
((eq current-symbol (car current-fnsym))
(or (apply 'eldoc-get-fnsym-args-string
current-fnsym)
(eldoc-get-var-docstring current-symbol)))
(t
(or (eldoc-get-var-docstring current-symbol)
(apply 'eldoc-get-fnsym-args-string
current-fnsym))))))
(eldoc-message doc))))))
(eldoc-message (funcall eldoc-documentation-function)))))
(defun eldoc-documentation-function-default ()
"Default value for `eldoc-documentation-function' (which see)."
(let ((current-symbol (eldoc-current-symbol))
(current-fnsym (eldoc-fnsym-in-current-sexp)))
(cond ((null current-fnsym)
nil)
((eq current-symbol (car current-fnsym))
(or (apply #'eldoc-get-fnsym-args-string current-fnsym)
(eldoc-get-var-docstring current-symbol)))
(t
(or (eldoc-get-var-docstring current-symbol)
(apply #'eldoc-get-fnsym-args-string current-fnsym))))))
(defun eldoc-get-fnsym-args-string (sym &optional index)
"Return a string containing the parameter list of the function SYM.