diff options
author | Tim Oram <dev@mitmaro.ca> | 2020-09-16 10:23:31 -0230 |
---|---|---|
committer | Tim Oram <dev@mitmaro.ca> | 2020-09-16 11:25:20 -0230 |
commit | 1270097a2e2a95fc815d3d1104e3444f298bc7f1 (patch) | |
tree | 469a4196a00d89b8324edbeeeb09ea9ad2259915 | |
parent | 9de8128086f3a37f7fc3bf87a8c9c7db9c88915c (diff) |
Trim trailing whitespace from test render
Trailing whitespace padding results in difficult to generate test cases
and generally is an implementation detail. So ignore segments that
appear to be padding segments.
-rw-r--r-- | src/view/testutil.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/view/testutil.rs b/src/view/testutil.rs index e66e43d..330b3e2 100644 --- a/src/view/testutil.rs +++ b/src/view/testutil.rs @@ -46,7 +46,20 @@ fn render_style(color: DisplayColor, selected: bool, dimmed: bool, underline: bo fn render_view_line(view_line: &ViewLine) -> String { let mut line = String::new(); - for segment in view_line.get_segments() { + let segments = view_line.get_segments(); + for (index, segment) in segments.iter().enumerate() { + let content = segment.get_content(); + // skip any trailing padding whitespace segments to make diff building/matching easier + // this could probably be done in a better way, but I cannot think of it just now - Tim + if index + 1 == segments.len() + && segment.get_color() == DisplayColor::Normal + && !segment.is_dimmed() + && !segment.is_reversed() + && !segment.is_underlined() + && content.trim().is_empty() + { + continue; + } line.push_str( render_style( segment.get_color(), |