branch: elpa/projectile
commit d29b5b3526b4ee0335e92f93997cb4ac12f14fef
Author: Bozhidar Batsov <[email protected]>
Commit: Bozhidar Batsov <[email protected]>

    Replace broken sort with partition in projectile--other-extension-files
    
    The seq-sort comparator ignored its second argument, producing
    undefined ordering. The intent was just to prioritize files from
    sibling directories. Replace with a clear two-bucket partition:
    sibling-dir files first, then the rest.
---
 projectile.el | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/projectile.el b/projectile.el
index 8fccc9bd49..65b38eeeb0 100644
--- a/projectile.el
+++ b/projectile.el
@@ -2481,13 +2481,14 @@ With FLEX-MATCHING, match any file that contains the 
base name of current file"
                                file-list)))
          (candidates
           (seq-filter (lambda (file) (not (backup-file-name-p file))) 
candidates))
-         (candidates
-          (seq-sort (lambda (file _)
-                      (let ((candidate-dirname (file-name-nondirectory 
(directory-file-name (if (file-name-directory file)
-                                                                               
                 (file-name-directory file) "./")))))
-                        (unless (equal fulldirname (file-name-directory file))
-                          (equal dirname candidate-dirname))))
-                    candidates)))
+         (sibling-dir-p (lambda (file)
+                          (let ((candidate-dirname (file-name-nondirectory
+                                                    (directory-file-name
+                                                     (or (file-name-directory 
file) "./")))))
+                            (and (not (equal fulldirname (file-name-directory 
file)))
+                                 (equal dirname candidate-dirname)))))
+         (candidates (append (seq-filter sibling-dir-p candidates)
+                             (seq-remove sibling-dir-p candidates))))
     candidates))
 
 (defun projectile-select-files (project-files &optional invalidate-cache)

Reply via email to