summaryrefslogtreecommitdiffstats
path: root/src/args.rs
diff options
context:
space:
mode:
authorAndrew Gallant <jamslam@gmail.com>2019-04-13 18:35:24 -0400
committerAndrew Gallant <jamslam@gmail.com>2019-04-14 19:29:27 -0400
commitece1f50cfe49fea324d96f97a2ae00ebbd0cad03 (patch)
tree8615570232a16f572702619333b446a0a530772c /src/args.rs
parenta7d26c8f144a4957b75f71087a66692d0b25759a (diff)
printer: support previews for long lines
This commit adds support for showing a preview of long lines. While the default still remains as completely suppressing the entire line, this new functionality will show the first N graphemes of a matching line, including the number of matches that are suppressed. This was unfortunately a fairly invasive change to the printer that required a bit of refactoring. On the bright side, the single line and multi-line coloring are now more unified than they were before. Closes #1078
Diffstat (limited to 'src/args.rs')
-rw-r--r--src/args.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/args.rs b/src/args.rs
index 6a5f09f9..1a5b8a31 100644
--- a/src/args.rs
+++ b/src/args.rs
@@ -746,6 +746,7 @@ impl ArgMatches {
.per_match(self.is_present("vimgrep"))
.replacement(self.replacement())
.max_columns(self.max_columns()?)
+ .max_column_preview(self.max_column_preview())
.max_matches(self.max_count()?)
.column(self.column())
.byte_offset(self.is_present("byte-offset"))
@@ -1142,6 +1143,12 @@ impl ArgMatches {
Ok(self.usize_of_nonzero("max-columns")?.map(|n| n as u64))
}
+ /// Returns true if and only if a preview should be shown for lines that
+ /// exceed the maximum column limit.
+ fn max_column_preview(&self) -> bool {
+ self.is_present("max-column-preview")
+ }
+
/// The maximum number of matches permitted.
fn max_count(&self) -> Result<Option<u64>> {
Ok(self.usize_of("max-count")?.map(|n| n as u64))