bool ILogProvider.CausedByAutoFormatting(Event dc)
        {
            int index = LoggedEvents.IndexOf(dc);

            if (index < 0)
            {
                return(false);
            }

            EclipseCommand cmd = LoggedEvents.GetRange(index + 1, LoggedEvents.Count - index - 1)
                                 .OfType <Command>().FirstOrDefault() as EclipseCommand;

            if (cmd != null)
            {
                if (cmd.CommandID == "org.eclipse.jdt.ui.edit.text.java.format")
                {
                    return(true);
                }
            }

            return(false);
        }
        private void DetectRenaming(List <Event> list, List <EclipseCommand> renameList, List <PatternInstance> detectedPatterns, int i)
        {
            EclipseCommand renameCommand = renameList[i];

            int renameIndex = list.IndexOf(renameCommand);
            int length      = 0;

            for (int j = 1; j < LookaheadLimit && renameIndex + j * 2 < list.Count; ++j)
            {
                List <Event> sublist = list.GetRange(renameIndex + 1, j * 2);
                if (sublist.Any(x => x is EclipseCommand))
                {
                    break;
                }

                if (IsSymmetric(sublist.Cast <DocumentChange>().ToList()))
                {
                    length = j * 2;
                    break;
                }
            }

            detectedPatterns.Add(new PatternInstance(renameCommand, length, "Rename Element of Length " + length));
        }
        public static bool IsRenameCommand(Event anEvent)
        {
            EclipseCommand eclipseCommand = anEvent as EclipseCommand;

            return(eclipseCommand != null && eclipseCommand.CommandID == RenameCommand);
        }