BlockStructureData?CreateBlockStructureData(CodeBracesRange info, ITextSnapshot snapshot) { var blockKind = GetBlockKind(info.Flags); if (blockKind == BlockStructureKind.None) { return(null); } if (info.Right.End > snapshot.Length) { return(null); } if (info.Left.End > info.Right.Start) { return(null); } var top = new SnapshotSpan(snapshot, info.Left.Start, info.Left.Length); var bottom = new SnapshotSpan(snapshot, info.Right.Start, info.Right.Length); return(new BlockStructureData(top, bottom, blockKind)); }
void Add(CodeBracesRange curr) { list.Add(curr); listStack.Push(list.ToArray()); infos.Add(new SpanData <CodeBracesRange[]>(new Span(curr.Left.Start, 0), listStack.Peek())); }