Skip to content

Commit bcd0105

Browse files
committed
feat: Skip processing files with no effective changes
Adds logic to identify instances where all planned edits are no-ops (i.e., the resulting code is identical to the original). - Introduces method. - Modifies to skip printing and applying edits for files marked as no-op.
1 parent f117a29 commit bcd0105

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

ai_scripting/ai_edit.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,13 @@ def print_plan(self):
8282
console_instance.print(f"[bold green]Edit Plan:[/bold green]")
8383
console_instance.print(f"[bold green]Files to edit:[/bold green]")
8484
for file in self._files:
85-
console_instance.print(f"[bold green]{file.filepath}[/bold green]")
85+
if not file.is_no_op_edit:
86+
console_instance.print(f"[bold green]{file.filepath}[/bold green]")
8687

8788
def apply_edits(self):
8889
for file in self._files:
89-
file.apply_edits()
90+
if not file.is_no_op_edit:
91+
file.apply_edits()
9092

9193
def edit_code_blocks(
9294
code_blocks: List[code_block.CodeBlock],

ai_scripting/code_block.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ def whole_file_as_edit_block(self) -> EditCodeBlock:
140140
lines=[Line(line_number=i+1, content=line) for i, line in enumerate(self.original_file_content.split("\n"))])
141141
return self._edited_block_for_whole_file
142142

143+
def is_no_op_edit(self) -> bool:
144+
"""Returns True if all the edited blocks are no-op edits."""
145+
return all(block.is_no_op_edit for block in self.blocks_to_edit)
146+
143147
def apply_edits(self):
144148
"""Applies the edits to the file."""
145149
if self._already_applied_edits:

0 commit comments

Comments
 (0)