diff --git a/lisp/simple.el b/lisp/simple.el index 97f6d4837e..c2e5ff4c5a 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -119,8 +119,12 @@ next-error-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 @@ next-error-message-highlight "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