From 8456caae1d54c5b179f94eae7c2a4d4e0e16e30c Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 3 Aug 2023 15:36:06 -0300 Subject: [PATCH] refac --- aider/coders/editblock_coder.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/aider/coders/editblock_coder.py b/aider/coders/editblock_coder.py index 883f5c109..b7d9cb651 100644 --- a/aider/coders/editblock_coder.py +++ b/aider/coders/editblock_coder.py @@ -151,22 +151,29 @@ def replace_most_similar_chunk(whole, part, replace): part_lines = part.splitlines(keepends=True) replace_lines = replace.splitlines(keepends=True) + # Try for a perfect match if part_lines in whole_lines: updated_lines = whole_lines.replace(part_lines, replace_lines) return updated_lines + # Try being flexible about leading whitespace res = replace_part_with_missing_leading_whitespace(whole_lines, part_lines, replace_lines) if res: return res + # Try to handle when it elides code with ... try: res = try_dotdotdots(whole, part, replace) + if res: + return res except ValueError: - return + pass - if res: - return res + # Try fuzzy matching + return replace_closest_edit_distance(whole_lines, part, part_lines, replace_lines) + +def replace_closest_edit_distance(whole_lines, part, part_lines, replace_lines): similarity_thresh = 0.8 max_similarity = 0