Delete forward in styled mode: delete visual char after cursor.
(&mut self)
| 680 | |
| 681 | /// Delete forward in styled mode: delete visual char after cursor. |
| 682 | pub fn delete_forward_styled(&mut self) { |
| 683 | if self.delete_selection_styled() { |
| 684 | return; |
| 685 | } |
| 686 | if self.no_styles_movement { |
| 687 | let cp = styling::cursor_to_content(&self.text, self.cursor_pos); |
| 688 | let content_len = styling::strip_styling(&self.text).chars().count(); |
| 689 | if cp < content_len { |
| 690 | self.text = styling::delete_content_range(&self.text, cp, cp + 1); |
| 691 | self.cursor_pos = styling::content_to_cursor(&self.text, cp, true); |
| 692 | let (cleaned, new_pos) = styling::cleanup_empty_styles(&self.text, self.cursor_pos); |
| 693 | self.text = cleaned; |
| 694 | self.cursor_pos = new_pos; |
| 695 | self.snap_to_content_pos(); |
| 696 | } |
| 697 | } else { |
| 698 | let vis_len = self.cursor_len_styled(); |
| 699 | if self.cursor_pos < vis_len { |
| 700 | self.text = styling::delete_visual_range(&self.text, self.cursor_pos, self.cursor_pos + 1); |
| 701 | let (cleaned, new_pos) = styling::cleanup_empty_styles(&self.text, self.cursor_pos); |
| 702 | self.text = cleaned; |
| 703 | self.cursor_pos = new_pos; |
| 704 | } |
| 705 | } |
| 706 | self.preferred_col = None; |
| 707 | self.reset_blink(); |
| 708 | } |
| 709 | |
| 710 | /// Backspace word in styled mode. |
| 711 | pub fn backspace_word_styled(&mut self) { |