emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 530b7de 246/348: ivy.el: Use predicate when reading file n


From: Oleh Krehel
Subject: [elpa] master 530b7de 246/348: ivy.el: Use predicate when reading file names
Date: Sat, 8 Apr 2017 11:04:06 -0400 (EDT)

branch: master
commit 530b7de49c32c59d7f5c9f8b1c6dc19ef06390ec
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    ivy.el: Use predicate when reading file names
    
    * ivy.el (ivy--sorted-files): Add optional arg.
    (ivy--reset-state): Update.
    
    Fixes #804
---
 ivy.el | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/ivy.el b/ivy.el
index 6ff0fe8..9ba6db5 100644
--- a/ivy.el
+++ b/ivy.el
@@ -1312,8 +1312,9 @@ like.")
   "Sorting won't be done for collections larger than this."
   :type 'integer)
 
-(defun ivy--sorted-files (dir)
+(defun ivy--sorted-files (dir &optional predicate)
   "Return the list of files in DIR.
+When PREDICATE is not nil, use it to filter the result.
 Directories come first."
   (let* ((default-directory dir)
          (seq (condition-case nil
@@ -1334,7 +1335,9 @@ Directories come first."
         (setq seq (cl-sort seq sort-fn)))
       (dolist (dir ivy-extra-directories)
         (push dir seq))
-      seq)))
+      (if predicate
+          (cl-remove-if-not predicate seq)
+        seq))))
 
 (defvar ivy-recursive-restore t
   "When non-nil, restore the above state when exiting the minibuffer.
@@ -1571,7 +1574,7 @@ This is useful for recursive `ivy-read'."
                  (setf
                   (ivy-state-preselect state)
                   (setq preselect (file-name-nondirectory preselect)))))
-             (setq coll (ivy--sorted-files ivy--directory))
+             (setq coll (ivy--sorted-files ivy--directory predicate))
              (when initial-input
                (unless (or require-match
                            (equal initial-input default-directory)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]