Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions python/CodeEditor.py
Original file line number Diff line number Diff line change
Expand Up @@ -459,12 +459,12 @@ def vim_edit_code(request, firstline, lastline, settings):
code_lines = buffer[start:end + 1]
postamble_lines = buffer[end + 1:postamble_end]

# Join arryas to strings
# Join arrays to strings
preamble = "\n".join(preamble_lines)
code = "\n".join(code_lines)
postamble = "\n".join(postamble_lines)

log.debug('preample: ' + preamble)
log.debug('preamble: ' + preamble)
log.debug('code: ' + code)
log.debug('postamble: ' + postamble)

Expand All @@ -474,7 +474,7 @@ def vim_edit_code(request, firstline, lastline, settings):
# Produce diff
diff = compute_diff(code_lines, new_code_lines)

# Finish operartion
# Finish operation
result = 'Done'
except Exception as e:
log.error(f"Error in vim_edit_code: {e}")
Expand Down Expand Up @@ -654,8 +654,8 @@ def RejectChange(index):
log.debug("RejectChange")
group = g_groups[g_change_index]
log.debug(group)
start_line = group.get('start_line', 1) + g_restored_lines
end_line = group.get('end_line', 1) + g_restored_lines
start_line = group.get('start_line', 1) - g_restored_lines
end_line = group.get('end_line', 1) - g_restored_lines
Comment on lines +657 to +658
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is correct. Restored lines are "deleted lines" that were restored by rejecting this change.
We need to add this new lines to compensate the changed line numbers after this change, so that the next change is proceeded at the correct start_line.
When lines are added (restored) the start_line of the next change must increase.

buf = vim.current.buffer

# remove any abovetext
Expand All @@ -672,13 +672,15 @@ def RejectChange(index):
content = line[2:]
# restore deleted line
log.debug(f"restore line {lineno}")
VimHelper.InsertLine(lineno, content)
VimHelper.InsertLine(lineno+1, content)
lineno += 1
g_restored_lines += 1
elif (line.startswith('+ ')):
# remove added line
log.debug(f"delete line {lineno}")
VimHelper.DeleteLine(lineno)
VimHelper.DeleteLine(start_line)
g_restored_lines += 1
lineno += 1
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current lineno does not change when deleting a line (undoing the add).
Maybe we need a g_restored_lines -= 1 here? Incrementing makes no sense.

log.debug(f"restored_lines={g_restored_lines}")


Expand Down