From dc06220ba064ed548956f3e1c7c167f1ae2ab56b Mon Sep 17 00:00:00 2001 From: Oleh Krehel Date: Sun, 17 May 2015 13:44:17 +0200 Subject: [PATCH] Fix the at-full style interaction with tabs * avy.el (avy--overlay-at-full): When at tab, visualize it using `tab-width' spaces. Assume the path is shorter than `tab-width'. Fixes #43 --- avy.el | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/avy.el b/avy.el index ebf558e..1838808 100644 --- a/avy.el +++ b/avy.el @@ -453,7 +453,11 @@ LEAF is normally ((BEG . END) . WND)." (setq len 1)) (let* ((end (if (= beg (line-end-position)) (1+ beg) - (min (+ beg len) (line-end-position)))) + (min (+ beg + (if (eq (char-after) ?\t) + 1 + len)) + (line-end-position)))) (ol (make-overlay beg end (current-buffer))) @@ -463,9 +467,13 @@ LEAF is normally ((BEG . END) . WND)." old-str 'face 'avy-background-face))) (overlay-put ol 'window wnd) (overlay-put ol 'category 'avy) - (overlay-put ol 'display (if (string= old-str "\n") - (concat str "\n") - str)) + (overlay-put ol 'display + (cond ((string= old-str "\n") + (concat str "\n")) + ((string= old-str "\t") + (concat str (make-string (- tab-width len) ?\ ))) + (t + str))) (push ol avy--overlays-lead)))))) (defun avy--overlay-post (path leaf)