public IEnumerable <ITagSpan <IOutliningRegionTag> > GetTags(NormalizedSnapshotSpanCollection spans) { IPythonProjectEntry entry; if (_enabled && _buffer.TryGetPythonProjectEntry(out entry)) { if (!_eventHooked) { entry.OnNewParseTree += OnNewParseTree; _eventHooked = true; } PythonAst ast; IAnalysisCookie cookie; entry.GetTreeAndCookie(out ast, out cookie); SnapshotCookie snapCookie = cookie as SnapshotCookie; if (ast != null && snapCookie != null && snapCookie.Snapshot.TextBuffer == spans[0].Snapshot.TextBuffer) // buffer could have changed if file was closed and re-opened { return(ProcessSuite(ast, snapCookie.Snapshot)); } } return(new ITagSpan <IOutliningRegionTag> [0]); }
public IEnumerable <ITagSpan <IBlockTag> > GetTags(NormalizedSnapshotSpanCollection spans) { IGeneroProjectEntry classifier; if (_buffer.TryGetAnalysis(out classifier)) { if (!_eventHooked) { classifier.OnNewParseTree += OnNewParseTree; _eventHooked = true; } GeneroAst ast; IAnalysisCookie cookie; classifier.GetTreeAndCookie(out ast, out cookie); SnapshotCookie snapCookie = cookie as SnapshotCookie; if (ast != null && snapCookie != null && snapCookie.Snapshot.TextBuffer == spans[0].Snapshot.TextBuffer) { // buffer could have changed if file was closed and re-opened return(ProcessSuite(spans, ast, ast.Body as ModuleNode, snapCookie.Snapshot, true)); } } return(new ITagSpan <IBlockTag> [0]); }
public IEnumerable <ITagSpan <IOutliningRegionTag> > GetTags(NormalizedSnapshotSpanCollection spans) { IPythonProjectEntry classifier; if (_enabled && _buffer.TryGetPythonAnalysis(out classifier)) { if (!_eventHooked) { classifier.OnNewParseTree += OnNewParseTree; _eventHooked = true; } PythonAst ast; IAnalysisCookie cookie; classifier.GetTreeAndCookie(out ast, out cookie); SnapshotCookie snapCookie = cookie as SnapshotCookie; if (ast != null && snapCookie != null) { return(ProcessSuite(spans, ast.Body as SuiteStatement, snapCookie.Snapshot, true)); } } return(new ITagSpan <IOutliningRegionTag> [0]); }