emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master cd6583b 04/17: avy-jump.el (avi-all-windows): New defcusto


From: Oleh Krehel
Subject: [elpa] master cd6583b 04/17: avy-jump.el (avi-all-windows): New defcustom
Date: Fri, 08 May 2015 13:43:39 +0000

branch: master
commit cd6583be1113fca16e77e1308b3503ab409885cc
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    avy-jump.el (avi-all-windows): New defcustom
    
    * avy-jump.el (avi--regex-candidates): When `avi-all-windows' is
      non-nil, use all windows instead of just the current.
---
 avy-jump.el |   35 ++++++++++++++++++++---------------
 1 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/avy-jump.el b/avy-jump.el
index 60f4f25..3d45065 100644
--- a/avy-jump.el
+++ b/avy-jump.el
@@ -75,25 +75,30 @@ POS is either a position or (BEG . END)."
                       #'aw--remove-leading-chars))))
     (aw--done)))
 
+(defcustom avi-all-windows t
+  "When non-nil, loop though all windows for candidates."
+  :type 'boolean)
+
 (defun avi--regex-candidates (regex &optional wnd beg end pred)
   "Return all elements that match REGEX in WND.
 Each element of the list is ((BEG . END) . WND)
 When PRED is non-nil, it's a filter for matching point positions."
-  (setq wnd (or wnd (selected-window)))
-  (let ((we (or end (window-end (selected-window) t)))
-        candidates)
-    (save-window-excursion
-      (select-window wnd)
-      (save-excursion
-        (goto-char (or beg (window-start)))
-        (while (re-search-forward regex we t)
-          (unless (get-char-property (point) 'invisible)
-            (when (or (null pred)
-                      (funcall pred))
-              (push (cons (cons (match-beginning 0)
-                                (match-end 0))
-                          wnd) candidates)))))
-      (nreverse candidates))))
+  (let (candidates)
+    (dolist (wnd (if avi-all-windows
+                     (window-list)
+                   (list (selected-window))))
+      (with-selected-window wnd
+        (let ((we (or end (window-end (selected-window) t))))
+          (save-excursion
+            (goto-char (or beg (window-start)))
+            (while (re-search-forward regex we t)
+              (unless (get-char-property (point) 'invisible)
+                (when (or (null pred)
+                          (funcall pred))
+                  (push (cons (cons (match-beginning 0)
+                                    (match-end 0))
+                              wnd) candidates))))))))
+    (nreverse candidates)))
 
 (defvar avi--overlay-offset 0
   "The offset to apply in `avi--overlay'.")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]