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

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

[elpa] master 70e384a 073/110: avy.el (avy--process-1): Extract


From: Oleh Krehel
Subject: [elpa] master 70e384a 073/110: avy.el (avy--process-1): Extract
Date: Sat, 11 May 2019 10:15:47 -0400 (EDT)

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

    avy.el (avy--process-1): Extract
---
 avy.el | 89 +++++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 47 insertions(+), 42 deletions(-)

diff --git a/avy.el b/avy.el
index 8dd73e2..df4ad49 100644
--- a/avy.el
+++ b/avy.el
@@ -725,6 +725,29 @@ Set `avy-style' according to COMMMAND as well."
          (when (looking-at-p "\\b")
            (ispell-word)))))))
 
+(defun avy--process-1 (candidates overlay-fn)
+  (let ((len (length candidates)))
+    (cond ((= len 0)
+           nil)
+          ((= len 1)
+           (car candidates))
+          (t
+           (unwind-protect
+                (progn
+                  (avy--make-backgrounds
+                   (avy-window-list))
+                  (cond ((eq avy-style 'de-bruijn)
+                         (avy-read-de-bruijn
+                          candidates avy-keys))
+                        ((eq avy-style 'words)
+                         (avy-read-words
+                          candidates avy-words))
+                        (t
+                         (avy-read (avy-tree candidates avy-keys)
+                                   overlay-fn
+                                   #'avy--remove-leading-chars))))
+             (avy--done))))))
+
 (defun avy--process (candidates overlay-fn)
   "Select one of CANDIDATES using `avy-read'.
 Use OVERLAY-FN to visualize the decision overlay."
@@ -733,48 +756,30 @@ Use OVERLAY-FN to visualize the decision overlay."
     (setq candidates
           (mapcar (lambda (x) (cons x (selected-window)))
                   candidates)))
-  (let ((len (length candidates))
-        res)
-    (if (= len 0)
-        (progn
-          (message "zero candidates")
-          t)
-      (if (= len 1)
-          (setq res (car candidates))
-        (unwind-protect
-             (progn
-               (avy--make-backgrounds
-                (avy-window-list))
-               (setq res (cond ((eq avy-style 'de-bruijn)
-                                (avy-read-de-bruijn
-                                 candidates avy-keys))
-                               ((eq avy-style 'words)
-                                (avy-read-words
-                                 candidates avy-words))
-                               (t
-                                (avy-read (avy-tree candidates avy-keys)
-                                          overlay-fn
-                                          #'avy--remove-leading-chars)))))
-          (avy--done)))
-      (cond ((eq res 'restart)
-             (avy--process candidates overlay-fn))
-            ;; ignore exit from `avy-handler-function'
-            ((eq res 'exit))
-            (t
-             (avy-push-mark)
-             (when (and (consp res)
-                        (windowp (cdr res)))
-               (let* ((window (cdr res))
-                      (frame (window-frame window)))
-                 (unless (equal frame (selected-frame))
-                   (select-frame-set-input-focus frame))
-                 (select-window window))
-               (setq res (car res)))
-
-             (funcall (or avy-action 'avy-action-goto)
-                      (if (consp res)
-                          (car res)
-                        res)))))))
+  (let ((res (avy--process-1 candidates overlay-fn)))
+    (cond
+      ((null res)
+       (message "zero candidates")
+       t)
+      ((eq res 'restart)
+       (avy--process candidates overlay-fn))
+      ;; ignore exit from `avy-handler-function'
+      ((eq res 'exit))
+      (t
+       (avy-push-mark)
+       (when (and (consp res)
+                  (windowp (cdr res)))
+         (let* ((window (cdr res))
+                (frame (window-frame window)))
+           (unless (equal frame (selected-frame))
+             (select-frame-set-input-focus frame))
+           (select-window window))
+         (setq res (car res)))
+
+       (funcall (or avy-action 'avy-action-goto)
+                (if (consp res)
+                    (car res)
+                  res))))))
 
 (defvar avy--overlays-back nil
   "Hold overlays for when `avy-background' is t.")



reply via email to

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