emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 85b3eca 2/2: ; Revert "Replace eldoc-documentation-


From: Dmitry Gutov
Subject: [Emacs-diffs] master 85b3eca 2/2: ; Revert "Replace eldoc-documentation-function with a hook"
Date: Sun, 17 Jul 2016 23:46:49 +0000 (UTC)

branch: master
commit 85b3eca57a5ae5335c11b157bb481cf8f7a35684
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    ; Revert "Replace eldoc-documentation-function with a hook"
    
    This reverts commit 5811404f0b86c9fa92c3e0b22505a9bb05f04145.
    
    It doesn't have the consensus, as evidenced by
    http://lists.gnu.org/archive/html/emacs-devel/2016-06/msg00138.html
---
 doc/lispref/modes.texi   |    2 +-
 etc/NEWS                 |    5 -----
 lisp/emacs-lisp/eldoc.el |   50 +++++++++++++++++-----------------------------
 3 files changed, 19 insertions(+), 38 deletions(-)

diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 3dbfed0..368d882 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -417,7 +417,7 @@ variable @code{imenu-generic-expression}, for the two 
variables
 
 @item
 The mode can specify a local value for
address@hidden to tell ElDoc mode how to handle
address@hidden to tell ElDoc mode how to handle
 this mode.
 
 @item
diff --git a/etc/NEWS b/etc/NEWS
index c58349c..403a6b7 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -265,11 +265,6 @@ viewing HTML files and the like.
 breakpoint (e.g. with "f" and "o") by customizing the new option
 'edebug-sit-on-break'.
 
-** ElDoc
-
-+++
-*** 'eldoc-documentation-functions' replaces 'eldoc-documentation-function'.
-
 ** eww
 
 +++
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index 5cc16a8..6c2f869 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -43,7 +43,7 @@
 
 ;; 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'.
 
 ;;; Code:
 
@@ -80,7 +80,7 @@ Actually, any name of a function which takes a string as an 
argument and
 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)
@@ -103,7 +103,7 @@ display in the echo area.  Function or variable symbol name 
may be
 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\
@@ -113,8 +113,8 @@ Note that this variable has no effect, unless
 (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.
@@ -186,7 +186,7 @@ expression point is on."
   :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
@@ -211,7 +211,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is 
‘toggle’.
 
 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
@@ -236,7 +236,9 @@ that have enabled eldoc support.  See 
`eldoc-documentation-functions'."
             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.
@@ -332,11 +334,10 @@ Otherwise work like `message'."
 
 
 ;;;###autoload
-(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.
@@ -346,15 +347,13 @@ the variables `eldoc-argument-case' and 
`eldoc-echo-area-use-multiline-p',
 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.")
 
-(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.
@@ -364,20 +363,7 @@ return any documentation.")
              (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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]