This commit is contained in:
Paul Gauthier 2023-07-10 17:03:31 -07:00
parent 89e19b2370
commit fd8a6c4e2f

View file

@ -38,14 +38,16 @@ class WholeFileCoder(Coder):
def update_files(self, mode="update"): def update_files(self, mode="update"):
content = self.partial_response_content content = self.partial_response_content
edited = set()
chat_files = self.get_inchat_relative_files() chat_files = self.get_inchat_relative_files()
output = [] output = []
lines = content.splitlines(keepends=True) lines = content.splitlines(keepends=True)
edits = []
saw_fname = None saw_fname = None
fname = None fname = None
fname_source = None
new_lines = [] new_lines = []
for i, line in enumerate(lines): for i, line in enumerate(lines):
if line.startswith(self.fence[0]) or line.startswith(self.fence[1]): if line.startswith(self.fence[0]) or line.startswith(self.fence[1]):
@ -57,10 +59,8 @@ class WholeFileCoder(Coder):
if mode == "diff": if mode == "diff":
output += self.do_live_diff(full_path, new_lines) output += self.do_live_diff(full_path, new_lines)
elif self.allowed_to_edit(fname): else:
edited.add(fname) edits.append((fname, fname_source, new_lines))
new_lines = "".join(new_lines)
self.io.write_text(full_path, new_lines)
fname = None fname = None
new_lines = [] new_lines = []
@ -105,11 +105,13 @@ class WholeFileCoder(Coder):
return "\n".join(output) return "\n".join(output)
if fname: if fname:
full_path = self.allowed_to_edit(fname) edits.append((fname, fname_source, new_lines))
if full_path:
edited = set()
for fname, fname_source, new_lines in edits:
new_lines = "".join(new_lines)
if self.allowed_to_edit(fname, new_lines):
edited.add(fname) edited.add(fname)
new_lines = "".join(new_lines)
self.io.write_text(full_path, new_lines)
return edited return edited