[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 297008b 09/18: Allow to customize the file sorting order
From: |
Oleh Krehel |
Subject: |
[elpa] master 297008b 09/18: Allow to customize the file sorting order |
Date: |
Mon, 20 Apr 2015 12:39:04 +0000 |
branch: master
commit 297008b37236cd74f65f2ba1d198c6b04270ff11
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
Allow to customize the file sorting order
* ivy.el (ivy-sort-file-function-default): New defun.
(ivy-sort-file-function): New defvar. Set this to your preference.
(ivy--sorted-files): Update.
Fixes #38
---
ivy.el | 24 ++++++++++++++++--------
1 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/ivy.el b/ivy.el
index 5cccbfe..50704f6 100644
--- a/ivy.el
+++ b/ivy.el
@@ -279,6 +279,21 @@ On error (read-only), call `ivy-on-del-error-function'."
(when ivy-on-del-error-function
(funcall ivy-on-del-error-function))))))
+(defun ivy-sort-file-function-default (x y)
+ "Compare two files X and Y.
+Prioritize directories."
+ (if (file-directory-p x)
+ (if (file-directory-p y)
+ (string< x y)
+ t)
+ (if (file-directory-p y)
+ nil
+ (string< x y))))
+
+(defvar ivy-sort-file-function 'ivy-sort-file-function-default
+ "The function that compares file names.
+It should take two string arguments and return nil and non-nil.")
+
(defun ivy--sorted-files (dir)
"Return the list of files in DIR.
Directories come first."
@@ -288,14 +303,7 @@ Directories come first."
seq
(setq seq (cl-sort
(delete "./" (delete "../" seq))
- (lambda (x y)
- (if (file-directory-p x)
- (if (file-directory-p y)
- (string< x y)
- t)
- (if (file-directory-p y)
- nil
- (string< x y))))))
+ ivy-sort-file-function))
(dolist (dir ivy-extra-directories)
(push dir seq))
seq)))
- [elpa] master d2f754d 02/18: ivy.el (ivy-alt-done): Update for 0 candidates, (continued)
- [elpa] master d2f754d 02/18: ivy.el (ivy-alt-done): Update for 0 candidates, Oleh Krehel, 2015/04/20
- [elpa] master 378ee58 03/18: Add "C-v" and "M-v" scrolling, Oleh Krehel, 2015/04/20
- [elpa] master f5a32bf 04/18: Add a command to grep the current git repo, Oleh Krehel, 2015/04/20
- [elpa] master 9f21e1d 06/18: Add a matching optimization, Oleh Krehel, 2015/04/20
- [elpa] master a9a4e81 05/18: counsel.el (counsel-git-grep): Fix the default-directory, Oleh Krehel, 2015/04/20
- [elpa] master 539fe7d 07/18: ivy.el (ivy-completions): Fix an optimization, Oleh Krehel, 2015/04/20
- [elpa] master 23c0e6a 08/18: ivy.el (ivy-done): Update for non-matching file names, Oleh Krehel, 2015/04/20
- [elpa] master a94ca83 01/18: swiper.el: Add a work-around for window-start not being current, Oleh Krehel, 2015/04/20
- [elpa] master cafcfb9 10/18: Allow "C-." to jump to current symbol definition, Oleh Krehel, 2015/04/20
- [elpa] master d0f3826 11/18: ivy.el (ivy--preselect-index): Give priority to perfect match, Oleh Krehel, 2015/04/20
- [elpa] master 297008b 09/18: Allow to customize the file sorting order,
Oleh Krehel <=
- [elpa] master 3282f78 13/18: Speed up the default file sorting even more, Oleh Krehel, 2015/04/20
- [elpa] master 525a19d 14/18: Propertize directories with ivy-subdir face, Oleh Krehel, 2015/04/20
- [elpa] master 10af5a6 16/18: ivy.el (ivy-done): Still expand "./" though, Oleh Krehel, 2015/04/20
- [elpa] master e71e4d2 12/18: Speed up the default file sorting, Oleh Krehel, 2015/04/20
- [elpa] master 61a95c4 15/18: Don't expand the default when completing file names, Oleh Krehel, 2015/04/20
- [elpa] master efa18ec 17/18: swiper.el: Bump version, Oleh Krehel, 2015/04/20
- [elpa] master 2f4c2c1 18/18: Merge commit 'efa18eca10e5a0e05043f872cf9945842bb3a034' from swiper, Oleh Krehel, 2015/04/20