Beispiel #1
0
        private void ProcessBehaviorContainer(IDeclaredElement element)
        {
            var solution = element.GetSolution();

            var finder       = solution.GetPsiServices().Finder;
            var searchDomain = _searchDomainFactory.CreateSearchDomain(solution, false);
            var consumer     = new SearchResultsConsumer();
            var progress     = NullProgressIndicator.Create();

            finder.Find(new[] { element }, searchDomain, consumer, SearchPattern.FIND_USAGES, progress);

            var contexts = consumer.GetOccurrences()
                           .OfType <ReferenceOccurrence>()
                           .Select(x => x.GetTypeElement().GetValidDeclaredElement())
                           .OfType <IClass>()
                           .Where(x => x.IsContext());

            foreach (var context in contexts)
            {
                var type        = context.AsTypeInfo();
                var declaration = context.GetDeclarations().FirstOrDefault();

                if (declaration != null)
                {
                    ProcessContext(type, declaration, false);

                    foreach (var field in type.GetFields())
                    {
                        ProcessField(declaration.GetProject(), field);
                    }
                }
            }
        }
    public override ICollection<IOccurence> Search(IProgressIndicator progressIndicator)
    {
      var declaredElement = myTarget.GetValidDeclaredElement();
      if (declaredElement == null)
        return EmptyList<IOccurence>.InstanceList;

      var consumer = new SearchResultsConsumer();
      declaredElement.GetPsiServices().AsyncFinder.FindDeclarations(declaredElement, progressIndicator, consumer);
      var result = consumer.GetOccurences();

      return result;
    }
Beispiel #3
0
        public override ICollection <IOccurence> Search(IProgressIndicator progressIndicator)
        {
            var declaredElement = myTarget.GetValidDeclaredElement();

            if (declaredElement == null)
            {
                return(EmptyList <IOccurence> .InstanceList);
            }

            var consumer = new SearchResultsConsumer();

            declaredElement.GetPsiServices().AsyncFinder.FindDeclarations(declaredElement, progressIndicator, consumer);
            var result = consumer.GetOccurences();

            return(result);
        }