branch: master
commit 9d18bf9fc247e7423b954d05cecdea2417dfc239
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
avy.el (avy--overlay): Fix overlays at point-max
* avy.el (avy--overlay): When an overlay is requested at `point-max',
use 'after-string overlay property instead of 'display.
Fixes #125
---
avy.el | 36 ++++++++++++++++++++----------------
1 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/avy.el b/avy.el
index 8d7e31f..6d7a139 100644
--- a/avy.el
+++ b/avy.el
@@ -634,22 +634,26 @@ When GROUP is non-nil, (BEG . END) should delimit that
regex group."
(defun avy--overlay (str beg end wnd &optional compose-fn)
"Create an overlay with STR from BEG to END in WND.
COMPOSE-FN is a lambda that concatenates the old string at BEG with STR."
- (when (<= (1+ beg) (with-selected-window wnd (point-max)))
- (let* ((beg (+ beg avy--overlay-offset))
- (ol (make-overlay beg (or end (1+ beg)) (window-buffer wnd)))
- (old-str (avy--old-str beg wnd))
- (os-line-prefix (get-text-property 0 'line-prefix old-str))
- (os-wrap-prefix (get-text-property 0 'wrap-prefix old-str)))
- (when os-line-prefix
- (add-text-properties 0 1 `(line-prefix ,os-line-prefix) str))
- (when os-wrap-prefix
- (add-text-properties 0 1 `(wrap-prefix ,os-wrap-prefix) str))
- (overlay-put ol 'window wnd)
- (overlay-put ol 'category 'avy)
- (overlay-put ol 'display (funcall
- (or compose-fn #'concat)
- str old-str))
- (push ol avy--overlays-lead))))
+ (let ((eob (with-selected-window wnd (point-max))))
+ (when (<= beg eob)
+ (let* ((beg (+ beg avy--overlay-offset))
+ (ol (make-overlay beg (or end (1+ beg)) (window-buffer wnd)))
+ (old-str (if (eq beg eob) "" (avy--old-str beg wnd)))
+ (os-line-prefix (get-text-property 0 'line-prefix old-str))
+ (os-wrap-prefix (get-text-property 0 'wrap-prefix old-str)))
+ (when os-line-prefix
+ (add-text-properties 0 1 `(line-prefix ,os-line-prefix) str))
+ (when os-wrap-prefix
+ (add-text-properties 0 1 `(wrap-prefix ,os-wrap-prefix) str))
+ (overlay-put ol 'window wnd)
+ (overlay-put ol 'category 'avy)
+ (overlay-put ol (if (eq beg eob)
+ 'after-string
+ 'display)
+ (funcall
+ (or compose-fn #'concat)
+ str old-str))
+ (push ol avy--overlays-lead)))))
(defcustom avy-highlight-first nil
"When non-nil highlight the first decision char with `avy-lead-face-0'.