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 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 match on each line. This does not try to account for Unicode. One byte is equal
to one column. This implies --line-number. to one column. This implies --line-number.
This flag can be disabled with --no-column.
"); ");
let arg = RGArg::switch("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); args.push(arg);
} }

View File

@ -689,6 +689,9 @@ impl<'a> ArgMatches<'a> {
/// Returns true if and only if column numbers should be shown. /// Returns true if and only if column numbers should be shown.
fn column(&self) -> bool { fn column(&self) -> bool {
if self.is_present("no-column") {
return false;
}
self.is_present("column") || self.is_present("vimgrep") 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); 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 // See: https://github.com/BurntSushi/ripgrep/issues/16
clean!(regression_16, "xyz", ".", |wd: WorkDir, mut cmd: Command| { clean!(regression_16, "xyz", ".", |wd: WorkDir, mut cmd: Command| {
wd.create(".gitignore", "ghi/"); wd.create(".gitignore", "ghi/");