branch: master commit 02bf35b6a095100b7b88dc099765534e448823af Author: Oleh Krehel <ohwoeo...@gmail.com> Commit: Oleh Krehel <ohwoeo...@gmail.com>
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)