[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 6853290 031/399: counsel-switch-buffer: Add support for iv
From: |
Oleh Krehel |
Subject: |
[elpa] master 6853290 031/399: counsel-switch-buffer: Add support for ivy-use-virtual-buffers. |
Date: |
Sat, 20 Jul 2019 14:56:42 -0400 (EDT) |
branch: master
commit 685329069c2690a531e203e571bfc0e42dc9fd0e
Author: Nathan Moreau <address@hidden>
Commit: Oleh Krehel <address@hidden>
counsel-switch-buffer: Add support for ivy-use-virtual-buffers.
This will open virtual buffers for preview, and kill them.
counsel.el (counsel--switch-buffer-temporary-buffers): new variable.
(counsel--switch-buffer-unwind): new function.
(counsel--switch-buffer-update-fn): try to find files.
(counsel-switch-buffer): add unwind.
Fixes #1897
---
counsel.el | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/counsel.el b/counsel.el
index 93dcb2f..fa214c4 100644
--- a/counsel.el
+++ b/counsel.el
@@ -5016,14 +5016,28 @@ When ARG is non-nil, ignore NoDisplay property in
*.desktop files."
:action #'counsel-wmctrl-action
:caller 'counsel-wmctrl)))
+(defvar counsel--switch-buffer-temporary-buffers nil
+ "Internal.")
+
+(defun counsel--switch-buffer-unwind ()
+ "Clear temporary file buffers.
+The buffers are those opened during a session of `counsel-switch-buffer'."
+ (while counsel--switch-buffer-temporary-buffers
+ (let ((buf (pop counsel--switch-buffer-temporary-buffers)))
+ (kill-buffer buf))))
+
(defun counsel--switch-buffer-update-fn ()
(let ((current (ivy-state-current ivy-last)))
;; This check is necessary, otherwise typing into the completion
;; would create empty buffers.
(if (get-buffer current)
(ivy-call)
- (with-ivy-window
- (switch-to-buffer (ivy-state-buffer ivy-last))))))
+ (if (and ivy-use-virtual-buffers (file-exists-p current))
+ (let ((buf (find-file-noselect current)))
+ (push buf counsel--switch-buffer-temporary-buffers)
+ (ivy-call))
+ (with-ivy-window
+ (switch-to-buffer (ivy-state-buffer ivy-last)))))))
;;;###autoload
(defun counsel-switch-buffer ()
@@ -5036,6 +5050,7 @@ in the current window."
:action #'ivy--switch-buffer-action
:matcher #'ivy--switch-buffer-matcher
:caller 'counsel-switch-buffer
+ :unwind #'counsel--switch-buffer-unwind
:update-fn 'counsel--switch-buffer-update-fn))
;;* `counsel-mode'
- [elpa] master 007d672 012/399: swiper.el (swiper--update-input-ivy): Use display-graphic-p, (continued)
- [elpa] master 007d672 012/399: swiper.el (swiper--update-input-ivy): Use display-graphic-p, Oleh Krehel, 2019/07/20
- [elpa] master 686cf5a 014/399: swiper.el (swiper--action): Fix for emacs -nw, Oleh Krehel, 2019/07/20
- [elpa] master b1ac725 017/399: ivy.el (ivy-initial-inputs-alist): Now a defcustom., Oleh Krehel, 2019/07/20
- [elpa] master 43f169b 019/399: swiper.el (swiper-font-lock-ensure-p): Try checking for non prog-mode, Oleh Krehel, 2019/07/20
- [elpa] master 24c95b7 018/399: ivy.el (ivy-thing-at-point): Extend, Oleh Krehel, 2019/07/20
- [elpa] master 51446e5 021/399: swiper.el (swiper--avy-candidates): Extract, Oleh Krehel, 2019/07/20
- [elpa] master 050b4a4 023/399: counsel.el (counsel-grep-history): Add, Oleh Krehel, 2019/07/20
- [elpa] master 88b3548 020/399: swiper.el (swiper--avy-goto): Extract, Oleh Krehel, 2019/07/20
- [elpa] master 28e88ab 025/399: Allow to mark/unmark candidates with "m", "u", "DEL", "t", Oleh Krehel, 2019/07/20
- [elpa] master 48c7087 028/399: ivy.el (ivy-reverse-i-search): Don't bind ivy-recursive-restore to nil, Oleh Krehel, 2019/07/20
- [elpa] master 6853290 031/399: counsel-switch-buffer: Add support for ivy-use-virtual-buffers.,
Oleh Krehel <=
- [elpa] master b0c0371 038/399: Enable counsel-read-env to properly handle directories, Oleh Krehel, 2019/07/20
- [elpa] master 47c8c3d 034/399: counsel.el (counsel-read-env): Simplify, Oleh Krehel, 2019/07/20
- [elpa] master 4ca721c 022/399: swiper.el (swiper-avy): If the input is 1 char, re-highlight, Oleh Krehel, 2019/07/20
- [elpa] master ffffc21 024/399: swiper.el (swiper-mc): Update doc, Oleh Krehel, 2019/07/20
- [elpa] master b01108e 027/399: ivy.el (ivy-call): Call action with whole marked list if it has a second arg, Oleh Krehel, 2019/07/20
- [elpa] master 3216d40 026/399: swiper.el (swiper-avy): Warn if no input, Oleh Krehel, 2019/07/20
- [elpa] master dfeaec0 029/399: swiper.el (swiper--update-input-ivy): Don't rely on window-start in terminal, Oleh Krehel, 2019/07/20
- [elpa] master 9718962 030/399: Add a simple initial counsel-switch-buffer, Oleh Krehel, 2019/07/20
- [elpa] master ef78fb6 032/399: Add environment variable completion to counsel-find-file, Oleh Krehel, 2019/07/20
- [elpa] master 22fca55 035/399: counsel.el (counsel-file-jump-args): Remove extra backslash, Oleh Krehel, 2019/07/20