[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/rainbow-delimiters 447293003b 069/188: Highlight correctly
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/rainbow-delimiters 447293003b 069/188: Highlight correctly even in presence of these evil 'intangible' properties. |
Date: |
Sat, 1 Jan 2022 00:58:53 -0500 (EST) |
branch: elpa/rainbow-delimiters
commit 447293003b01900f4f6d211a524a13485e479f23
Author: Fanael Linithien <fanael4@gmail.com>
Commit: Fanael Linithien <fanael4@gmail.com>
Highlight correctly even in presence of these evil 'intangible' properties.
---
rainbow-delimiters.el | 70 ++++++++++++++++++++++++++-------------------------
1 file changed, 36 insertions(+), 34 deletions(-)
diff --git a/rainbow-delimiters.el b/rainbow-delimiters.el
index f95129afdc..46cdc55fa2 100644
--- a/rainbow-delimiters.el
+++ b/rainbow-delimiters.el
@@ -567,47 +567,49 @@ Used by jit-lock for dynamic highlighting."
(save-excursion
(with-syntax-table rainbow-delimiters-syntax-table
(with-silent-modifications
- (goto-char start)
- ;; START can be anywhere in buffer; determine the nesting depth at
START loc
- (let ((depth (rainbow-delimiters-depth start)))
- (while (and (< (point) end)
- (re-search-forward rainbow-delimiters-delim-regex end t))
- (backward-char) ; re-search-forward places point after delim; go
back.
- (let ((ppss (rainbow-delimiters-syntax-ppss (point))))
- (unless (rainbow-delimiters-char-ineligible-p (point) ppss)
- (let* ((delim (char-after (point)))
- (opening-delim-info
- (assq delim rainbow-delimiters-opening-delim-info)))
- (if opening-delim-info
- (progn
- (setq depth (1+ depth))
- (rainbow-delimiters-apply-color (cdr
opening-delim-info)
+ (let ((inhibit-point-motion-hooks t))
+ (goto-char start)
+ ;; START can be anywhere in buffer; determine the nesting depth at
START loc
+ (let ((depth (rainbow-delimiters-depth start)))
+ (while (and (< (point) end)
+ (re-search-forward rainbow-delimiters-delim-regex end
t))
+ (backward-char) ; re-search-forward places point after delim; go
back.
+ (let ((ppss (rainbow-delimiters-syntax-ppss (point))))
+ (unless (rainbow-delimiters-char-ineligible-p (point) ppss)
+ (let* ((delim (char-after (point)))
+ (opening-delim-info
+ (assq delim rainbow-delimiters-opening-delim-info)))
+ (if opening-delim-info
+ (progn
+ (setq depth (1+ depth))
+ (rainbow-delimiters-apply-color (cdr
opening-delim-info)
+ depth
+ (point)
+ t))
+ ;; Not an opening delimiters, so it's a closing
delimiter.
+ (let ((closing-delim-info
+ (assq delim
rainbow-delimiters-closing-delim-info))
+ (matching-opening-delim (char-after (nth 1 ppss))))
+ (rainbow-delimiters-apply-color (nthcdr 2
closing-delim-info)
depth
(point)
- t))
- ;; Not an opening delimiters, so it's a closing delimiter.
- (let ((closing-delim-info
- (assq delim rainbow-delimiters-closing-delim-info))
- (matching-opening-delim (char-after (nth 1 ppss))))
- (rainbow-delimiters-apply-color (nthcdr 2
closing-delim-info)
- depth
- (point)
- (= (nth 1
closing-delim-info)
-
matching-opening-delim))
- (setq depth (or (and (<= depth 0) 0) ; unmatched delim
- (1- depth))))))))
- ;; move past delimiter so re-search-forward doesn't pick it up
again
- (forward-char)))))))
+ (= (nth 1
closing-delim-info)
+
matching-opening-delim))
+ (setq depth (or (and (<= depth 0) 0) ; unmatched delim
+ (1- depth))))))))
+ ;; move past delimiter so re-search-forward doesn't pick it up
again
+ (forward-char))))))))
(defun rainbow-delimiters-unpropertize-region (start end)
"Remove highlighting from delimiters between START and END."
(save-excursion
(with-silent-modifications
- (goto-char start)
- (while (and (< (point) end)
- (re-search-forward rainbow-delimiters-delim-regex end t))
- ;; re-search-forward places point 1 further than the delim matched:
- (rainbow-delimiters-unpropertize-delimiter (1- (point)))))))
+ (let ((inhibit-point-motion-hooks t))
+ (goto-char start)
+ (while (and (< (point) end)
+ (re-search-forward rainbow-delimiters-delim-regex end t))
+ ;; re-search-forward places point 1 further than the delim matched:
+ (rainbow-delimiters-unpropertize-delimiter (1- (point))))))))
;;; Minor mode:
- [nongnu] elpa/rainbow-delimiters b9252e33d2 057/188: Remove unneeded require., (continued)
- [nongnu] elpa/rainbow-delimiters b9252e33d2 057/188: Remove unneeded require., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters b656f8c9cd 064/188: Wrap rainbow-delimiters-{un, }propertize-region with with-silent-modifications and with-syntax-table., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters a1dd352c1a 059/188: Fix docstring style errors reported by checkdoc., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 3dfd3fa9b1 054/188: Use sorted-list caching to improve large-file performance, ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters fc70c7ec67 058/188: Use standard form of the footer comment., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 949078cfd7 042/188: Ignoring compiled files, ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters ee4519d20a 046/188: Use face symbols instead of face strings to better cooperate with htmlize., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 36df2e014c 067/188: Add code to highlight mismatched closing delimiters., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters c4c127992a 071/188: Use font-lock instead of jit-lock., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 4144a75120 070/188: Add lisp-interaction-mode to rainbow-delimiters-escaped-char-predicate-list., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 447293003b 069/188: Highlight correctly even in presence of these evil 'intangible' properties.,
ELPA Syncer <=
- [nongnu] elpa/rainbow-delimiters f73763583c 077/188: Remove unneeded save-excursion., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters edf59bad7f 165/188: Move the usage instructions from installation to commentary., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 352b4f2bfe 177/188: No need to set inhibit-point-motion-hooks, ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters b316b7f49d 130/188: Make the MELPA Stable link actually point at MELPA Stable., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 8012604ea9 132/188: Add maintainership information., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters fb54c05ba0 095/188: Don't enable in special RefTeX modes, ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters f116221d42 076/188: Simplify the logic in rainbow-delimiters-propertize a little..., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 6df71dba8f 091/188: Release version 1.3.11., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 5459aa4c6a 102/188: Simplify rainbow-delimiters-delim-regex., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 756fd642fa 103/188: Release version 1.3.12., ELPA Syncer, 2022/01/01