]> git.eshelyaron.com Git - emacs.git/commitdiff
Add new choice 'keep' to next-error-message-highlight (bug#32676)
authorJuri Linkov <juri@linkov.net>
Sun, 18 Oct 2020 20:37:57 +0000 (23:37 +0300)
committerJuri Linkov <juri@linkov.net>
Sun, 18 Oct 2020 20:37:57 +0000 (23:37 +0300)
* lisp/simple.el (next-error-message-highlight): Add new choice 'keep'.
(next-error-message-highlight): Don't delete overlay when option is 'keep'.

etc/NEWS
lisp/simple.el

index 64758d455a0547112615c57e32ed812c8bf6b0e6..b61bf176a47fcae38cfe29d5a69d5af2c513789e 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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'.
index d6fce922c4c609d6c1e7aa0cef336d44ffcf8765..a29f85b3c367c1151400f4862c33a5b71744dbfc 100644 (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