summaryrefslogtreecommitdiffstats
path: root/crates
diff options
context:
space:
mode:
authorAndrew Gallant <jamslam@gmail.com>2023-11-28 16:14:22 -0500
committerAndrew Gallant <jamslam@gmail.com>2023-11-28 16:17:14 -0500
commitdaa157b5f99c064eac7cd4593e4ec07bb8fd9bef (patch)
treef805306b2b6aaafd1c02fc37aebbf29f2cafca8a /crates
parentca5e294ad6b64b03c1d2fb4d9ed8c32b73e656ae (diff)
core: actually implement --sortr=path
This is an embarrassing oversight. A `todo!()` actually made its way into a release! Oof. This was working in ripgrep 13, but I had redone some aspects of sorting and this just got left undone. Fixes #2664
Diffstat (limited to 'crates')
-rw-r--r--crates/core/flags/hiargs.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/crates/core/flags/hiargs.rs b/crates/core/flags/hiargs.rs
index 59a178e4..e027a2c9 100644
--- a/crates/core/flags/hiargs.rs
+++ b/crates/core/flags/hiargs.rs
@@ -771,7 +771,13 @@ impl HiArgs {
let Some(ref sort) = self.sort else { return Box::new(haystacks) };
let mut with_timestamps: Vec<_> = match sort.kind {
SortModeKind::Path if !sort.reverse => return Box::new(haystacks),
- SortModeKind::Path => todo!(),
+ SortModeKind::Path => {
+ let mut haystacks = haystacks.collect::<Vec<Haystack>>();
+ haystacks.sort_by(|ref h1, ref h2| {
+ h1.path().cmp(h2.path()).reverse()
+ });
+ return Box::new(haystacks.into_iter());
+ }
SortModeKind::LastModified => {
attach_timestamps(haystacks, |md| md.modified()).collect()
}