branch: elpa/rainbow-delimiters
commit f2404ef0bf22d155ff1fe2bf52f1638c4a1178c9
Author: Fanael Linithien <[email protected]>
Commit: Fanael Linithien <[email protected]>
Remove dead code.
The PPSS cache can never be inserted into in the middle, so testing whether
to insert into the middle is unnecessary.
rainbow-delimiters-syntax-ppss-run adds all the intermediate results
to the front of the cache, so it always leaves the cache in a state where
the elements are always exactly
rainbow-delimiters-parse-partial-sexp-cache-max-span apart, so there's no
gap bigger than rainbow-delimiters-parse-partial-sexp-cache-max-span to
insert into.
The before change hook always removes all elements until before the point
of the change, leaving no gap either.
The only way for a gap bigger than
rainbow-delimiters-parse-partial-sexp-cache-max-span to arise is the user
changing that variable, but that variable an implementation detail, so
worrying about it changing is like worrying about
(fset #'rainbow-delimiters-syntax-ppss-run #'ignore).
All in all, it serves only to make the code more complicated. So remove it.
---
rainbow-delimiters.el | 33 +++++++++++++--------------------
1 file changed, 13 insertions(+), 20 deletions(-)
diff --git a/rainbow-delimiters.el b/rainbow-delimiters.el
index 19940e8df2..65291bec50 100644
--- a/rainbow-delimiters.el
+++ b/rainbow-delimiters.el
@@ -284,23 +284,19 @@ The list is ordered descending by car.")
(setq it (cdr it)))
(setq rainbow-delimiters-parse-partial-sexp-cache it)))
-(defun rainbow-delimiters-syntax-ppss-run (from to oldstate
cache-nearest-after)
+(defun rainbow-delimiters-syntax-ppss-run (from to oldstate)
"Run `parse-partial-sexp' from FROM to TO starting with state OLDSTATE.
-CACHE-NEAREST-AFTER should be a list of cache entries starting at the first
-entry after TO, or nil if there's no such entry.
-Intermediate `parse-partial-sexp' results are added to the cache."
+Intermediate `parse-partial-sexp' results are prepended to the cache."
(if (= from to)
(parse-partial-sexp from to nil nil oldstate)
(while (< from to)
- (let ((newpos (min to (+ from
rainbow-delimiters-parse-partial-sexp-cache-max-span))))
- (let ((state (parse-partial-sexp from newpos nil nil oldstate)))
- (if (/= newpos to)
- (if cache-nearest-after
- (setcdr cache-nearest-after (cons (cons newpos state) (cdr
cache-nearest-after)))
- (push (cons newpos state)
rainbow-delimiters-parse-partial-sexp-cache)))
- (setq oldstate state
- from newpos))))
+ (let* ((newpos (min to (+ from
rainbow-delimiters-parse-partial-sexp-cache-max-span)))
+ (state (parse-partial-sexp from newpos nil nil oldstate)))
+ (when (/= newpos to)
+ (push (cons newpos state)
rainbow-delimiters-parse-partial-sexp-cache))
+ (setq oldstate state
+ from newpos)))
oldstate))
(defun rainbow-delimiters-syntax-ppss (pos)
@@ -313,16 +309,13 @@ upon.
This is essentialy `syntax-ppss', only specific to rainbow-delimiters
to work around a bug."
(save-excursion
- (let ((it rainbow-delimiters-parse-partial-sexp-cache)
- (prev nil))
+ (let ((it rainbow-delimiters-parse-partial-sexp-cache))
(while (and it (>= (caar it) pos))
- (setq prev it)
(setq it (cdr it)))
- (let* ((nearest-after (if (consp prev) prev nil))
- (nearest-before (if (consp it) (car it) it))
- (nearest-before-pos (if nearest-before (car nearest-before)
(point-min)))
- (nearest-before-data (if nearest-before (cdr nearest-before)
nil)))
- (rainbow-delimiters-syntax-ppss-run nearest-before-pos pos
nearest-before-data nearest-after)))))
+ (let ((nearest-before (if (consp it) (car it) it)))
+ (if nearest-before
+ (rainbow-delimiters-syntax-ppss-run (car nearest-before) pos (cdr
nearest-before))
+ (rainbow-delimiters-syntax-ppss-run (point-min) pos nil))))))
;;; Nesting level