Exemplo n.º 1
0
            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]);
            }
Exemplo n.º 2
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]);
        }
Exemplo n.º 3
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]);
            }