void CopySelectionToClipboard(Selection selection)
        {
            if (selection.IsEmpty)
            {
                return;
            }

            WpfUtilities.SetClipboardText(this.Buffer.TextData.ToString(selection.Range.Start, selection.Range.End));
        }
        void DeleteSelection(Selection selection)
        {
            Debug.Assert(!selection.IsEmpty, "Can't delete an empty selection");

            if ((selection.TopVirtualSpaces > 0) && (selection.BottomVirtualSpaces > 0) && (selection.Span.Start.Line == selection.Span.End.Line))
            {
                // No change to document, only deleting virtual space.
                MoveCaret(selection.Span.Start, false);
                return;
            }

            ReplaceText(selection.Range.Start, selection.Range.End, TextData.FromString(new string(' ', selection.TopVirtualSpaces)), true);
        }