//List<TextEditorDataState> states = new List<TextEditorDataState> ();

        void OnBeginUndo(object sender, EventArgs args)
        {
            savedCaretPos  = Caret.Offset;
            savedSelection = Selection.Clone(MainSelection);
        }