[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auto-overlays a530bba 29/93: Ensure properties due to m
From: |
Stefan Monnier |
Subject: |
[elpa] externals/auto-overlays a530bba 29/93: Ensure properties due to match overlays that are being superceded are removed from overlays. |
Date: |
Mon, 14 Dec 2020 13:00:31 -0500 (EST) |
branch: externals/auto-overlays
commit a530bbaeb0089fffeaf84f5e1439b5de0d367aad
Author: Toby Cubitt <toby-predictive@dr-qubit.org>
Commit: tsc25 <toby-predictive@dr-qubit.org>
Ensure properties due to match overlays that are being superceded are
removed from overlays.
---
auto-overlays.el | 61 +++++++++++++++++++++++++++++++++-----------------------
1 file changed, 36 insertions(+), 25 deletions(-)
diff --git a/auto-overlays.el b/auto-overlays.el
index de0a532..f4918f9 100644
--- a/auto-overlays.el
+++ b/auto-overlays.el
@@ -36,6 +36,8 @@
;; * fixed `auto-overlay-load-overlays' so that it doesn't parse matches that
;; are within higher priority exclusive overlays
;; * improved update scheduling by collapsing updates for overlapping regions
+;; * fixed `auto-o-match-overlay' to remove properties due to old matches
+;; before setting new properties
;;
;; Version 0.8.1
;; * modified `auto-o-run-after-change-functions' to cope more robustly with
@@ -1240,6 +1242,8 @@ properties)."
(let ((old-start (overlay-start overlay))
(old-end (overlay-end overlay))
+ (old-o-start (overlay-get overlay 'start))
+ (old-o-end (overlay-get overlay 'end))
(old-exclusive (overlay-get overlay 'exclusive))
(old-priority (overlay-get overlay 'priority)))
@@ -1263,32 +1267,28 @@ properties)."
((number-or-marker-p end) end)
(end (point-max))
(t (overlay-end overlay))))
- ;; sort out start and end properties
- (let (o-match)
- ;; if unmatching start...
- (when (and start (not (overlayp start)))
- (setq o-match (overlay-get overlay 'start))
- (when (and o-match (null protect-match))
- (overlay-put o-match 'parent nil))
- (overlay-put overlay 'start nil))
- ;; if unmatching end...
- (when (and end (not (overlayp end)))
- (setq o-match (overlay-get overlay 'end))
- (when (and o-match (null protect-match))
- (overlay-put o-match 'parent nil))
- (overlay-put overlay 'end nil))
- ;; if matching start...
- (when (overlayp start)
- (setq o-match (overlay-get overlay 'start))
- (when (and o-match (null protect-match))
- (overlay-put o-match 'parent nil))
+
+ ;; if changing start match...
+ (when start
+ ;; sort out parent property of old start match
+ (when (and old-o-start (null protect-match))
+ (overlay-put old-o-start 'parent nil))
+ ;; if unmatching start, set start property to nil
+ (if (null (overlayp start))
+ (overlay-put overlay 'start nil)
+ ;; if matching start, set start property to new start match
(overlay-put overlay 'start start)
- (overlay-put start 'parent overlay))
- ;; if matching end...
- (when (overlayp end)
- (setq o-match (overlay-get overlay 'end))
- (when (and o-match (null protect-match))
- (overlay-put o-match 'parent nil))
+ (overlay-put start 'parent overlay)))
+
+ ;; if changing end match...
+ (when end
+ ;; sort out parent property of old end match
+ (when (and old-o-end (null protect-match))
+ (overlay-put old-o-end 'parent nil))
+ ;; if unmatching end, set end property to nil
+ (if (null (overlayp end))
+ (overlay-put overlay 'end nil)
+ ;; if matching end, set end property to new end match
(overlay-put overlay 'end end)
(overlay-put end 'parent overlay)))
@@ -1297,6 +1297,17 @@ properties)."
;; (Note: this sometimes sets the overlay's properties to the ones it
;; already had, but it hardly seems worth checking for that)
(unless no-props
+ ;; when start was matched before and is being changed, remove properties
+ ;; due to old start match
+ (when (and start old-o-start)
+ (dolist (p (auto-o-props old-o-start))
+ (overlay-put overlay (car p) nil)))
+ ;; when end was matched before and is being changed, remove properties
+ ;; due to old end match
+ (when (and end old-o-end)
+ (dolist (p (auto-o-props old-o-end))
+ (overlay-put overlay (car p) nil)))
+ ;; sort out properties due to new matches
(let (props)
(cond
;; if start has been unmatched, use properties of end match
- [elpa] externals/auto-overlays 19de2f7 02/93: Version 0.8 of the predictive completion package., (continued)
- [elpa] externals/auto-overlays 19de2f7 02/93: Version 0.8 of the predictive completion package., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 6c24aa3 10/93: Fixed minor bug in auto-overlay-save-overlays., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 36efcfd 89/93: Handle empty group in auto-o-regexp-match., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 5996143 73/93: Refactor auto-overlays-(in|[highest-priority-]at-point) search functions:, Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays c795dc2 81/93: Fix bug in auto-overlay-trigger-update., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 00fb155 91/93: * auto-overlay: Mark or remove unused vars, Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays d207912 93/93: * docs/auto-overlay-manual.texinfo: Move as a consequence of the git split, Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 0f1ee97 08/93: Version 0.12.2 of the predictive completion package., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 5b53236 09/93: Version 0.13.1 of the predictive completion package., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 2fabf34 19/93: Various small enhancements and bug-fixes, Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays a530bba 29/93: Ensure properties due to match overlays that are being superceded are removed from overlays.,
Stefan Monnier <=
- [elpa] externals/auto-overlays 8108af9 33/93: Replaced a couple of cl functions that had crept in., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays b08e944 23/93: Changes related to new LaTeX functionality:, Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 5db4a85 32/93: Fixed bug in auto-o-match-overlay that incorrectly set parent property, Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 67776d2 25/93: Parse functions must set basic overlay properties themselves, Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays c40d2a5 20/93: Shared regexp sets can once again be enabled and disabled independently in each buffer., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 105a69b 34/93: Simplified predictive-define-all-prefixes., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays a21ba4b 44/93: Fix auto-overlay bug related to overlapping overlays., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays dbf21cb 47/93: minor corrections auto-overlay docs, Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays f268d75 42/93: Fixed bug in auto-overlay-unload-definition., Stefan Monnier, 2020/12/14
- [elpa] externals/auto-overlays 9448575 40/93: Updated documentation to reflect changes to auto-overlay-start/stop/save/load functions., Stefan Monnier, 2020/12/14