private void OnIdle(object sender, EventArgs e) {
if (Thread.CurrentThread.ManagedThreadId != _ownerThreadId) {
throw new ThreadStateException("Method should only be called on the main thread");
}
if (TextBuffer == null || TextBuffer.EditInProgress)
return;
if (_lastChangeTime != DateTime.MinValue && TimeUtility.MillisecondsSinceUtc(_lastChangeTime) > _parserDelay) {
// Kick background parsing when idle slot comes so parser does not hit on every keystroke
ProcessPendingTextBufferChanges(async: true);
_lastChangeTime = DateTime.MinValue;
}
}