From 7a951f103a2abeba5af53905e168a09179704b48 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Wed, 11 Jan 2017 18:53:35 -0500 Subject: [PATCH] Make --column imply --line-number. Closes #243 --- doc/rg.1 | 1 + doc/rg.1.md | 3 ++- src/app.rs | 3 ++- src/args.rs | 1 + tests/tests.rs | 15 ++++++++++++--- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/doc/rg.1 b/doc/rg.1 index bed7ac6..cbc0c89 100644 --- a/doc/rg.1 +++ b/doc/rg.1 @@ -183,6 +183,7 @@ Show column numbers (1 based) in output. This only shows the column numbers for the first match on each line. Note that this doesn\[aq]t try to account for Unicode. One byte is equal to one column. +This implies \-\-line\-number. .RS .RE .TP diff --git a/doc/rg.1.md b/doc/rg.1.md index 5e0f703..8804fcc 100644 --- a/doc/rg.1.md +++ b/doc/rg.1.md @@ -126,7 +126,8 @@ Project home page: https://github.com/BurntSushi/ripgrep --column : Show column numbers (1 based) in output. This only shows the column numbers for the first match on each line. Note that this doesn't try - to account for Unicode. One byte is equal to one column. + to account for Unicode. One byte is equal to one column. This implies + --line-number. --context-separator *SEPARATOR* : The string to use when separating non-continuous context lines. Escape diff --git a/src/app.rs b/src/app.rs index a353fdb..e8ceeb5 100644 --- a/src/app.rs +++ b/src/app.rs @@ -315,7 +315,8 @@ lazy_static! { "Show column numbers", "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."); + to account for Unicode. One byte is equal to one column. This \ + implies --line-number."); doc!(h, "context-separator", "Set the context separator string. [default: --]", "The string used to separate non-contiguous context lines in the \ diff --git a/src/args.rs b/src/args.rs index 594ece0..6030964 100644 --- a/src/args.rs +++ b/src/args.rs @@ -583,6 +583,7 @@ impl<'a> ArgMatches<'a> { false } else { self.is_present("line-number") + || self.is_present("column") || atty::on_stdout() || self.is_present("pretty") || self.is_present("vimgrep") diff --git a/tests/tests.rs b/tests/tests.rs index 92d8e8c..858fc62 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -107,8 +107,8 @@ sherlock!(columns, |wd: WorkDir, mut cmd: Command| { cmd.arg("--column"); let lines: String = wd.stdout(&mut cmd); let expected = "\ -57:For the Doctor Watsons of this world, as opposed to the Sherlock -49:be, to a very large extent, the result of luck. Sherlock Holmes +1:57:For the Doctor Watsons of this world, as opposed to the Sherlock +3:49:be, to a very large extent, the result of luck. Sherlock Holmes "; assert_eq!(lines, expected); }); @@ -781,7 +781,7 @@ clean!(regression_105_part2, "test", ".", |wd: WorkDir, mut cmd: Command| { cmd.arg("--column"); let lines: String = wd.stdout(&mut cmd); - assert_eq!(lines, "foo:3:zztest\n"); + assert_eq!(lines, "foo:1:3:zztest\n"); }); // See: https://github.com/BurntSushi/ripgrep/issues/127 @@ -1214,6 +1214,15 @@ clean!(feature_159_zero_max, "test", ".", |wd: WorkDir, mut cmd: Command| { wd.assert_err(&mut cmd); }); +// See: https://github.com/BurntSushi/ripgrep/issues/243 +clean!(feature_243_column_line, "test", ".", |wd: WorkDir, mut cmd: Command| { + wd.create("foo", "test"); + cmd.arg("--column"); + + let lines: String = wd.stdout(&mut cmd); + assert_eq!(lines, "foo:1:1:test\n"); +}); + // See: https://github.com/BurntSushi/ripgrep/issues/263 clean!(feature_263_sort_files, "test", ".", |wd: WorkDir, mut cmd: Command| { wd.create("foo", "test");