示例#1
0
 private void RunAnalysis(ITreeNode node)
 {
     ContextAnalysis.Analyse(
         node,
         null,
         _logger,
         context => { CurrentContext = context; },
         delegate { },
         delegate { });
 }
示例#2
0
 protected override bool AddLookupItems(CSharpCodeCompletionContext context, GroupedItemsCollector collector)
 {
     ContextAnalysis.Analyse(
         context.NodeInFile,
         null,
         _logger,
         OnSuccess,
         delegate { },
         delegate { });
     return(false);
 }
示例#3
0
        private Context RunAnalysis(ITreeNode node)
        {
            Context ctx = null;

            ContextAnalysis.Analyse(
                node,
                null,
                _logger,
                context => { ctx = context; },
                delegate { },
                delegate { });
            return(ctx);
        }
示例#4
0
        protected override bool AddLookupItems(CSharpCodeCompletionContext context, GroupedItemsCollector collector)
        {
            Action <Context> onSuccess = kaveContext =>
            {
                // TODO NameUpdate: untested addition (try/catch)
                try
                {
                    _currentQuery = _queryGen.Extract(kaveContext);
                }
                catch (Exception e)
                {
                    _logger.Error(e, "error while extracting query");
                    _currentQuery = null;
                }

                if (_currentQuery != null && IsAvailable())
                {
                    var rec = LoadIfAvailable();
                    if (rec != null)
                    {
                        try
                        {
                            var proposals = rec.Query(_currentQuery);

                            WrapExistingItems(collector, proposals);
                            WrapNewItems(collector, proposals);
                        }
                        catch (AssertException e)
                        {
                            _logger.Error(e);
                        }
                    }
                    else
                    {
                        _logger.Info("no recommender model found for {0}", _currentQuery.type);
                    }
                }
            };

            ContextAnalysis.Analyse(
                context.NodeInFile,
                null,
                _logger,
                onSuccess,
                delegate { },
                delegate { });

            return(base.AddLookupItems(context, collector));
        }
示例#5
0
        protected override bool AddLookupItems(CSharpCodeCompletionContext context, IItemsCollector collector)
        {
            LastException = null;
            var analysisResult = ContextAnalysis.Analyze(context.NodeInFile, null, MockLogger());

            LastContext          = analysisResult.Context;
            LastEntryPoints      = analysisResult.EntryPoints;
            LastCompletionMarker = analysisResult.CompletionMarker;
            if (IsPrintingType)
            {
                PrintType(context, LastCompletionMarker);
            }


            LastSST = LastContext.SST;

            return(base.AddLookupItems(context, collector));
        }
示例#6
0
        private void AnalyzeType(ICSharpTypeDeclaration aType, IPsiSourceFile psiSourceFile)
        {
            _logger.Info("Analyzing type '{0}'...", aType.CLRName);

            try
            {
                var ctx = ContextAnalysis.Analyze(aType, psiSourceFile, _logger).Context;
                _cbContext(ctx);
            }
            catch (Exception e)
            {
                _logger.Error(e);
            }

            foreach (var innerType in aType.TypeDeclarations.OfType <ICSharpTypeDeclaration>())
            {
                AnalyzeType(innerType, psiSourceFile);
            }
        }