/// <summary>
/// Create a new text document with the specified initial text.
/// </summary>
public TextDocument(IEnumerable <char> initialText)
{
if (initialText == null)
{
throw new ArgumentNullException("initialText");
}
rope = new Rope <char>(initialText);
lineTree = new DocumentLineTree(this);
lineManager = new LineManager(lineTree, this);
lineTrackers.CollectionChanged += delegate { lineManager.UpdateListOfLineTrackers(); };
anchorTree = new TextAnchorTree(this);
undoStack = new UndoStack();
FireChangeEvents();
}