diff options
author | Andrew Gallant <jamslam@gmail.com> | 2019-04-13 18:35:24 -0400 |
---|---|---|
committer | Andrew Gallant <jamslam@gmail.com> | 2019-04-14 19:29:27 -0400 |
commit | ece1f50cfe49fea324d96f97a2ae00ebbd0cad03 (patch) | |
tree | 8615570232a16f572702619333b446a0a530772c /src/args.rs | |
parent | a7d26c8f144a4957b75f71087a66692d0b25759a (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.rs | 7 |
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)) |