GNU bug report logs -
#46119
28.0.50; this-error-recenter
Previous Next
Reported by: Tino Calancha <tino.calancha <at> gmail.com>
Date: Tue, 26 Jan 2021 21:22:01 UTC
Severity: wishlist
Tags: patch
Found in version 28.0.50
Done: Tino Calancha <tino.calancha <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #59 received at 46119 <at> debbugs.gnu.org (full text, mbox):
Juri Linkov <juri <at> jurta.org> writes:
> Would it be possible to avoid code duplication between
> next-error-no-select and recenter-current-error?
How about adding this macro?
(defmacro with-selected-locus (n &rest body)
"Visit the Nth error and execute BODY, then select the previously selected window."
(declare (indent 1) (debug (form body)))
`(save-selected-window
(let ((next-error-highlight next-error-highlight-no-select)
(display-buffer-overriding-action
'(nil (inhibit-same-window . t))))
(next-error ,n)
,@body)))
(defun next-error-no-select (&optional n)
"Move point to the next error in the `next-error' buffer and highlight match.
Prefix arg N says how many error messages to move forwards (or
backwards, if negative).
Finds and highlights the source line like \\[next-error], but does not
select the source buffer."
(interactive "p")
(with-selected-locus n))
(defun recenter-current-error (&optional arg)
"Recenter the current displayed error in the `next-error' buffer."
(interactive "P")
(with-selected-locus 0
(set-buffer (window-buffer))
(recenter-top-bottom arg)))
This bug report was last modified 4 years and 162 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.