Make delete key work
This commit is contained in:
12
src/tui.rs
12
src/tui.rs
@@ -180,6 +180,17 @@ impl Editor {
|
||||
}
|
||||
}
|
||||
|
||||
fn delete(&mut self) {
|
||||
let (r, col) = self.cursor;
|
||||
let line_len = self.buffer[r].len();
|
||||
if col < line_len {
|
||||
self.buffer[r].remove(col);
|
||||
} else if r + 1 < self.buffer.len() {
|
||||
let next = self.buffer.remove(r + 1);
|
||||
self.buffer[r].push_str(&next);
|
||||
}
|
||||
}
|
||||
|
||||
fn newline(&mut self) {
|
||||
let (r, col) = self.cursor;
|
||||
let col = col.min(self.buffer[r].len());
|
||||
@@ -479,6 +490,7 @@ fn step(
|
||||
match key.code {
|
||||
KeyCode::Char(c) if !ctrl => editor.insert_char(c),
|
||||
KeyCode::Backspace => editor.backspace(),
|
||||
KeyCode::Delete => editor.delete(),
|
||||
KeyCode::Enter => editor.newline(),
|
||||
KeyCode::Left => editor.left(),
|
||||
KeyCode::Right => editor.right(),
|
||||
|
||||
Reference in New Issue
Block a user