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) {
|
fn newline(&mut self) {
|
||||||
let (r, col) = self.cursor;
|
let (r, col) = self.cursor;
|
||||||
let col = col.min(self.buffer[r].len());
|
let col = col.min(self.buffer[r].len());
|
||||||
@@ -479,6 +490,7 @@ fn step(
|
|||||||
match key.code {
|
match key.code {
|
||||||
KeyCode::Char(c) if !ctrl => editor.insert_char(c),
|
KeyCode::Char(c) if !ctrl => editor.insert_char(c),
|
||||||
KeyCode::Backspace => editor.backspace(),
|
KeyCode::Backspace => editor.backspace(),
|
||||||
|
KeyCode::Delete => editor.delete(),
|
||||||
KeyCode::Enter => editor.newline(),
|
KeyCode::Enter => editor.newline(),
|
||||||
KeyCode::Left => editor.left(),
|
KeyCode::Left => editor.left(),
|
||||||
KeyCode::Right => editor.right(),
|
KeyCode::Right => editor.right(),
|
||||||
|
|||||||
Reference in New Issue
Block a user