public override bool DeletePrevious() { if (TextView.Selection.IsEmpty) { if (AdvancedCaret.InVirtualSpace) { AdvancedCaret.MoveToPreviousCaretPosition(); } else { if (!CaretPoint.DeletePrevious()) { return(false); } if (AdvancedCaret.InVirtualSpace) { AdvancedCaret.MoveTo(AdvancedCaret.Position.BufferPosition); } } } else { if (!TextView.Selection.Delete()) { return(false); } } AdvancedCaret.EnsureVisible(); return(true); }
public override void MoveToPreviousCharacter(bool extendSelection) { VirtualSnapshotPoint oldCaretPoint = this.AdvancedCaret.Position.VirtualBufferPosition; TextPoint startPoint = TextView.Selection.GetStartPoint(); bool selectionIsEmpty = TextView.Selection.IsEmpty; if (!extendSelection) { TextView.AdvancedTextView.Selection.Clear(); } if (!extendSelection && !selectionIsEmpty) { MoveTo(startPoint.CurrentPosition); } else { AdvancedCaret.MoveToPreviousCaretPosition(); } AdvancedCaret.EnsureVisible(); UpdateSelection(extendSelection, oldCaretPoint); }