From e1d55c82b10a21947e0e19228ce361f09d53417c Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Tue, 29 Oct 2024 14:31:12 -0700 Subject: [PATCH] refactor: Improve edit handling with dry run and path resolution --- aider/coders/base_coder.py | 10 ++++++---- aider/coders/editblock_coder.py | 7 ++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index d4a54f97d..ed9cc8c72 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -1811,12 +1811,11 @@ class Coder: edited = set() try: edits = self.get_edits() + edits = self.apply_edits_dry_run(edits) edits = self.prepare_to_edit(edits) - - updated_edits = self.apply_edits(edits) - if updated_edits is not None: - edits = updated_edits edited = set(edit[0] for edit in edits) + + self.apply_edits(edits) except ValueError as err: self.num_malformed_responses += 1 @@ -1943,6 +1942,9 @@ class Coder: def apply_edits(self, edits): return + def apply_edits_dry_run(self, edits): + return edits + def run_shell_commands(self): if not self.suggest_shell_commands: return "" diff --git a/aider/coders/editblock_coder.py b/aider/coders/editblock_coder.py index d7a0244b3..97b913c59 100644 --- a/aider/coders/editblock_coder.py +++ b/aider/coders/editblock_coder.py @@ -41,7 +41,7 @@ class EditBlockCoder(Coder): def apply_edits(self, edits, dry_run=False): failed = [] passed = [] - updated = [] + updated_edits = [] for edit in edits: path, original, updated = edit @@ -54,9 +54,10 @@ class EditBlockCoder(Coder): content = self.io.read_text(full_path) new_content = do_replace(full_path, content, original, updated, self.fence) if new_content: + path = self.get_rel_fname(full_path) break - updated.append((path, original, updated)) + updated_edits.append((path, original, updated)) if new_content: if not dry_run: @@ -66,7 +67,7 @@ class EditBlockCoder(Coder): failed.append(edit) if dry_run: - return updated + return updated_edits if not failed: return