fix: dont sort directories by extension

This commit is contained in:
AminurAlam 2025-12-07 14:44:56 +05:30
parent 756964b10a
commit c356e6f0d6
No known key found for this signature in database
2 changed files with 6 additions and 3 deletions

View file

@ -25,6 +25,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/):
- Smart-case in interactive `cd` broken due to a typo ([#3540])
- Fix shell formatting for non-spread opener rules ([#3532])
- Account for URL covariance in `Url:join()` ([#3514])
- `sort extension` excludes directories since only files have extensions ([#3582])
## [v26.1.4]

View file

@ -40,12 +40,14 @@ impl FilesSorter {
if ord == Ordering::Equal { by_alphabetical(a, b) } else { ord }
}),
SortBy::Extension => items.sort_unstable_by(|a, b| {
let aa = a.url.ext().filter(|_| a.is_file());
let bb = b.url.ext().filter(|_| b.is_file());
let ord = if self.sensitive {
self.cmp(a.url.ext(), b.url.ext(), self.promote(a, b))
self.cmp(aa, bb, self.promote(a, b))
} else {
self.cmp_insensitive(
a.url.ext().map_or(&[], |s| s.encoded_bytes()),
b.url.ext().map_or(&[], |s| s.encoded_bytes()),
aa.map_or(&[], |s| s.encoded_bytes()),
bb.map_or(&[], |s| s.encoded_bytes()),
self.promote(a, b),
)
};