[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ivy-explorer 863391e 3/7: Allow switching to lv-window
From: |
Clemens Radermacher |
Subject: |
[elpa] externals/ivy-explorer 863391e 3/7: Allow switching to lv-window and allow modal navigation in it |
Date: |
Wed, 16 Jan 2019 10:08:26 -0500 (EST) |
branch: externals/ivy-explorer
commit 863391ee64271a6589372dd3d0df87651c917188
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>
Allow switching to lv-window and allow modal navigation in it
---
ivy-explorer.el | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/ivy-explorer.el b/ivy-explorer.el
index ae02151..736016b 100644
--- a/ivy-explorer.el
+++ b/ivy-explorer.el
@@ -140,6 +140,35 @@ menu string as `cdr'."
"When non-nil, `ivy-explorer--lv-message' will refresh.
Even for the same string.")
+
+(defmacro ivy-explorer--lv-command (cmd)
+ `(defun ,(intern (format "%s-lv" (symbol-name cmd))) ()
+ (interactive)
+ (with-selected-window (minibuffer-window)
+ (call-interactively ',cmd)
+ (ivy--exhibit))))
+
+(defvar ivy-explorer-lv-mode-map
+ (let ((map (make-sparse-keymap)))
+ (prog1 map
+ (define-key map (kbd "C-g") (defun ivy-explorer-lv-quit ()
+ (interactive)
+ (with-selected-window (minibuffer-window)
+ (minibuffer-keyboard-quit))))
+ (define-key map "n" (ivy-explorer--lv-command ivy-explorer-next))
+ (define-key map "p" (ivy-explorer--lv-command ivy-explorer-previous))
+ (define-key map "f" (ivy-explorer--lv-command ivy-explorer-forward))
+ (define-key map "b" (ivy-explorer--lv-command ivy-explorer-backward))
+ (define-key map (kbd "RET") (ivy-explorer--lv-command ivy-alt-done))
+ (define-key map (kbd "DEL") (ivy-explorer--lv-command
ivy-backward-delete-char))
+ (define-key map "," (ivy-explorer--lv-command ivy-explorer-avy))
+ (define-key map (kbd "C-x o") (defun ivy-explorer-select-mini ()
+ (interactive)
+ (select-window (minibuffer-window)))))))
+
+(define-minor-mode ivy-explorer-lv-mode
+ "Mode for buffer showing the grid.")
+
(defun ivy-explorer--lv ()
"Ensure that ivy explorer window is live and return it."
(if (window-live-p ivy-explorer--window)
@@ -155,6 +184,7 @@ Even for the same string.")
(switch-to-buffer buf)
(switch-to-buffer " *ivy-explorer*")
(set-window-hscroll ivy-explorer--window 0)
+ (ivy-explorer-lv-mode 1)
(setq window-size-fixed t)
(setq mode-line-format nil)
(setq cursor-type nil)
@@ -392,7 +422,7 @@ Call the permanent action if possible.")
(let ((map (make-sparse-keymap)))
(prog1 map
(define-key map (kbd "C-x d") 'ivy-explorer-dired)
-
+ (define-key map (kbd "M-o") 'ivy-explorer-dispatching-done)
(define-key map (kbd "C-'") 'ivy-explorer-avy)
(define-key map (kbd ",") 'ivy-explorer-avy)
(define-key map (kbd ";") 'ivy-explorer-avy-dispatch)
@@ -434,6 +464,17 @@ Call the permanent action if possible.")
(apply f args)))
+(defun ivy-explorer-dispatching-done ()
+ "Select one of the available actions and call `ivy-done'."
+ (interactive)
+ (let ((window (selected-window)))
+ (unwind-protect
+ (when (ivy-read-action)
+ (ivy-done))
+ (when (window-live-p window)
+ (window-resize nil (- 1 (window-height)))))))
+
+
(defun ivy-explorer (&rest args)
"Function to be used as `read-file-name-function'.
- [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, 2019/01/16
- [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 <=
- [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