mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2025-05-19 01:30:21 -07:00
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
This commit is contained in:
parent
ca5e294ad6
commit
daa157b5f9
10
CHANGELOG.md
10
CHANGELOG.md
@ -1,3 +1,13 @@
|
|||||||
|
14.0.3 (2023-11-28)
|
||||||
|
===================
|
||||||
|
This is a patch release with a bug fix for the `--sortr` flag.
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
|
||||||
|
* [BUG #2664](https://github.com/BurntSushi/ripgrep/issues/2664):
|
||||||
|
Fix `--sortr=path`. I left a `todo!()` in the source. Oof.
|
||||||
|
|
||||||
|
|
||||||
14.0.2 (2023-11-27)
|
14.0.2 (2023-11-27)
|
||||||
===================
|
===================
|
||||||
This is a patch release with a few small bug fixes.
|
This is a patch release with a few small bug fixes.
|
||||||
|
@ -771,7 +771,13 @@ impl HiArgs {
|
|||||||
let Some(ref sort) = self.sort else { return Box::new(haystacks) };
|
let Some(ref sort) = self.sort else { return Box::new(haystacks) };
|
||||||
let mut with_timestamps: Vec<_> = match sort.kind {
|
let mut with_timestamps: Vec<_> = match sort.kind {
|
||||||
SortModeKind::Path if !sort.reverse => return Box::new(haystacks),
|
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 => {
|
SortModeKind::LastModified => {
|
||||||
attach_timestamps(haystacks, |md| md.modified()).collect()
|
attach_timestamps(haystacks, |md| md.modified()).collect()
|
||||||
}
|
}
|
||||||
|
@ -356,6 +356,17 @@ rgtest!(f263_sort_files, |dir: Dir, mut cmd: TestCommand| {
|
|||||||
eqnice!(expected, cmd.arg("--sort-files").arg("test").stdout());
|
eqnice!(expected, cmd.arg("--sort-files").arg("test").stdout());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// See: https://github.com/BurntSushi/ripgrep/issues/263
|
||||||
|
rgtest!(f263_sort_files_reverse, |dir: Dir, mut cmd: TestCommand| {
|
||||||
|
dir.create("foo", "test");
|
||||||
|
dir.create("abc", "test");
|
||||||
|
dir.create("zoo", "test");
|
||||||
|
dir.create("bar", "test");
|
||||||
|
|
||||||
|
let expected = "zoo:test\nfoo:test\nbar:test\nabc:test\n";
|
||||||
|
eqnice!(expected, cmd.arg("--sortr=path").arg("test").stdout());
|
||||||
|
});
|
||||||
|
|
||||||
// See: https://github.com/BurntSushi/ripgrep/issues/275
|
// See: https://github.com/BurntSushi/ripgrep/issues/275
|
||||||
rgtest!(f275_pathsep, |dir: Dir, mut cmd: TestCommand| {
|
rgtest!(f275_pathsep, |dir: Dir, mut cmd: TestCommand| {
|
||||||
dir.create_dir("foo");
|
dir.create_dir("foo");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user