summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/edits.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/edits.rs b/src/edits.rs
index 9b433ff5..b5ac232e 100644
--- a/src/edits.rs
+++ b/src/edits.rs
@@ -124,6 +124,7 @@ fn annotate<'a, Annotation>(
) -> (Vec<(Annotation, &'a str)>, Vec<(Annotation, &'a str)>, f64)
where
Annotation: Copy,
+ Annotation: PartialEq,
{
let mut annotated_minus_line = Vec::new();
let mut annotated_plus_line = Vec::new();
@@ -188,8 +189,11 @@ where
let n_d = distance_contribution(minus_section);
d_denom += n_d;
let is_space = minus_section.trim().is_empty();
+ let coalesce_space_with_previous = is_space
+ && ((minus_op_prev == deletion && plus_op_prev == insertion)
+ || (minus_op_prev == noop_deletion && plus_op_prev == noop_insertion));
annotated_minus_line.push((
- if is_space {
+ if coalesce_space_with_previous {
minus_op_prev
} else {
noop_deletion
@@ -197,7 +201,7 @@ where
minus_section,
));
annotated_plus_line.push((
- if is_space {
+ if coalesce_space_with_previous {
plus_op_prev
} else {
noop_insertion