[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master f66eec5 059/184: Add counsel-buffer-or-recentf
From: |
Oleh Krehel |
Subject: |
[elpa] master f66eec5 059/184: Add counsel-buffer-or-recentf |
Date: |
Wed, 16 Oct 2019 13:14:49 -0400 (EDT) |
branch: master
commit f66eec54d920e43754778399fcfc2a7348492f5f
Author: Justin Burkett <address@hidden>
Commit: Justin Burkett <address@hidden>
Add counsel-buffer-or-recentf
Lists buffers visiting files (highlighted) then the recentf file list.
---
counsel.el | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/counsel.el b/counsel.el
index 5442862..87d3636 100644
--- a/counsel.el
+++ b/counsel.el
@@ -2204,6 +2204,49 @@ When INITIAL-INPUT is non-nil, use it in the minibuffer
during completion."
("f" find-file-other-frame "other frame")
("x" counsel-find-file-extern "open externally")))
+(defun counsel-buffer-or-recentf-candidates ()
+ "Return candidates for `counsel-buffer-or-recentf'."
+ (require 'recentf)
+ (recentf-mode)
+ (let ((buffers
+ (delq nil
+ (mapcar (lambda (b)
+ (when (buffer-file-name b)
+ (buffer-file-name b)))
+ (buffer-list)))))
+ (append
+ buffers
+ (cl-remove-if (lambda (f) (member f buffers))
+ (mapcar #'substring-no-properties recentf-list)))))
+
+;;;###autoload
+(defun counsel-buffer-or-recentf ()
+ "Find a buffer visiting a file or file on `recentf-list'."
+ (interactive)
+ (ivy-read "Buffer File or Recentf: " (counsel-buffer-or-recentf-candidates)
+ :action (lambda (s)
+ (with-ivy-window
+ (if (bufferp s)
+ (switch-to-buffer s)
+ (find-file s))))
+ :require-match t
+ :caller 'counsel-buffer-or-recentf))
+
+(ivy-set-actions
+ 'counsel-buffer-or-recentf
+ '(("j" find-file-other-window "other window")
+ ("f" find-file-other-frame "other frame")
+ ("x" counsel-find-file-extern "open externally")))
+
+(defun counsel-buffer-or-recentf-transformer (var)
+ "Propertize VAR if it's a buffer visiting a file."
+ (if (member var (mapcar #'buffer-file-name (buffer-list)))
+ (ivy-append-face var 'ivy-highlight-face)
+ var))
+
+(ivy-set-display-transformer
+ 'counsel-buffer-or-recentf 'counsel-buffer-or-recentf-transformer)
+
;;** `counsel-bookmark'
(defcustom counsel-bookmark-avoid-dired nil
"If non-nil, open directory bookmarks with `counsel-find-file'.
- [elpa] master f71f89a 029/184: ivy-test.el (ivy-swiper-wgrep): Expect fail on <=24.3, (continued)
- [elpa] master f71f89a 029/184: ivy-test.el (ivy-swiper-wgrep): Expect fail on <=24.3, Oleh Krehel, 2019/10/16
- [elpa] master 230137b 047/184: ivy.el (ivy-restrict-to-matches): Work for dynamic collection, Oleh Krehel, 2019/10/16
- [elpa] master c3bd60c 041/184: ivy.el (ivy--occur-press-update-window): Don't error if buffer was killed, Oleh Krehel, 2019/10/16
- [elpa] master 6bf2cba 053/184: ivy.el (ivy-read-action-ivy): Don't recur, Oleh Krehel, 2019/10/16
- [elpa] master 1a4ebda 048/184: Allow virtual-buffers customization, Oleh Krehel, 2019/10/16
- [elpa] master b4af1a6 040/184: swiper.el (swiper-recenter-top-bottom): Works for swiper-isearch, Oleh Krehel, 2019/10/16
- [elpa] master 327dbd6 058/184: counsel.el (counsel-rg-base-command): Don't include directory on non-Windows, Oleh Krehel, 2019/10/16
- [elpa] master 5140127 046/184: ivy.el: Run ispell-comments-and-strings, Oleh Krehel, 2019/10/16
- [elpa] master 2ecbd7d 054/184: ivy.el (ivy-read-action-ivy): Show the selected item in the prompt, Oleh Krehel, 2019/10/16
- [elpa] master ae70443 060/184: counsel.el (counsel-major): Add, Oleh Krehel, 2019/10/16
- [elpa] master f66eec5 059/184: Add counsel-buffer-or-recentf,
Oleh Krehel <=
- [elpa] master 1303e10 061/184: counsel.el (counsel-M-x-action): Extract, Oleh Krehel, 2019/10/16
- [elpa] master ca5040d 078/184: counsel.el (counsel-rg-base-command): Remove "-S" flag, Oleh Krehel, 2019/10/16
- [elpa] master 20d604c 069/184: ivy.el (ivy-restrict-to-matches): Fix for ivy-resume, Oleh Krehel, 2019/10/16
- [elpa] master c307ae9 055/184: swiper.el (swiper--re-builder): Fix symbol bounds with char-fold-to-regexp, Oleh Krehel, 2019/10/16
- [elpa] master 5424a564 082/184: ivy.el (ivy--handle-directory): Extract, Oleh Krehel, 2019/10/16
- [elpa] master d73376f 010/184: ivy.el (ivy--trim-trailing-re): Add, Oleh Krehel, 2019/10/16
- [elpa] master 824f8d7 072/184: counsel.el (counsel--find-return-list): Works with or without "./" prefix, Oleh Krehel, 2019/10/16
- [elpa] master 4fef498 065/184: Use file-name-at-point-functions for file commands, Oleh Krehel, 2019/10/16
- [elpa] master 3d0fcb5 064/184: ivy.el (ivy-partial): Fix trailing space issue, Oleh Krehel, 2019/10/16
- [elpa] master 7dea040 066/184: ivy.el (ivy-pre-prompt-function): Add, Oleh Krehel, 2019/10/16