Ejemplo n.º 1
0
        private void timer_Tick(object sender, EventArgs e)
        {
            DocumentParser parser = backGroundParser.GetResult();

            if (parser == null)
            {
                return;
            }
            if (TextFile == null)
            {
                return;
            }
            if (TextFile != parser.TextFile)
            {
                return;
            }
            Controller.AppendLog("ID " + CodeDocument.EditID.ToString() + " parserID " + parser.EditId.ToString());

            if (CodeDocument.EditID != parser.EditId)
            {
                Controller.AppendLog("parsed mismatch " + DateTime.Now.ToString());
                return;
            }

            Controller.AppendLog("parsed " + DateTime.Now.ToString());

            CodeDocument.CopyFrom(parser.Document);
            //CodeDocument.CopyColorMarkFrom(parser.Document);
            codeTextbox.Invoke(new Action(codeTextbox.Refresh));

            checkID("before accept parse normal");
            if (parser.ParsedDocument != null)
            {
                TextFile.AcceptParsedDocument(parser.ParsedDocument);
            }

            Controller.MessageView.Update(TextFile.ParsedDocument);
            codeTextbox.ReDrawHighlight();

            Controller.NavigatePanel.UpdateVisibleNode();
            Controller.NavigatePanel.Refresh();

            checkID("after accept parse normal");
        }