public TextChangeContext(EditorTree editorTree, TextChangeEventArgs change, TextChange pendingChanges)
{
EditorTree = editorTree;
NewStart = change.Start;
OldStart = change.OldStart;
OldLength = change.OldLength;
NewLength = change.NewLength;
OldTextProvider = change.OldText != null ? change.OldText : editorTree.AstRoot.TextProvider;
NewTextProvider = change.NewText != null ? change.NewText : new TextProvider(editorTree.TextBuffer.CurrentSnapshot, partial: true);
PendingChanges = pendingChanges;
TextChange textChange = new TextChange();
textChange.OldRange = this.OldRange;
textChange.OldTextProvider = this.OldTextProvider;
textChange.NewRange = this.NewRange;
textChange.NewTextProvider = this.NewTextProvider;
textChange.Version = this.NewTextProvider.Version;
PendingChanges.Combine(textChange);
}