/// <summary> /// Processes the insert change for Type II backtracking detection. /// </summary> /// <param name="anEvent">An event.</param> /// <param name="offset">The offset.</param> /// <param name="insertedText">The inserted text.</param> /// <param name="logProvider">The log provider.</param> private void ProcessInsertType2(Event anEvent, int offset, string insertedText, ILogProvider logProvider) { // Do nothing if the insertion happened with a paste command. if (logProvider.CausedByPaste(anEvent)) { return; } if (logProvider.CausedByAutoFormatting(anEvent)) { return; } // See if there is are any previous deletions that contains this insertedText. foreach (var delete in this.DeleteSegments) { if (delete.Text.Contains(insertedText.Trim())) { if (this.FilterType2Backtracking(delete, insertedText)) { var desc = string.Format( "Type2 [{2} -> {3}]: \"{0}\" - \"{1}\"", delete.Text, insertedText, delete.Event.ID, anEvent.ID); var instance = new Type2BacktrackingPatternInstance( delete.Event, anEvent, desc); this.Patterns.Add(instance); } } // TODO Maybe consider very similar piece of code? } }