From 6a0027502e61538a1ece86904e7377d0368fa108 Mon Sep 17 00:00:00 2001 From: justbur Date: Thu, 17 Mar 2016 08:57:30 -0400 Subject: [PATCH] ivy.el (ivy-switch-buffer-occur): Add Simple occur function for ivy-switch-buffer that drops into a ibuffer session with the selected buffers filtered. Fixes #438 --- ivy.el | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ivy.el b/ivy.el index b5a8d08ac..2148880b9 100644 --- a/ivy.el +++ b/ivy.el @@ -2582,6 +2582,13 @@ Skip buffers that match `ivy-ignore-buffers'." (propertize str 'face 'ivy-modified-buffer) str))) +(defun ivy-switch-buffer-occur () + "Occur function for `ivy-switch-buffer' that uses `ibuffer'." + (let* ((cand-regexp + (concat "\\(" (mapconcat #'regexp-quote ivy--old-cands "\\|") "\\)")) + (new-qualifier `((name . ,cand-regexp)))) + (ibuffer nil (buffer-name) new-qualifier))) + ;;;###autoload (defun ivy-switch-buffer () "Switch to another buffer." @@ -2756,6 +2763,9 @@ When `ivy-calling' isn't nil, call `ivy-occur-press'." (setq ivy--occurs-list (plist-put ivy--occurs-list cmd occur))) +(ivy-set-occur 'ivy-switch-buffer 'ivy-switch-buffer-occur) +(ivy-set-occur 'ivy-switch-buffer-other-window 'ivy-switch-buffer-occur) + (defun ivy--occur-insert-lines (cands) (dolist (str cands) (add-text-properties -- 2.39.2