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

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

            return(index + 1 < LoggedEvents.Count && LoggedEvents[index + 1] is PasteCommand);
        }
        bool ILogProvider.CausedByAssist(DocumentChange dc)
        {
            Replace replace = dc as Replace;

            if (replace == null)
            {
                return(false);
            }

            int index = LoggedEvents.IndexOf(dc);

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

            return(index > 0 && LoggedEvents[index - 1] is AssistCommand);
        }
        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);
        }
        bool ILogProvider.CausedByInsertString(DocumentChange dc)
        {
            Insert insert = dc as Insert;

            if (insert == null)
            {
                return(false);
            }

            int index = LoggedEvents.IndexOf(dc);

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

            if (index + 1 >= LoggedEvents.Count)
            {
                return(false);
            }

            return(LoggedEvents[index + 1] is InsertStringCommand);
        }