[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 2d07a49 50/78: Make avy--overlay-at use avy--overlay
From: |
Oleh Krehel |
Subject: |
[elpa] master 2d07a49 50/78: Make avy--overlay-at use avy--overlay |
Date: |
Sat, 23 Jan 2016 14:00:09 +0000 |
branch: master
commit 2d07a49f7fb88f068e0411988f59102600511318
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
Make avy--overlay-at use avy--overlay
* avy.el (avy--overlay): Add optional COMPOSE-FN argument.
(avy--overlay-at): Use `avy--overlay'.
---
avy.el | 35 +++++++++++++++++++----------------
1 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/avy.el b/avy.el
index 61dac3a..c321482 100644
--- a/avy.el
+++ b/avy.el
@@ -621,8 +621,9 @@ When GROUP is non-nil, (BEG . END) should delimit that
regex group."
(propertize old-str 'face 'avy-background-face)
old-str)))
-(defun avy--overlay (str pt wnd)
- "Create an overlay with STR at PT in WND."
+(defun avy--overlay (str pt wnd &optional compose-fn)
+ "Create an overlay with STR at PT in WND.
+COMPOSE-FN is a lambda that concatenates the old string at PT with STR."
(when (<= (1+ pt) (with-selected-window wnd (point-max)))
(let* ((pt (+ pt avy--overlay-offset))
(ol (make-overlay pt (1+ pt) (window-buffer wnd)))
@@ -634,7 +635,9 @@ When GROUP is non-nil, (BEG . END) should delimit that
regex group."
(when os-wrap-prefix
(add-text-properties 0 1 `(wrap-prefix ,os-wrap-prefix) str))
(overlay-put ol 'window wnd)
- (overlay-put ol 'display (concat str old-str))
+ (overlay-put ol 'display (funcall
+ (or compose-fn #'concat)
+ str old-str))
(push ol avy--overlays-lead))))
(defcustom avy-highlight-first nil
@@ -698,19 +701,19 @@ LEAF is normally ((BEG . END) . WND)."
(let* ((path (mapcar #'avy--key-to-char path))
(str (propertize
(string (car (last path)))
- 'face 'avy-lead-face))
- (pt (+ (avy-candidate-beg leaf) avy--overlay-offset))
- (wnd (cdr leaf))
- (ol (make-overlay pt (1+ pt) (window-buffer wnd)))
- (old-str (avy--old-str pt wnd)))
- (overlay-put ol 'window wnd)
- (overlay-put ol 'display (if (string= old-str "\n")
- (concat str "\n")
- ;; add padding for wide-width character
- (if (eq (string-width old-str) 2)
- (concat str " ")
- str)))
- (push ol avy--overlays-lead)))
+ 'face 'avy-lead-face)))
+ (avy--overlay
+ str
+ (avy-candidate-beg leaf)
+ (avy-candidate-wnd leaf)
+ (lambda (str old-str)
+ (cond ((string= old-str "\n")
+ (concat str "\n"))
+ ;; add padding for wide-width character
+ ((eq (string-width old-str) 2)
+ (concat str " "))
+ (t
+ str))))))
(defun avy--overlay-at-full (path leaf)
"Create an overlay with PATH at LEAF.
- [elpa] master 70bd6ce 36/78: Search only in the visible region, (continued)
- [elpa] master 70bd6ce 36/78: Search only in the visible region, Oleh Krehel, 2016/01/23
- [elpa] master f7ddd4b 39/78: Fix jumping to the last char of a folded Org outline, Oleh Krehel, 2016/01/23
- [elpa] master 528125e 40/78: avy.el (avy--process): Add window to candidates if not present, Oleh Krehel, 2016/01/23
- [elpa] master df181f1 44/78: avy.el (avy--read-candidates): Use avy-window-list, Oleh Krehel, 2016/01/23
- [elpa] master 964664c 45/78: Fix jumping to the last char of a folded Org outline, Oleh Krehel, 2016/01/23
- [elpa] master 0a18a45 43/78: avy.el (avy--read-candidates): Fix reverse order, Oleh Krehel, 2016/01/23
- [elpa] master 513c429 41/78: Make avy-goto-char-timer faster for org-mode, Oleh Krehel, 2016/01/23
- [elpa] master f28d238 46/78: Fix for combined org-indent-mode and visual-line-mode, Oleh Krehel, 2016/01/23
- [elpa] master 2313410 42/78: Optimize avy-goto-char-timer, Oleh Krehel, 2016/01/23
- [elpa] master 0166808 47/78: Beep when there are no matches, Oleh Krehel, 2016/01/23
- [elpa] master 2d07a49 50/78: Make avy--overlay-at use avy--overlay,
Oleh Krehel <=
- [elpa] master cf36a59 48/78: avy.el (avy--old-str): New defun., Oleh Krehel, 2016/01/23
- [elpa] master 3257d81 49/78: Add avy-candidate-* helper functions, Oleh Krehel, 2016/01/23
- [elpa] master 13377d9 51/78: avy.el (avy--update-offset-and-str): Split from avy--overlay-at-full, Oleh Krehel, 2016/01/23
- [elpa] master d4b693f 52/78: avy.el (avy--overlay): Take BEG END, instead of only BEG, Oleh Krehel, 2016/01/23
- [elpa] master 567570a 54/78: Fix 'at-full moving text when visual-line-mode is on, Oleh Krehel, 2016/01/23
- [elpa] master 0756c0b 53/78: avy.el (avy--overlay-at-full): Use avy--overlay, Oleh Krehel, 2016/01/23
- [elpa] master 1b78fb0 57/78: Improve the faces for the last change, Oleh Krehel, 2016/01/23
- [elpa] master dddce37 55/78: Fix 'at-full moving text for chars near end of visual line, Oleh Krehel, 2016/01/23
- [elpa] master edf1259 58/78: avy.el (avy--read-candidates): Use avy-dowindows, Oleh Krehel, 2016/01/23
- [elpa] master 9ae4413 56/78: Fix overlays at end-of-line with visual-line-mode, Oleh Krehel, 2016/01/23