下面列出了怎么用com.intellij.psi.search.searches.DefinitionsScopedSearch的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public boolean execute(@Nonnull DefinitionsScopedSearch.SearchParameters queryParameters, @Nonnull final Processor<? super PsiElement> consumer)
{
final PsiElement element = queryParameters.getElement();
if(element instanceof DotNetTypeDeclaration)
{
return TypeInheritorsSearch.search((DotNetTypeDeclaration) element, queryParameters.getScope(), queryParameters.isCheckDeep(), true,
CSharpTransform.INSTANCE).forEach(new Processor<DotNetTypeDeclaration>()
{
@Override
public boolean process(DotNetTypeDeclaration typeDeclaration)
{
return consumer.process(typeDeclaration);
}
});
}
return true;
}
@Override
public boolean execute(@Nonnull DefinitionsScopedSearch.SearchParameters queryParameters, @Nonnull Processor<? super PsiElement> consumer)
{
PsiElement element = queryParameters.getElement();
if(element instanceof DotNetVirtualImplementOwner)
{
Collection<DotNetVirtualImplementOwner> members = ReadAction.compute(() -> OverrideUtil.collectOverridenMembers((DotNetVirtualImplementOwner) element));
return ContainerUtil.process(members, consumer);
}
return true;
}
public static List<HaxeClass> getItemsByQName(final HaxeClass haxeClass) {
final List<HaxeClass> result = new ArrayList<HaxeClass>();
DefinitionsScopedSearch.search(haxeClass).forEach(element -> {
if (element instanceof HaxeClass) {
result.add((HaxeClass)element);
}
return true;
});
return result;
}
@RequiredUIAccess
@Override
public void update(final AnActionEvent event) {
if (!DefinitionsScopedSearch.INSTANCE.hasAnyExecutors()) {
event.getPresentation().setVisible(false);
}
else {
super.update(event);
}
}
@Override
public boolean execute(@Nonnull DefinitionsScopedSearch.SearchParameters queryParameters, @Nonnull Processor<? super PsiElement> consumer) {
PsiElement queryParametersElement = queryParameters.getElement();
if (queryParametersElement instanceof PomTargetPsiElement) {
final PomTarget target = ((PomTargetPsiElement)queryParametersElement).getTarget();
if (target instanceof PsiTarget) {
if (!consumer.process(((PsiTarget)target).getNavigationElement())) return false;
}
}
return true;
}
protected Query<PsiElement> search(PsiElement element, Editor editor) {
return DefinitionsScopedSearch.search(element, getSearchScope(element, editor), isSearchDeep());
}