public override bool DeletePrevious() { SnapshotSpan previousElementSpan = GetPreviousTextElementSpan(); if ((previousElementSpan.Length > 0) && (_textView.AdvancedTextView.TextViewModel.IsPointInVisualBuffer(AdvancedTextPoint, PositionAffinity.Successor)) && (!_textView.AdvancedTextView.TextViewModel.IsPointInVisualBuffer(previousElementSpan.End - 1, PositionAffinity.Successor))) { // Since the previous character is not visible but the current one is, delete // the entire previous text element span. return(PrimitivesUtilities.Delete(previousElementSpan)); } else { // Delegate to the buffer point's DeletePrevious implementation to handle deleting single // characters. A single character should be deleted if this point and the previous one // are both visible or both not visible. return(_bufferPoint.DeletePrevious()); } }