From fd6f31f972d97e5642523aecba4dfedb79a87817 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 11 May 2024 10:48:45 -0700 Subject: [PATCH] Replaced `find_similar_text` with `find_similar_lines` in `editblock_coder.py`. --- aider/coders/editblock_coder.py | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/aider/coders/editblock_coder.py b/aider/coders/editblock_coder.py index 9e8ea266b..0169f9d78 100644 --- a/aider/coders/editblock_coder.py +++ b/aider/coders/editblock_coder.py @@ -57,7 +57,7 @@ class EditBlockCoder(Coder): full_path = self.abs_root_path(path) content = self.io.read_text(full_path) - did_you_mean = find_similar_text(original, content) + did_you_mean = find_similar_lines(original, content) res += f""" ## SearchReplaceNoExactMatch: This SEARCH block failed to exactly match lines in {path} @@ -66,6 +66,7 @@ class EditBlockCoder(Coder): ======= {updated} >>>>>>> REPLACE +{did_you_mean} """ res += ( "\nThe SEARCH section must exactly match an existing block of lines including all white" @@ -464,21 +465,3 @@ Tooooo Hope you like it! """ print(list(find_original_update_blocks(edit))) -from difflib import SequenceMatcher - -def find_similar_text(original, content): - content_len = len(content) - original_len = len(original) - - best_ratio = 0 - best_match = None - - for i in range(content_len - original_len + 1): - chunk = content[i:i+original_len] - ratio = SequenceMatcher(None, original, chunk).ratio() - - if ratio > best_ratio: - best_ratio = ratio - best_match = chunk - - return best_match