branch: master
commit 02bf35b6a095100b7b88dc099765534e448823af
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
Modify `at-full' and `de-bruijn' overlays to color depth
* avy.el (avy-lead-face-2): New face.
(avy-lead-faces): New defconst. Each element will be used to color the
corresponding depth.
(avy--overlay-at-full): Use `avy-lead-faces' to represent the current
decision depth. For `de-bruijn', prepend the old stuff, so that nothing
moves.
Fixes #53
---
avy.el | 24 ++++++++++++++++++++++--
1 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/avy.el b/avy.el
index 11b724e..427378d 100644
--- a/avy.el
+++ b/avy.el
@@ -142,6 +142,10 @@ Typically, these modes don't use the text representation.")
'((t (:foreground "white" :background "gray")))
"Face used for matched leading chars.")
+(defface avy-lead-face-2
+ '((t (:foreground "white" :background "#f86bf3")))
+ "Face used for leading chars.")
+
(defface avy-lead-face
'((t (:foreground "white" :background "#e52b50")))
"Face used for the leading chars.")
@@ -150,6 +154,14 @@ Typically, these modes don't use the text representation.")
'((t (:foreground "gray40")))
"Face for whole window background during selection.")
+(defconst avy-lead-faces '(avy-lead-face
+ avy-lead-face-0
+ avy-lead-face-2
+ avy-lead-face
+ avy-lead-face-0
+ avy-lead-face-2)
+ "Face sequence for `avy--overlay-at-full'.")
+
;;* Internals
;;** Tree
(defmacro avy-multipop (lst n)
@@ -566,8 +578,16 @@ LEAF is normally ((BEG . END) . WND)."
(car leaf)))
(wnd (cdr leaf))
oov)
- (when (or avy-highlight-first (> (length str) 1))
- (set-text-properties 0 1 '(face avy-lead-face-0) str))
+ (dotimes (i len)
+ (set-text-properties (- len i 1) (- len i)
+ `(face ,(nth i avy-lead-faces))
+ str))
+ (when (eq avy-style 'de-bruijn)
+ (setq str (concat
+ (propertize avy-current-path
+ 'face 'avy-lead-face-1)
+ str))
+ (setq len (length str)))
(with-selected-window wnd
(save-excursion
(goto-char beg)