Example #1
0
        public override IVsSimpleObjectList2 FindReferences()
        {
            var analyzer = this.Hierarchy.GetPythonProject().GetAnalyzer();


            List <AnalysisVariable> vars = new List <AnalysisVariable>();

            if (analyzer != null)
            {
                foreach (var value in _value.Values)
                {
                    foreach (var reference in value.locations.MaybeEnumerate())
                    {
                        var entry    = analyzer.GetAnalysisEntryFromPath(reference.file);
                        var analysis = analyzer.WaitForRequest(analyzer.AnalyzeExpressionAsync(
                                                                   entry,
                                                                   Name,
                                                                   new SourceLocation(0, reference.line, reference.column)
                                                                   ), "PythonLibraryNode.AnalyzeExpression");
                        vars.AddRange(analysis.Variables);
                    }
                }
            }

            return(EditFilter.GetFindRefLocations(
                       analyzer,
                       Site,
                       Name,
                       vars.ToArray()
                       ));
        }
Example #2
0
        public override IVsSimpleObjectList2 DoSearch(VSOBSEARCHCRITERIA2 criteria)
        {
            var node = _hierarchy as PythonFileNode;

            if (node != null)
            {
                var analysis = node.TryGetAnalysisEntry();

                if (analysis != null)
                {
                    string expr         = criteria.szName.Substring(criteria.szName.LastIndexOf(':') + 1);
                    var    exprAnalysis = analysis.Analyzer.WaitForRequest(analysis.Analyzer.AnalyzeExpressionAsync(
                                                                               analysis,
                                                                               criteria.szName.Substring(criteria.szName.LastIndexOf(':') + 1),
                                                                               new SourceLocation(1, 1)
                                                                               ), "PythonFileLibraryNode.DoSearch");

                    if (exprAnalysis != null)
                    {
                        return(EditFilter.GetFindRefLocations(analysis.Analyzer, _hierarchy.ProjectMgr.Site, expr, exprAnalysis.Variables));
                    }
                }
            }

            return(null);
        }
Example #3
0
        public override IVsSimpleObjectList2 DoSearch(VSOBSEARCHCRITERIA2 criteria)
        {
            var node = _hierarchy as PythonFileNode;

            if (node != null)
            {
                var analysis = node.GetProjectEntry() as IPythonProjectEntry;

                if (analysis != null)
                {
                    var exprAnalysis = new ExpressionAnalysis(
                        ((PythonProjectNode)node.ProjectMgr).GetAnalyzer(),
                        criteria.szName.Substring(criteria.szName.LastIndexOf(':') + 1),
                        analysis.Analysis,
                        0,
                        null,
                        null
                        );

                    return(EditFilter.GetFindRefLocations(_hierarchy.ProjectMgr.Site, exprAnalysis));
                }
            }

            return(null);
        }