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; }
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); }