diff --git a/src/tui.rs b/src/tui.rs index db61754..b51f87e 100644 --- a/src/tui.rs +++ b/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(),