bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#32676: [PATCH] Add option to highlight the 'next-error' error messag


From: Juri Linkov
Subject: bug#32676: [PATCH] Add option to highlight the 'next-error' error message
Date: Sat, 17 Oct 2020 23:24:14 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu)

>> I tried to add the attribute ':extend t' to the next-error-message face,
>> but it has no effect.  Maybe because currently highlighting is not added
>> to the trailing newline.  Indeed, with this patch it works:
>
> Makes sense; go ahead and apply.

Now pushed.  After a day of using it, I realized this feature paved the way
to another very useful feature: when the highlighting overlay is not removed
after going to the next occurrence, and leaves the highlighting
on all visited lines, this provides an overview what lines were
already visited, and what lines not yet visited - like visited links
are highlighted differently in browsers.  This patch builds this feature
on the top of the initial patch:

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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]