[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master edf1259 58/78: avy.el (avy--read-candidates): Use avy-dowi
From: |
Oleh Krehel |
Subject: |
[elpa] master edf1259 58/78: avy.el (avy--read-candidates): Use avy-dowindows |
Date: |
Sat, 23 Jan 2016 14:00:15 +0000 |
branch: master
commit edf1259f2507f7512264d5f04a61f6aced8b50c1
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
avy.el (avy--read-candidates): Use avy-dowindows
Fixes #114
---
avy.el | 103 +++++++++++++++++++++++++++++++--------------------------------
1 files changed, 51 insertions(+), 52 deletions(-)
diff --git a/avy.el b/avy.el
index 0171bb4..82a20e4 100644
--- a/avy.el
+++ b/avy.el
@@ -1147,58 +1147,57 @@ The format of the result is the same as that of
`avy--regex-candidates'.
This function obeys `avy-all-windows' setting."
(let ((str "") char break overlays regex)
(unwind-protect
- (progn
- (while (and (not break)
- (setq char
- (read-char (format "char%s: "
- (if (string= str "")
- str
- (format " (%s)" str)))
- t
- (and (not (string= str ""))
- avy-timeout-seconds))))
- ;; Unhighlight
- (dolist (ov overlays)
- (delete-overlay ov))
- (setq overlays nil)
- (cond
- ;; Handle RET
- ((= char 13)
- (setq break t))
- ;; Handle DEL
- ((= char 127)
- (let ((l (length str)))
- (when (>= l 1)
- (setq str (substring str 0 (1- l))))))
- (t
- (setq str (concat str (list char)))))
- ;; Highlight
- (when (>= (length str) 1)
- (let (found)
- (dolist (win (avy-window-list))
- (with-selected-window win
- (dolist (pair (avy--find-visible-regions
- (window-start)
- (window-end (selected-window) t)))
- (save-excursion
- (goto-char (car pair))
- (setq regex (regexp-quote str))
- (while (re-search-forward regex (cdr pair) t)
- (unless (get-char-property (1- (point)) 'invisible)
- (let ((ov (make-overlay
- (match-beginning 0)
- (match-end 0))))
- (setq found t)
- (push ov overlays)
- (overlay-put ov 'window (selected-window))
- (overlay-put ov 'face
'avy-goto-char-timer-face))))))))
- ;; No matches at all, so there's surely a typo in the input.
- (unless found (beep)))))
- (nreverse (mapcar (lambda (ov)
- (cons (cons (overlay-start ov)
- (overlay-end ov))
- (overlay-get ov 'window)))
- overlays)))
+ (progn
+ (while (and (not break)
+ (setq char
+ (read-char (format "char%s: "
+ (if (string= str "")
+ str
+ (format " (%s)" str)))
+ t
+ (and (not (string= str ""))
+ avy-timeout-seconds))))
+ ;; Unhighlight
+ (dolist (ov overlays)
+ (delete-overlay ov))
+ (setq overlays nil)
+ (cond
+ ;; Handle RET
+ ((= char 13)
+ (setq break t))
+ ;; Handle DEL
+ ((= char 127)
+ (let ((l (length str)))
+ (when (>= l 1)
+ (setq str (substring str 0 (1- l))))))
+ (t
+ (setq str (concat str (list char)))))
+ ;; Highlight
+ (when (>= (length str) 1)
+ (let (found)
+ (avy-dowindows nil
+ (dolist (pair (avy--find-visible-regions
+ (window-start)
+ (window-end (selected-window) t)))
+ (save-excursion
+ (goto-char (car pair))
+ (setq regex (regexp-quote str))
+ (while (re-search-forward regex (cdr pair) t)
+ (unless (get-char-property (1- (point)) 'invisible)
+ (let ((ov (make-overlay
+ (match-beginning 0)
+ (match-end 0))))
+ (setq found t)
+ (push ov overlays)
+ (overlay-put ov 'window (selected-window))
+ (overlay-put ov 'face
'avy-goto-char-timer-face)))))))
+ ;; No matches at all, so there's surely a typo in the input.
+ (unless found (beep)))))
+ (nreverse (mapcar (lambda (ov)
+ (cons (cons (overlay-start ov)
+ (overlay-end ov))
+ (overlay-get ov 'window)))
+ overlays)))
(dolist (ov overlays)
(delete-overlay ov)))))
- [elpa] master 0166808 47/78: Beep when there are no matches, (continued)
- [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, 2016/01/23
- [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 <=
- [elpa] master 9ae4413 56/78: Fix overlays at end-of-line with visual-line-mode, Oleh Krehel, 2016/01/23
- [elpa] master f341c2f 59/78: avy.el (avy--find-visible-regions): Add bounds safety, Oleh Krehel, 2016/01/23
- [elpa] master a041429 62/78: avy.el (avy-copy-region): Obey avy-line-insert-style, Oleh Krehel, 2016/01/23
- [elpa] master 54074c7 65/78: avy.el (avy-all-windows-alt): New defcustom, Oleh Krehel, 2016/01/23
- [elpa] master 54fb4d6 61/78: avy.el (avy-line-insert-style): Customize avy-copy-line, avy-move-line, Oleh Krehel, 2016/01/23
- [elpa] master 4a23a0d 60/78: Fix De Bruijn "No catch for tag" error, Oleh Krehel, 2016/01/23
- [elpa] master 4132dd6 63/78: avy.el (avy-goto-line-above): Work in a single window, Oleh Krehel, 2016/01/23
- [elpa] master a45159a 64/78: avy.el (avy-goto-line-above): Exclude the current line, Oleh Krehel, 2016/01/23
- [elpa] master fa6d1e1 66/78: avy.el (avy-copy-region): Fix for multi-buffer use, Oleh Krehel, 2016/01/23
- [elpa] master b1a1953 67/78: Customize extra chars for avy-goto-subword-1, Oleh Krehel, 2016/01/23