本文整理汇总了Java中com.intellij.usages.rules.PsiElementUsage类的典型用法代码示例。如果您正苦于以下问题:Java PsiElementUsage类的具体用法?Java PsiElementUsage怎么用?Java PsiElementUsage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PsiElementUsage类属于com.intellij.usages.rules包,在下文中一共展示了PsiElementUsage类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: groupUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public UsageGroup groupUsage(@NotNull Usage usage) {
if (!(usage instanceof PsiElementUsage)) {
return null;
}
PsiElementUsage elementUsage = (PsiElementUsage)usage;
PsiElement element = elementUsage.getElement();
VirtualFile virtualFile = PsiUtilCore.getVirtualFile(element);
if (virtualFile == null) {
return null;
}
ProjectFileIndex fileIndex = ProjectRootManager.getInstance(element.getProject()).getFileIndex();
boolean isInLib = fileIndex.isInLibraryClasses(virtualFile) || fileIndex.isInLibrarySource(virtualFile);
if (isInLib) return LIBRARY;
boolean isInTest = fileIndex.isInTestSourceContent(virtualFile);
return isInTest ? TEST : PRODUCTION;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:20,代码来源:UsageScopeGroupingRule.java
示例2: groupUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public UsageGroup groupUsage(@NotNull Usage usage, @NotNull UsageTarget[] targets) {
if (usage instanceof PsiElementUsage) {
PsiElementUsage elementUsage = (PsiElementUsage)usage;
PsiElement element = elementUsage.getElement();
UsageType usageType = getUsageType(element, targets);
if (usageType == null && element instanceof PsiFile && elementUsage instanceof UsageInfo2UsageAdapter) {
usageType = ((UsageInfo2UsageAdapter)elementUsage).getUsageType();
}
if (usageType != null) return new UsageTypeGroup(usageType);
if (usage instanceof ReadWriteAccessUsage) {
ReadWriteAccessUsage u = (ReadWriteAccessUsage)usage;
if (u.isAccessedForWriting()) return new UsageTypeGroup(UsageType.WRITE);
if (u.isAccessedForReading()) return new UsageTypeGroup(UsageType.READ);
}
return new UsageTypeGroup(UsageType.UNCLASSIFIED);
}
return null;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:27,代码来源:UsageTypeGroupingRule.java
示例3: isSelfUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
public static boolean isSelfUsage(@NotNull final Usage usage, @NotNull final UsageTarget[] searchForTarget) {
if (!(usage instanceof PsiElementUsage)) return false;
return ApplicationManager.getApplication().runReadAction(new Computable<Boolean>() {
@Override
public Boolean compute() {
final PsiElement element = ((PsiElementUsage)usage).getElement();
if (element == null) return false;
for (UsageTarget ut : searchForTarget) {
if (ut instanceof PsiElementUsageTarget) {
if (isSelfUsage(element, ((PsiElementUsageTarget)ut).getElement())) {
return true;
}
}
}
return false;
}
});
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:20,代码来源:UsageViewManager.java
示例4: collectFiles
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
protected static Set<VirtualFile> collectFiles(Set<Usage> usages, boolean findFirst) {
final Set<VirtualFile> files = new HashSet<VirtualFile>();
for (Usage usage : usages) {
if (usage instanceof PsiElementUsage) {
PsiElement psiElement = ((PsiElementUsage)usage).getElement();
if (psiElement != null && psiElement.isValid()) {
PsiFile psiFile = psiElement.getContainingFile();
if (psiFile != null) {
VirtualFile file = psiFile.getVirtualFile();
if (file != null) {
files.add(file);
if (findFirst) return files;
}
}
}
}
}
return files;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:20,代码来源:PredefinedSearchScopeProviderImpl.java
示例5: findUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
/**
* Finds all usages of element. Works much like method in {@link com.intellij.testFramework.fixtures.CodeInsightTestFixture#findUsages(com.intellij.psi.PsiElement)},
* but supports {@link com.intellij.find.findUsages.CustomUsageSearcher} and {@link com.intellij.psi.search.searches.ReferencesSearch} as well
*
* @param element what to find
* @return usages
*/
@NotNull
protected Collection<PsiElement> findUsage(@NotNull final PsiElement element) {
final Collection<PsiElement> result = new ArrayList<PsiElement>();
final CollectProcessor<Usage> usageCollector = new CollectProcessor<Usage>();
for (final CustomUsageSearcher searcher : CustomUsageSearcher.EP_NAME.getExtensions()) {
searcher.processElementUsages(element, usageCollector, new FindUsagesOptions(myFixture.getProject()));
}
for (final Usage usage : usageCollector.getResults()) {
if (usage instanceof PsiElementUsage) {
result.add(((PsiElementUsage)usage).getElement());
}
}
for (final PsiReference reference : ReferencesSearch.search(element).findAll()) {
result.add(reference.getElement());
}
for (final UsageInfo info : myFixture.findUsages(element)) {
result.add(info.getElement());
}
return result;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:30,代码来源:PyTestCase.java
示例6: groupUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public UsageGroup groupUsage(@NotNull Usage usage) {
if (usage instanceof PsiElementUsage) {
if (usage instanceof UsageInfo2UsageAdapter) {
final UsageInfo usageInfo = ((UsageInfo2UsageAdapter)usage).getUsageInfo();
if (usageInfo.isDynamicUsage()) {
return DynamicUsageGroup.INSTANCE;
}
}
if (((PsiElementUsage)usage).isNonCodeUsage()) {
return NonCodeUsageGroup.INSTANCE;
}
else {
return CodeUsageGroup.INSTANCE;
}
}
return null;
}
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:19,代码来源:NonCodeUsageGroupingRule.java
示例7: groupUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public UsageGroup groupUsage(@NotNull Usage usage, @NotNull UsageTarget[] targets) {
if (usage instanceof PsiElementUsage) {
PsiElementUsage elementUsage = (PsiElementUsage)usage;
UsageType usageType = getUsageType(elementUsage.getElement(), targets);
if (usageType != null) return new UsageTypeGroup(usageType);
if (usage instanceof ReadWriteAccessUsage) {
ReadWriteAccessUsage u = (ReadWriteAccessUsage)usage;
if (u.isAccessedForWriting()) return new UsageTypeGroup(UsageType.WRITE);
if (u.isAccessedForReading()) return new UsageTypeGroup(UsageType.READ);
}
return new UsageTypeGroup(UsageType.UNCLASSIFIED);
}
return null;
}
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:21,代码来源:UsageTypeGroupingRule.java
示例8: getUsageGroupingRule
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Nullable
@Override
public UsageGroupingRule getUsageGroupingRule(Project project)
{
return new UsageGroupingRule()
{
@Nullable
@Override
public UsageGroup groupUsage(@NotNull Usage usage)
{
if(!(usage instanceof PsiElementUsage))
{
return null;
}
PsiElement element = ((PsiElementUsage) usage).getElement();
DotNetTypeDeclaration typeDeclaration = PsiTreeUtil.getParentOfType(element, DotNetTypeDeclaration.class);
if(typeDeclaration != null)
{
return new CSharpBaseGroupingRule<DotNetTypeDeclaration>(typeDeclaration);
}
return null;
}
};
}
开发者ID:consulo,项目名称:consulo-csharp,代码行数:26,代码来源:CSharpTypeGroupRuleProvider.java
示例9: getUsageGroupingRule
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Nullable
@Override
public UsageGroupingRule getUsageGroupingRule(Project project)
{
return new UsageGroupingRule()
{
@Nullable
@Override
public UsageGroup groupUsage(@NotNull Usage usage)
{
if(!(usage instanceof PsiElementUsage))
{
return null;
}
PsiElement element = ((PsiElementUsage) usage).getElement();
DotNetCodeBlockOwner codeBlockOwner = PsiTreeUtil.getParentOfType(element, DotNetCodeBlockOwner.class);
if(codeBlockOwner != null)
{
return new CSharpBaseGroupingRule<DotNetCodeBlockOwner>(codeBlockOwner);
}
return null;
}
};
}
开发者ID:consulo,项目名称:consulo-csharp,代码行数:26,代码来源:CSharpCodeBlockOwnerGroupRuleProvider.java
示例10: groupUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public UsageGroup groupUsage(@Nonnull Usage usage) {
if (!(usage instanceof PsiElementUsage)) {
return null;
}
PsiElementUsage elementUsage = (PsiElementUsage)usage;
PsiElement element = elementUsage.getElement();
VirtualFile virtualFile = PsiUtilCore.getVirtualFile(element);
if (virtualFile == null) {
return null;
}
ProjectFileIndex fileIndex = ProjectRootManager.getInstance(element.getProject()).getFileIndex();
boolean isInLib = fileIndex.isInLibraryClasses(virtualFile) || fileIndex.isInLibrarySource(virtualFile);
if (isInLib) return LIBRARY;
boolean isInTest = fileIndex.isInTestSourceContent(virtualFile);
return isInTest ? TEST : PRODUCTION;
}
开发者ID:consulo,项目名称:consulo,代码行数:20,代码来源:UsageScopeGroupingRule.java
示例11: groupUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public UsageGroup groupUsage(@Nonnull Usage usage) {
if (usage instanceof UsageInFile) {
VirtualFile file = ((UsageInFile)usage).getFile();
if (file != null) {
if (GeneratedSourcesFilter.isGenerated(myProject, file)) {
return UsageInGeneratedCodeGroup.INSTANCE;
}
}
}
if (usage instanceof PsiElementUsage) {
if (usage instanceof UsageInfo2UsageAdapter) {
final UsageInfo usageInfo = ((UsageInfo2UsageAdapter)usage).getUsageInfo();
if (usageInfo.isDynamicUsage()) {
return DynamicUsageGroup.INSTANCE;
}
}
if (((PsiElementUsage)usage).isNonCodeUsage()) {
return NonCodeUsageGroup.INSTANCE;
}
else {
return CodeUsageGroup.INSTANCE;
}
}
return null;
}
开发者ID:consulo,项目名称:consulo,代码行数:27,代码来源:NonCodeUsageGroupingRule.java
示例12: getParentGroupFor
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@javax.annotation.Nullable
@Override
protected UsageGroup getParentGroupFor(@Nonnull Usage usage, @Nonnull UsageTarget[] targets) {
if (usage instanceof PsiElementUsage) {
PsiElementUsage elementUsage = (PsiElementUsage)usage;
PsiElement element = elementUsage.getElement();
UsageType usageType = getUsageType(element, targets);
if (usageType == null && element instanceof PsiFile && elementUsage instanceof UsageInfo2UsageAdapter) {
usageType = ((UsageInfo2UsageAdapter)elementUsage).getUsageType();
}
if (usageType != null) return new UsageTypeGroup(usageType);
if (usage instanceof ReadWriteAccessUsage) {
ReadWriteAccessUsage u = (ReadWriteAccessUsage)usage;
if (u.isAccessedForWriting()) return new UsageTypeGroup(UsageType.WRITE);
if (u.isAccessedForReading()) return new UsageTypeGroup(UsageType.READ);
}
return new UsageTypeGroup(UsageType.UNCLASSIFIED);
}
return null;
}
开发者ID:consulo,项目名称:consulo,代码行数:27,代码来源:UsageTypeGroupingRule.java
示例13: isSelfUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
public static boolean isSelfUsage(@Nonnull final Usage usage, @Nonnull final UsageTarget[] searchForTarget) {
if (!(usage instanceof PsiElementUsage)) return false;
return ApplicationManager.getApplication().runReadAction(new Computable<Boolean>() {
@Override
public Boolean compute() {
final PsiElement element = ((PsiElementUsage)usage).getElement();
if (element == null) return false;
for (UsageTarget ut : searchForTarget) {
if (ut instanceof PsiElementUsageTarget) {
if (isSelfUsage(element, ((PsiElementUsageTarget)ut).getElement())) {
return true;
}
}
}
return false;
}
});
}
开发者ID:consulo,项目名称:consulo,代码行数:20,代码来源:UsageViewManager.java
示例14: collectFiles
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
protected static Set<VirtualFile> collectFiles(Set<Usage> usages, boolean findFirst) {
final Set<VirtualFile> files = new HashSet<>();
for (Usage usage : usages) {
if (usage instanceof PsiElementUsage) {
PsiElement psiElement = ((PsiElementUsage)usage).getElement();
if (psiElement != null && psiElement.isValid()) {
PsiFile psiFile = psiElement.getContainingFile();
if (psiFile != null) {
VirtualFile file = psiFile.getVirtualFile();
if (file != null) {
files.add(file);
if (findFirst) return files;
}
}
}
}
}
return files;
}
开发者ID:consulo,项目名称:consulo,代码行数:20,代码来源:PredefinedSearchScopeProviderImpl.java
示例15: groupUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public UsageGroup groupUsage(@NotNull Usage usage) {
if (!(usage instanceof PsiElementUsage)) return null;
PsiElement psiElement = ((PsiElementUsage)usage).getElement();
PsiFile containingFile = psiElement.getContainingFile();
if (containingFile == null) return null;
InjectedLanguageManager manager = InjectedLanguageManager.getInstance(containingFile.getProject());
PsiFile topLevelFile = manager.getTopLevelFile(containingFile);
if (topLevelFile instanceof PsiJavaFile) {
PsiElement containingMethod = topLevelFile == containingFile ? psiElement : manager.getInjectionHost(containingFile);
if (usage instanceof UsageInfo2UsageAdapter && topLevelFile == containingFile) {
int offset = ((UsageInfo2UsageAdapter)usage).getUsageInfo().getNavigationOffset();
containingMethod = containingFile.findElementAt(offset);
}
do {
containingMethod = PsiTreeUtil.getParentOfType(containingMethod, PsiMethod.class, true);
if (containingMethod == null) break;
final PsiClass containingClass = ((PsiMethod)containingMethod).getContainingClass();
if (containingClass == null || containingClass.getQualifiedName() != null) break;
}
while (true);
if (containingMethod != null) {
return new MethodUsageGroup((PsiMethod)containingMethod);
}
}
return null;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:29,代码来源:MethodGroupingRule.java
示例16: isVisible
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public boolean isVisible(@NotNull Usage usage) {
final PsiElement psiElement = usage instanceof PsiElementUsage? ((PsiElementUsage)usage).getElement() : null;
if (psiElement != null) {
final PsiFile containingFile = psiElement.getContainingFile();
if (containingFile instanceof PsiJavaFile) {
// check whether the element is in the import list
final PsiImportList importList = PsiTreeUtil.getParentOfType(psiElement, PsiImportList.class, true);
return importList == null;
}
}
return true;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:14,代码来源:ImportFilteringRule.java
示例17: groupUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public UsageGroup groupUsage(@NotNull Usage usage) {
if (usage instanceof UsageInFile) {
VirtualFile file = ((UsageInFile)usage).getFile();
if (file != null) {
for (GeneratedSourcesFilter filter : myGeneratedSourcesFilters) {
if (filter.isGeneratedSource(file, myProject)) {
return UsageInGeneratedCodeGroup.INSTANCE;
}
}
}
}
if (usage instanceof PsiElementUsage) {
if (usage instanceof UsageInfo2UsageAdapter) {
final UsageInfo usageInfo = ((UsageInfo2UsageAdapter)usage).getUsageInfo();
if (usageInfo.isDynamicUsage()) {
return DynamicUsageGroup.INSTANCE;
}
}
if (((PsiElementUsage)usage).isNonCodeUsage()) {
return NonCodeUsageGroup.INSTANCE;
}
else {
return CodeUsageGroup.INSTANCE;
}
}
return null;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:29,代码来源:NonCodeUsageGroupingRule.java
示例18: isInScope
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
public static boolean isInScope(@NotNull Usage usage, @NotNull SearchScope searchScope) {
PsiElement element = null;
VirtualFile file = usage instanceof UsageInFile ? ((UsageInFile)usage).getFile() :
usage instanceof PsiElementUsage ? PsiUtilCore.getVirtualFile(element = ((PsiElementUsage)usage).getElement()) : null;
if (file != null) {
return isFileInScope(file, searchScope);
}
else if(element != null) {
return searchScope instanceof EverythingGlobalScope ||
searchScope instanceof ProjectScopeImpl ||
searchScope instanceof ProjectAndLibrariesScope;
}
return false;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:15,代码来源:UsageViewManagerImpl.java
示例19: groupUsage
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
public UsageGroup groupUsage(@NotNull Usage usage) {
if (!(usage instanceof PsiElementUsage)) return null;
final PsiElement psiElement = ((PsiElementUsage)usage).getElement();
final PyFunction pyFunction = PsiTreeUtil.getParentOfType(psiElement, PyFunction.class, false, PyClass.class);
if (pyFunction != null) {
return new PsiNamedElementUsageGroupBase<PyFunction>(pyFunction);
}
return null;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:10,代码来源:PyFunctionGroupingRuleProvider.java
示例20: isVisible
import com.intellij.usages.rules.PsiElementUsage; //导入依赖的package包/类
@Override
public boolean isVisible(@NotNull Usage usage) {
if (usage instanceof PsiElementUsage) {
final PsiElement psiElement = ((PsiElementUsage)usage).getElement();
final PsiFile containingFile = psiElement.getContainingFile();
if (containingFile instanceof PyFile) {
// check whether the element is in the import list
final PyImportStatementBase importStatement = PsiTreeUtil.getParentOfType(psiElement, PyImportStatementBase.class, true);
return importStatement == null;
}
}
return true;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:14,代码来源:PyImportFilteringRule.java
注:本文中的com.intellij.usages.rules.PsiElementUsage类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论