private void OnNewParseTree(object sender, ParseTreeChangedEventArgs e) { if (e.Tree != null && e.Tree.Root != null) { _tokens = e.Tree.Tokens; } if (TagsChanged != null) { TagsChanged(this, new SnapshotSpanEventArgs(new SnapshotSpan(_textBuffer.CurrentSnapshot, 0, _textBuffer.CurrentSnapshot.Length))); } }
private void OnNewParseTree(object sender, ParseTreeChangedEventArgs e) { if (e.Tree != null && e.Tree.Root != null) { _regions.Clear(); WalkSyntaxTreeForOutliningRegions(e.Tree.Root, _regions); } if (TagsChanged != null) { TagsChanged(this, new SnapshotSpanEventArgs(new SnapshotSpan(_textBuffer.CurrentSnapshot, 0, _textBuffer.CurrentSnapshot.Length))); } }
private void OnNewParseTree(object sender, ParseTreeChangedEventArgs e) { _syntaxErrorTags.Clear(); _syntaxErrorMessages = e.Tree.ParserMessages; foreach (LogMessage syntaxErrorMessage in _syntaxErrorMessages) { _syntaxErrorTags.Add(new TagSpan <ErrorTag>(new SnapshotSpan(_buffer.CurrentSnapshot, Math.Min(_buffer.CurrentSnapshot.Length, Math.Max(syntaxErrorMessage.Location.Position, 1)) - 1, 1), new ErrorTag("syntax error", syntaxErrorMessage.Message))); } if (TagsChanged != null) { TagsChanged(this, new SnapshotSpanEventArgs(new SnapshotSpan(_buffer.CurrentSnapshot, new Span(0, _buffer.CurrentSnapshot.Length)))); } }