diff options
author | Dan Davison <dandavison7@gmail.com> | 2020-04-30 08:47:10 -0400 |
---|---|---|
committer | Dan Davison <dandavison7@gmail.com> | 2020-05-01 08:56:24 -0400 |
commit | 5162437b6463d36dafb72e90b6b38b09e66cb955 (patch) | |
tree | 6def47778c76f023c578b4842c7536a4dc81a63d /src/edits.rs | |
parent | 703c6a7eda66411ae28b417e4f0d972633574a93 (diff) |
Experimental: assume naive line pairings are homologous
Experimental feature controlled by environment variable
DELTA_EXPERIMENTAL_MAX_LINE_DISTANCE_FOR_NAIVELY_PAIRED_LINES.
Diffstat (limited to 'src/edits.rs')
-rw-r--r-- | src/edits.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/edits.rs b/src/edits.rs index 84b210c1..1788afd5 100644 --- a/src/edits.rs +++ b/src/edits.rs @@ -16,6 +16,7 @@ pub fn infer_edits<'a, EditOperation>( noop_insertion: EditOperation, insertion: EditOperation, max_line_distance: f64, + max_line_distance_for_naively_paired_lines: f64, ) -> ( Vec<Vec<(EditOperation, &'a str)>>, // annotated minus lines Vec<Vec<(EditOperation, &'a str)>>, // annotated plus lines @@ -42,7 +43,10 @@ where minus_line, plus_line, ); - if distance <= max_line_distance { + if minus_lines.len() == plus_lines.len() + && distance <= max_line_distance_for_naively_paired_lines + || distance <= max_line_distance + { // minus_line and plus_line are inferred to be a homologous pair. // Emit as unpaired the plus lines already considered and rejected @@ -597,6 +601,7 @@ mod tests { PlusNoop, Insertion, max_line_distance, + 0.0, ); assert_eq!(actual_edits, expected_edits); } |