Handles deletion of the character under the cursor.
(&mut self)
| 213 | |
| 214 | /// Handles deletion of the character under the cursor. |
| 215 | fn do_delete(&mut self) -> io::Result<DispatchResult> { |
| 216 | if self.pos >= self.line.len() { |
| 217 | return Ok(DispatchResult::Continue); |
| 218 | } |
| 219 | |
| 220 | if self.view_start == 0 && self.line.len() <= self.input_width { |
| 221 | self.erase_at(self.pos, self.pos)?; |
| 222 | self.sync_rendered(); |
| 223 | } else { |
| 224 | let old_pos = self.current_pos(); |
| 225 | let clear_len = self.rendered_len; |
| 226 | self.line.remove(self.pos); |
| 227 | self.view_start = self.adjust_view(self.pos, self.view_start); |
| 228 | self.sync_rendered(); |
| 229 | self.redraw_line(old_pos, clear_len, self.current_pos())?; |
| 230 | } |
| 231 | Ok(DispatchResult::Continue) |
| 232 | } |
| 233 | |
| 234 | /// Moves the cursor to the end of the line. |
| 235 | fn do_end(&mut self) -> io::Result<DispatchResult> { |
no test coverage detected