* [PATCH] 28.0.50 Keep point position in *eldoc* buffer
@ 2020-11-25 20:20 Andrii Kolomoiets
2020-11-26 10:25 ` Lars Ingebrigtsen
0 siblings, 1 reply; 2+ messages in thread
From: Andrii Kolomoiets @ 2020-11-25 20:20 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 172 bytes --]
Hi,
1. emacs -Q
2. (setq
Wait for eldoc shows the message.
3. M-x eldoc-doc-buffer
The point is at the end of the text shown in the minibuffer.
Patch attached.
Thanks!
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Keep-point-position-in-eldoc-buffer.patch --]
[-- Type: text/x-patch, Size: 2900 bytes --]
From 7e995dbcbe22b95e793e64961a62346adf370af0 Mon Sep 17 00:00:00 2001
From: Andrii Kolomoiets <andreyk.mad@gmail.com>
Date: Wed, 25 Nov 2020 21:55:25 +0200
Subject: [PATCH] Keep point position in *eldoc* buffer
* list/emacs-lisp/eldoc.el (eldoc--echo-area-substring): Use 'save-excursion'
to keep point position in *eldoc* buffer
---
lisp/emacs-lisp/eldoc.el | 43 ++++++++++++++++++++++---------------------
1 file changed, 22 insertions(+), 21 deletions(-)
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index 78cb8f08c3..9f6cc65842 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -508,27 +508,28 @@ eldoc--format-doc-buffer
(defun eldoc--echo-area-substring (available)
"Given AVAILABLE lines, get buffer substring to display in echo area.
Helper for `eldoc-display-in-echo-area'."
- (let ((start (prog1 (progn
- (goto-char (point-min))
- (skip-chars-forward " \t\n")
- (point))
- (goto-char (line-end-position available))
- (skip-chars-backward " \t\n")))
- (truncated (save-excursion
- (skip-chars-forward " \t\n")
- (not (eobp)))))
- (cond ((eldoc--echo-area-prefer-doc-buffer-p truncated)
- nil)
- ((and truncated
- (> available 1)
- eldoc-echo-area-display-truncation-message)
- (goto-char (line-end-position 0))
- (concat (buffer-substring start (point))
- (format
- "\n(Documentation truncated. Use `%s' to see rest)"
- (substitute-command-keys "\\[eldoc-doc-buffer]"))))
- (t
- (buffer-substring start (point))))))
+ (save-excursion
+ (let ((start (prog1 (progn
+ (goto-char (point-min))
+ (skip-chars-forward " \t\n")
+ (point))
+ (goto-char (line-end-position available))
+ (skip-chars-backward " \t\n")))
+ (truncated (save-excursion
+ (skip-chars-forward " \t\n")
+ (not (eobp)))))
+ (cond ((eldoc--echo-area-prefer-doc-buffer-p truncated)
+ nil)
+ ((and truncated
+ (> available 1)
+ eldoc-echo-area-display-truncation-message)
+ (goto-char (line-end-position 0))
+ (concat (buffer-substring start (point))
+ (format
+ "\n(Documentation truncated. Use `%s' to see rest)"
+ (substitute-command-keys "\\[eldoc-doc-buffer]"))))
+ (t
+ (buffer-substring start (point)))))))
(defun eldoc--echo-area-prefer-doc-buffer-p (truncatedp)
"Tell if display in the echo area should be skipped.
--
2.15.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] 28.0.50 Keep point position in *eldoc* buffer
2020-11-25 20:20 [PATCH] 28.0.50 Keep point position in *eldoc* buffer Andrii Kolomoiets
@ 2020-11-26 10:25 ` Lars Ingebrigtsen
0 siblings, 0 replies; 2+ messages in thread
From: Lars Ingebrigtsen @ 2020-11-26 10:25 UTC (permalink / raw)
To: Andrii Kolomoiets; +Cc: emacs-devel
Andrii Kolomoiets <andreyk.mad@gmail.com> writes:
> 1. emacs -Q
> 2. (setq
> Wait for eldoc shows the message.
> 3. M-x eldoc-doc-buffer
>
> The point is at the end of the text shown in the minibuffer.
Makes sense to me. I've moved the save-excursion to the (only) call
point instead of altering the function, though.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-11-26 10:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-25 20:20 [PATCH] 28.0.50 Keep point position in *eldoc* buffer Andrii Kolomoiets
2020-11-26 10:25 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).