[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/elpa d244cc5 22/71: Per #443: tweak handling of eldoc-e
From: |
João Távora |
Subject: |
[elpa] externals/elpa d244cc5 22/71: Per #443: tweak handling of eldoc-echo-area-use-multiline-p |
Date: |
Wed, 16 Dec 2020 11:42:17 -0500 (EST) |
branch: externals/elpa
commit d244cc53593141ade9714fd3d1c2ff480a397a23
Author: Theodor Thornhill <theothornhill@pm.me>
Commit: João Távora <joaotavora@gmail.com>
Per #443: tweak handling of eldoc-echo-area-use-multiline-p
Also close #453
Co-authored-by: João Távora <joaotavora@gmail.com>
* eglot.el (eglot--first-line-of-doc): New helper.
(eglot--update-doc): Tweak docstring. Simplify.
(eglot-put-doc-in-help-buffer): Tweak docstring
---
eglot.el | 41 ++++++++++++++++++++++-------------------
1 file changed, 22 insertions(+), 19 deletions(-)
diff --git a/eglot.el b/eglot.el
index 22a8aef..09be1f8 100644
--- a/eglot.el
+++ b/eglot.el
@@ -2274,10 +2274,11 @@ Respects `max-mini-window-height' (which see)."
(defcustom eglot-put-doc-in-help-buffer
#'eglot-doc-too-large-for-echo-area
"If non-nil, put \"hover\" documentation in separate `*eglot-help*' buffer.
-If nil, use whatever `eldoc-message-function' decides (usually
-the echo area). If t, use `*eglot-help*' unconditionally. If a
-function, it is called with the docstring to display and should a
-boolean producing one of the two previous values."
+If nil, use whatever `eldoc-message-function' decides, honouring
+`eldoc-echo-area-use-multiline-p'. If t, use `*eglot-help*'
+unconditionally. If a function, it is called with the docstring
+to display and should a boolean producing one of the two previous
+values."
:type '(choice (const :tag "Never use `*eglot-help*'" nil)
(const :tag "Always use `*eglot-help*'" t)
(function :tag "Ask a function")))
@@ -2288,15 +2289,22 @@ Buffer is displayed with `display-buffer', which obeys
`display-buffer-alist' & friends."
:type 'boolean)
+(defun eglot--first-line-of-doc (string)
+ (truncate-string-to-width
+ (replace-regexp-in-string "\\(.*\\)\n.*" "\\1" string)
+ (frame-width) nil nil "..."))
+
(defun eglot--update-doc (string hint)
"Put updated documentation STRING where it belongs.
-Honours `eglot-put-doc-in-help-buffer'. HINT is used to
-potentially rename EGLOT's help buffer. If STRING is nil, the
-echo area cleared of any previous documentation."
- (cond ((and string
- (or (eq t eglot-put-doc-in-help-buffer)
- (and eglot-put-doc-in-help-buffer
- (funcall eglot-put-doc-in-help-buffer string))))
+HINT is used to potentially rename EGLOT's help buffer. If
+STRING is nil, the echo area cleared of any previous
+documentation. Honour `eglot-put-doc-in-help-buffer',
+`eglot-auto-display-help-buffer' and
+`eldoc-echo-area-use-multiline-p'."
+ (cond ((null string) (eldoc-message nil))
+ ((or (eq t eglot-put-doc-in-help-buffer)
+ (and eglot-put-doc-in-help-buffer
+ (funcall eglot-put-doc-in-help-buffer string)))
(with-current-buffer (eglot--help-buffer)
(let ((inhibit-read-only t)
(name (format "*eglot-help for %s*" hint)))
@@ -2310,19 +2318,14 @@ echo area cleared of any previous documentation."
(unless (get-buffer-window (current-buffer))
(eglot--message
"%s\n(...truncated. Full help is in `%s')"
- (truncate-string-to-width
- (replace-regexp-in-string "\\(.*\\)\n.*" "\\1" string)
- (frame-width) nil nil "...")
+ (eglot--first-line-of-doc string)
(buffer-name eglot--help-buffer))))
(help-mode))))
(eldoc-echo-area-use-multiline-p
+ ;; Can't really honour non-t non-nil values if this var
(eldoc-message string))
(t
- (eldoc-message
- (and string
- (if (string-match "\n" string)
- (substring string (match-end 0))
- string))))))
+ (eldoc-message (eglot--first-line-of-doc string)))))
(defun eglot-eldoc-function ()
"EGLOT's `eldoc-documentation-function' function."
- [elpa] externals/elpa 38971d3 66/71: Fix #367: don't let M-x fill-paragraph break didChange, (continued)
- [elpa] externals/elpa 38971d3 66/71: Fix #367: don't let M-x fill-paragraph break didChange, João Távora, 2020/12/16
- [elpa] externals/elpa 8dd0a15 67/71: Fix #367: Robustify previous fix of onChange breakage, João Távora, 2020/12/16
- [elpa] externals/elpa a2fa9ab 21/71: Per #408: fontify markdown source code blocks by default, João Távora, 2020/12/16
- [elpa] externals/elpa c9230e8 20/71: Close #408: Declare markdown support iff gfm-view-mode installed, João Távora, 2020/12/16
- [elpa] externals/elpa 3483a2f 10/71: Tests: print contents of *EGLOT ...* buffers in batch mode., João Távora, 2020/12/16
- [elpa] externals/elpa e1e7362 07/71: Fix #445: don't reupdate help buffer if already rendered, João Távora, 2020/12/16
- [elpa] externals/elpa f7a7e33 15/71: Tweak docstring of eglot-server-programs, João Távora, 2020/12/16
- [elpa] externals/elpa eb29f7c 19/71: Close #450: always string-trim markup, João Távora, 2020/12/16
- [elpa] externals/elpa da04fdc 14/71: Close #303: support hierarchical DocumentSymbol in eglot-imenu, João Távora, 2020/12/16
- [elpa] externals/elpa 50f9a69 25/71: Fix #433: survive hover responses with empty markdown strings, João Távora, 2020/12/16
- [elpa] externals/elpa d244cc5 22/71: Per #443: tweak handling of eldoc-echo-area-use-multiline-p,
João Távora <=
- [elpa] externals/elpa e690e8c 32/71: Per #474, #478: add more tests for `eglot--guess-contact', João Távora, 2020/12/16
- [elpa] externals/elpa bb51d47 30/71: Close #409: make a test more robust, João Távora, 2020/12/16
- [elpa] externals/elpa 1cfcef4 37/71: Close #471: add support for erlang_ls, João Távora, 2020/12/16
- [elpa] externals/elpa da7ff48 31/71: Fix #468: don't call flymake report function if flymake is disabled, João Távora, 2020/12/16
- [elpa] externals/elpa e514f9e 29/71: Close #461: make CI fail if byte compiler warns, João Távora, 2020/12/16
- [elpa] externals/elpa ffe79b9 34/71: Pin pyls to 0.31.10, João Távora, 2020/12/16
- [elpa] externals/elpa b0bfbfb 38/71: Fix #488: fix type error in eglot--xref-make-match, João Távora, 2020/12/16
- [elpa] externals/elpa 3634402 36/71: Fix #479: correctly place diagnostics in narrowed buffers, João Távora, 2020/12/16
- [elpa] externals/elpa e7a43e2 40/71: Fix #480: also consider label of a CompletionItem for snippets, João Távora, 2020/12/16
- [elpa] externals/elpa a807b4f 43/71: Some test-related cleanup, João Távora, 2020/12/16