emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[nongnu] elpa/macrostep 424e373 110/110: Merge pull request #16 from fic


From: ELPA Syncer
Subject: [nongnu] elpa/macrostep 424e373 110/110: Merge pull request #16 from fice-t/master
Date: Sat, 7 Aug 2021 09:18:13 -0400 (EDT)

branch: elpa/macrostep
commit 424e3734a1ee526a1bd7b5c3cd1d3ef19d184267
Merge: 2d216ba 29fd924
Author: Jon Oddie <jonxfield@gmail.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #16 from fice-t/master
    
    Move overlay face to a different overlay
---
 macrostep.el | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/macrostep.el b/macrostep.el
index 1b8795e..297d549 100644
--- a/macrostep.el
+++ b/macrostep.el
@@ -602,14 +602,18 @@ behaviors."
                 (macrostep-collapse-overlays-in (point) end)
                 (delete-region (point) end)
                 ;; Create a new overlay
-                (let ((overlay
-                       (make-overlay start
-                                     (if (looking-at "\n")
-                                         (1+ (point))
-                                       (point)))))
+                (let* ((overlay
+                        (make-overlay start
+                                      (if (looking-at "\n")
+                                          (1+ (point))
+                                        (point))))
+                       (highlight-overlay (unless macrostep-expansion-buffer
+                                            (copy-overlay overlay))))
                   (unless macrostep-expansion-buffer
                     ;; Highlight the overlay in original source buffers only
-                    (overlay-put overlay 'face 
'macrostep-expansion-highlight-face))
+                    (overlay-put highlight-overlay 'face 
'macrostep-expansion-highlight-face)
+                    (overlay-put highlight-overlay 'priority -1)
+                    (overlay-put overlay 'macrostep-highlight-overlay 
highlight-overlay))
                   (overlay-put overlay 'priority priority)
                   (overlay-put overlay 'macrostep-original-text text)
                   (overlay-put overlay 'macrostep-gensym-depth 
macrostep-gensym-depth)
@@ -708,6 +712,8 @@ Also removes the overlay from `macrostep-overlays'."
     ;; Remove overlay from the list and delete it
     (setq macrostep-overlays
           (delq overlay macrostep-overlays))
+    (let ((highlight-overlay (overlay-get overlay 
'macrostep-highlight-overlay)))
+      (when highlight-overlay (delete-overlay highlight-overlay)))
     (delete-overlay overlay)))
 
 (defun macrostep-collapse-overlays-in (start end)
@@ -715,10 +721,11 @@ Also removes the overlay from `macrostep-overlays'."
 
 Will not collapse overlays that begin at START and end at END."
   (dolist (ol (overlays-in start end))
-    (if (and (> (overlay-start ol) start)
-            (< (overlay-end ol) end)
-            (overlay-get ol 'macrostep-original-text))
-       (macrostep-collapse-overlay ol t))))
+    (when (and (overlay-buffer ol)        ; collapsing may delete other 
overlays
+               (> (overlay-start ol) start)
+               (< (overlay-end ol) end)
+               (overlay-get ol 'macrostep-original-text))
+      (macrostep-collapse-overlay ol t))))
 
 
 ;;; Emacs Lisp implementation



reply via email to

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