Fix missing line separators in delete changes
This commit is contained in:
parent
0cea55630c
commit
db2f3b94ef
1 changed files with 5 additions and 5 deletions
|
|
@ -283,7 +283,7 @@ impl<'buffer> Edit<'buffer> for Editor<'buffer> {
|
||||||
fn delete_range(&mut self, start: Cursor, end: Cursor) {
|
fn delete_range(&mut self, start: Cursor, end: Cursor) {
|
||||||
let change_item = self.with_buffer_mut(|buffer| {
|
let change_item = self.with_buffer_mut(|buffer| {
|
||||||
// Collect removed data for change tracking
|
// Collect removed data for change tracking
|
||||||
let mut change_text = String::new();
|
let mut change_lines = Vec::new();
|
||||||
|
|
||||||
// Delete the selection from the last line
|
// Delete the selection from the last line
|
||||||
let end_line_opt = if end.line > start.line {
|
let end_line_opt = if end.line > start.line {
|
||||||
|
|
@ -292,7 +292,7 @@ impl<'buffer> Edit<'buffer> for Editor<'buffer> {
|
||||||
|
|
||||||
// Remove end line
|
// Remove end line
|
||||||
let removed = buffer.lines.remove(end.line);
|
let removed = buffer.lines.remove(end.line);
|
||||||
change_text.insert_str(0, removed.text());
|
change_lines.insert(0, removed.text().to_string());
|
||||||
|
|
||||||
Some(after)
|
Some(after)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -302,7 +302,7 @@ impl<'buffer> Edit<'buffer> for Editor<'buffer> {
|
||||||
// Delete interior lines (in reverse for safety)
|
// Delete interior lines (in reverse for safety)
|
||||||
for line_i in (start.line + 1..end.line).rev() {
|
for line_i in (start.line + 1..end.line).rev() {
|
||||||
let removed = buffer.lines.remove(line_i);
|
let removed = buffer.lines.remove(line_i);
|
||||||
change_text.insert_str(0, removed.text());
|
change_lines.insert(0, removed.text().to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the selection from the first line
|
// Delete the selection from the first line
|
||||||
|
|
@ -316,7 +316,7 @@ impl<'buffer> Edit<'buffer> for Editor<'buffer> {
|
||||||
|
|
||||||
// Delete selected part of line
|
// Delete selected part of line
|
||||||
let removed = buffer.lines[start.line].split_off(start.index);
|
let removed = buffer.lines[start.line].split_off(start.index);
|
||||||
change_text.insert_str(0, removed.text());
|
change_lines.insert(0, removed.text().to_string());
|
||||||
|
|
||||||
// Re-add part of line after selection
|
// Re-add part of line after selection
|
||||||
if let Some(after) = after_opt {
|
if let Some(after) = after_opt {
|
||||||
|
|
@ -332,7 +332,7 @@ impl<'buffer> Edit<'buffer> for Editor<'buffer> {
|
||||||
ChangeItem {
|
ChangeItem {
|
||||||
start,
|
start,
|
||||||
end,
|
end,
|
||||||
text: change_text,
|
text: change_lines.join("\n"),
|
||||||
insert: false,
|
insert: false,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue