[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ivy-explorer c8c6485 1/7: Let ivy-explorer-avy continue
From: |
Clemens Radermacher |
Subject: |
[elpa] externals/ivy-explorer c8c6485 1/7: Let ivy-explorer-avy continue when entering directories |
Date: |
Wed, 16 Jan 2019 10:08:25 -0500 (EST) |
branch: externals/ivy-explorer
commit c8c6485bd87593d738f5adb56fdc689dd94d2335
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>
Let ivy-explorer-avy continue when entering directories
---
ivy-explorer.el | 113 +++++++++++++++++++++++++++++---------------------------
1 file changed, 59 insertions(+), 54 deletions(-)
diff --git a/ivy-explorer.el b/ivy-explorer.el
index fd3077d..607222b 100644
--- a/ivy-explorer.el
+++ b/ivy-explorer.el
@@ -207,61 +207,66 @@ Even for the same string.")
(defun ivy-explorer-avy (&optional action)
"Jump to one of the current candidates using `avy'.
-If called from code ACTION is the action to trigger afterwards."
+Files are opened and directories will be entered. When entering a
+directory `avy' is invoked again. Users can exit this navigation
+style with C-g.
+
+If called from code ACTION is the action to trigger afterwards,
+in this case `avy' is not invoked again."
(interactive)
- (with-selected-window (ivy-explorer--lv)
- (unless (require 'avy nil 'noerror)
- (error "Package avy isn't installed"))
- (let* ((avy-all-windows nil)
- (avy-keys (or (cdr (assq 'ivy-avy avy-keys-alist))
- avy-keys))
- (avy-style (or (cdr (assq 'ivy-avy
- avy-styles-alist))
- avy-style))
- (count 0)
- (candidate
- (let ((candidates))
- (save-excursion
- (save-restriction
- (narrow-to-region
- (window-start)
- (window-end))
- (goto-char (point-min))
- ;; ignore the first candidate if at ./
- ;; this command is meant to be used for navigation
- ;; navigate to same folder you are in makes no sense
- (unless (looking-at "./")
- (push (cons (point)
- (selected-window))
- candidates)
- (put-text-property
- (point) (1+ (point)) 'ivy-explorer-count count))
- (goto-char
- (or (next-single-property-change
- (point) 'mouse-face)
- (point-max)))
- (while (< (point) (point-max))
- (unless (looking-at "[[:blank:]\r\n]\\|\\'")
- (cl-incf count)
- (put-text-property
- (point) (1+ (point)) 'ivy-explorer-count count)
- (push
- (cons (point)
- (selected-window))
- candidates))
- (goto-char
- (or (next-single-property-change
- (point)
- 'mouse-face)
- (point-max))))))
- (setq avy-action #'identity)
- (avy--process
- (nreverse candidates)
- (avy--style-fn avy-style)))))
- (when (number-or-marker-p candidate)
- (ivy-set-index
- (get-text-property candidate 'ivy-explorer-count))
- (run-at-time 0 nil (or action 'ivy-alt-done))))))
+ (when (with-selected-window (ivy-explorer--lv)
+ (unless (require 'avy nil 'noerror)
+ (error "Package avy isn't installed"))
+ (let* ((avy-all-windows nil)
+ (avy-keys (or (cdr (assq 'ivy-avy avy-keys-alist))
+ avy-keys))
+ (avy-style (or (cdr (assq 'ivy-avy
+ avy-styles-alist))
+ avy-style))
+ (count 0)
+ (candidate
+ (let ((candidates))
+ (save-excursion
+ (goto-char (point-min))
+ ;; ignore the first candidate if at ./
+ ;; this command is meant to be used for navigation
+ ;; navigate to same folder you are in makes no sense
+ (unless (looking-at "./")
+ (push (cons (point)
+ (selected-window))
+ candidates)
+ (put-text-property
+ (point) (1+ (point)) 'ivy-explorer-count count))
+ (goto-char
+ (or (next-single-property-change
+ (point) 'mouse-face)
+ (point-max)))
+ (while (< (point) (point-max))
+ (unless (looking-at "[[:blank:]\r\n]\\|\\'")
+ (cl-incf count)
+ (put-text-property
+ (point) (1+ (point)) 'ivy-explorer-count count)
+ (push
+ (cons (point)
+ (selected-window))
+ candidates))
+ (goto-char
+ (or (next-single-property-change
+ (point)
+ 'mouse-face)
+ (point-max)))))
+ (setq avy-action #'identity)
+ (avy--process
+ (nreverse candidates)
+ (avy--style-fn avy-style)))))
+ (when (number-or-marker-p candidate)
+ (prog1 candidate
+ (ivy-set-index
+ (get-text-property candidate 'ivy-explorer-count))))))
+ (ivy--exhibit)
+ (funcall (or action #'ivy-alt-done))
+ (unless action
+ (ivy-explorer-avy))))
;; adapted from ivy-hydra
- [elpa] externals/ivy-explorer updated (0b1d286 -> be8008b), Clemens Radermacher, 2019/01/16
- [elpa] externals/ivy-explorer 7114ebe 2/7: Move to candidate which was current on exit when entering dired, Clemens Radermacher, 2019/01/16
- [elpa] externals/ivy-explorer 7a622c4 6/7: Add dispatch binding for explorer window, Clemens Radermacher, 2019/01/16
- [elpa] externals/ivy-explorer c8c6485 1/7: Let ivy-explorer-avy continue when entering directories,
Clemens Radermacher <=
- [elpa] externals/ivy-explorer a09eb44 4/7: Add binding to switch to explorer window, Clemens Radermacher, 2019/01/16
- [elpa] externals/ivy-explorer 863391e 3/7: Allow switching to lv-window and allow modal navigation in it, Clemens Radermacher, 2019/01/16
- [elpa] externals/ivy-explorer be8008b 7/7: Version bump, Clemens Radermacher, 2019/01/16
- [elpa] externals/ivy-explorer 92abbe8 5/7: Don't read dispatch action twice, Clemens Radermacher, 2019/01/16