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

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

[nongnu] elpa/symbol-overlay 72ff963a0f 4/4: Merge pull request #97 from


From: ELPA Syncer
Subject: [nongnu] elpa/symbol-overlay 72ff963a0f 4/4: Merge pull request #97 from tarsiiformes/non-random
Date: Wed, 3 May 2023 07:03:52 -0400 (EDT)

branch: elpa/symbol-overlay
commit 72ff963a0f44497b6cc688607357ee65c68ecc84
Merge: 6f7130ec71 1677554c12
Author: Steve Purcell <steve@sanityinc.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #97 from tarsiiformes/non-random
    
    Use symbol-overlay-faces in order, reuse last face if needed
---
 symbol-overlay.el | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/symbol-overlay.el b/symbol-overlay.el
index 252633b0c5..0bdc051dd9 100644
--- a/symbol-overlay.el
+++ b/symbol-overlay.el
@@ -382,22 +382,18 @@ Otherwise apply `symbol-overlay-default-face'."
 
 (defun symbol-overlay-put-all (symbol scope &optional keyword)
   "Put overlays on all occurrences of SYMBOL in the buffer.
-The face is randomly picked from `symbol-overlay-faces'.
+The face is picked from `symbol-overlay-faces'.
 If SCOPE is non-nil, put overlays only on occurrences in scope.
 If KEYWORD is non-nil, remove it then use its color on new overlays."
   (when symbol-overlay-temp-symbol
     (symbol-overlay-remove-temp))
   (let* ((case-fold-search nil)
-         (limit (length symbol-overlay-faces))
-         (face (or (symbol-overlay-maybe-remove keyword)
-                   (elt symbol-overlay-faces (random limit))))
-         (alist symbol-overlay-keywords-alist)
-         (faces (mapcar #'cddr alist)))
-    (if (< (length alist) limit)
-        (while (seq-position faces face)
-          (setq face (elt symbol-overlay-faces (random limit))))
-      (setq face (symbol-overlay-maybe-remove (car (last alist)))))
-    (and symbol-overlay-temp-symbol (symbol-overlay-remove-temp))
+         (face (or (car (cl-set-difference
+                         symbol-overlay-faces
+                         (mapcar #'cddr symbol-overlay-keywords-alist)))
+                   ;; If we have exhausted the available faces, then just
+                   ;; keep using the last face for all subsequent symbols.
+                   (car (last symbol-overlay-faces)))))
     (save-excursion
       (save-restriction
         (symbol-overlay-narrow scope)



reply via email to

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