1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2024-12-12 19:18:24 +02:00

output: add --no-column flag

This disables columns in the output if they were otherwise enabled.

Fixes #880
This commit is contained in:
Andrew Gallant 2018-04-23 19:25:55 -04:00
parent 507801c1f2
commit b75526bd7f
No known key found for this signature in database
GPG Key ID: B2E3A4923F8B0D44
3 changed files with 40 additions and 1 deletions

View File

@ -741,9 +741,17 @@ fn flag_column(args: &mut Vec<RGArg>) {
Show column numbers (1-based). This only shows the column numbers for the first
match on each line. This does not try to account for Unicode. One byte is equal
to one column. This implies --line-number.
This flag can be disabled with --no-column.
");
let arg = RGArg::switch("column")
.help(SHORT).long_help(LONG);
.help(SHORT).long_help(LONG)
.overrides("no-column");
args.push(arg);
let arg = RGArg::switch("no-column")
.hidden()
.overrides("column");
args.push(arg);
}

View File

@ -689,6 +689,9 @@ impl<'a> ArgMatches<'a> {
/// Returns true if and only if column numbers should be shown.
fn column(&self) -> bool {
if self.is_present("no-column") {
return false;
}
self.is_present("column") || self.is_present("vimgrep")
}

View File

@ -836,6 +836,34 @@ sherlock:5:12:but Doctor Watson has to have it taken out for him and dusted,
assert_eq!(lines, expected);
});
sherlock!(vimgrep_no_line, "Sherlock|Watson", ".",
|wd: WorkDir, mut cmd: Command| {
cmd.arg("--vimgrep").arg("-N");
let lines: String = wd.stdout(&mut cmd);
let expected = "\
sherlock:16:For the Doctor Watsons of this world, as opposed to the Sherlock
sherlock:57:For the Doctor Watsons of this world, as opposed to the Sherlock
sherlock:49:be, to a very large extent, the result of luck. Sherlock Holmes
sherlock:12:but Doctor Watson has to have it taken out for him and dusted,
";
assert_eq!(lines, expected);
});
sherlock!(vimgrep_no_line_no_column, "Sherlock|Watson", ".",
|wd: WorkDir, mut cmd: Command| {
cmd.arg("--vimgrep").arg("-N").arg("--no-column");
let lines: String = wd.stdout(&mut cmd);
let expected = "\
sherlock:For the Doctor Watsons of this world, as opposed to the Sherlock
sherlock:For the Doctor Watsons of this world, as opposed to the Sherlock
sherlock:be, to a very large extent, the result of luck. Sherlock Holmes
sherlock:but Doctor Watson has to have it taken out for him and dusted,
";
assert_eq!(lines, expected);
});
// See: https://github.com/BurntSushi/ripgrep/issues/16
clean!(regression_16, "xyz", ".", |wd: WorkDir, mut cmd: Command| {
wd.create(".gitignore", "ghi/");