Add new choice 'keep' to next-error-message-highlight (bug#32676)

* lisp/simple.el (next-error-message-highlight): Add new choice 'keep'.
(next-error-message-highlight): Don't delete overlay when option is 'keep'.
This commit is contained in:
Juri Linkov 2020-10-18 23:37:57 +03:00
parent 6da62d612e
commit 34eb99d7ba
2 changed files with 10 additions and 3 deletions

View file

@ -1185,6 +1185,8 @@ be done (and this restores how this previously worked).
*** New user option 'next-error-message-highlight'.
In addition to a fringe arrow, 'next-error' error may now optionally
highlight the current error message in the 'next-error' buffer.
This user option can be also customized to keep highlighting on all
visited errors, so you can have an overview what errors were already visited.
+++
*** New user option 'tab-first-completion'.

View file

@ -119,8 +119,12 @@ If non-nil, the value is passed directly to `recenter'."
:version "23.1")
(defcustom next-error-message-highlight nil
"If non-nil, highlight the current error message in the `next-error' buffer."
:type 'boolean
"If non-nil, highlight the current error message in the `next-error' buffer.
If the value is `keep', highlighting is permanent, so all visited error
messages are highlighted; this helps to see what messages were visited."
:type '(choice (const :tag "Highlight the current error" t)
(const :tag "Highlight all visited errors" keep)
(const :tag "No highlighting" nil))
:group 'next-error
:version "28.1")
@ -482,7 +486,8 @@ buffer causes automatic display of the corresponding source code location."
"Highlight the current error message in the next-error buffer."
(when next-error-message-highlight
(with-current-buffer error-buffer
(when next-error--message-highlight-overlay
(when (and next-error--message-highlight-overlay
(not (eq next-error-message-highlight 'keep)))
(delete-overlay next-error--message-highlight-overlay))
(let ((ol (make-overlay (line-beginning-position) (1+ (line-end-position)))))
;; do not override region highlighting