public override UndoableCommand Clone() { return new ReplaceTextCommand(ts, new List<Range>(ranges), insertedText); }