当前位置: 首页>>代码示例>>Java>>正文


Java PsiElementUsage.getElement方法代码示例

本文整理汇总了Java中com.intellij.usages.rules.PsiElementUsage.getElement方法的典型用法代码示例。如果您正苦于以下问题:Java PsiElementUsage.getElement方法的具体用法?Java PsiElementUsage.getElement怎么用?Java PsiElementUsage.getElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.intellij.usages.rules.PsiElementUsage的用法示例。


在下文中一共展示了PsiElementUsage.getElement方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: 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

示例4: 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

示例5: createPresentation

import com.intellij.usages.rules.PsiElementUsage; //导入方法依赖的package包/类
@NotNull
private static UsageViewPresentation createPresentation(@NotNull UsageViewDescriptor descriptor, @NotNull Usage[] usages) {
  UsageViewPresentation presentation = new UsageViewPresentation();
  presentation.setTabText(RefactoringBundle.message("usageView.tabText"));
  presentation.setTargetsNodeText(descriptor.getProcessedElementsHeader());
  presentation.setShowReadOnlyStatusAsRed(true);
  presentation.setShowCancelButton(true);
  presentation.setUsagesString(RefactoringBundle.message("usageView.usagesText"));
  int codeUsageCount = 0;
  int nonCodeUsageCount = 0;
  int dynamicUsagesCount = 0;
  Set<PsiFile> codeFiles = new HashSet<PsiFile>();
  Set<PsiFile> nonCodeFiles = new HashSet<PsiFile>();
  Set<PsiFile> dynamicUsagesCodeFiles = new HashSet<PsiFile>();

  for (Usage usage : usages) {
    if (usage instanceof PsiElementUsage) {
      final PsiElementUsage elementUsage = (PsiElementUsage)usage;
      final PsiElement element = elementUsage.getElement();
      if (element == null) continue;
      final PsiFile containingFile = element.getContainingFile();
      if (elementUsage.isNonCodeUsage()) {
        nonCodeUsageCount++;
        nonCodeFiles.add(containingFile);
      }
      else {
        codeUsageCount++;
        codeFiles.add(containingFile);
      }
      if (usage instanceof UsageInfo2UsageAdapter) {
        final UsageInfo usageInfo = ((UsageInfo2UsageAdapter)usage).getUsageInfo();
        if (usageInfo instanceof MoveRenameUsageInfo && usageInfo.isDynamicUsage()) {
          dynamicUsagesCount++;
          dynamicUsagesCodeFiles.add(containingFile);
        }
      }
    }
  }
  codeFiles.remove(null);
  nonCodeFiles.remove(null);
  dynamicUsagesCodeFiles.remove(null);

  String codeReferencesText = descriptor.getCodeReferencesText(codeUsageCount, codeFiles.size());
  presentation.setCodeUsagesString(codeReferencesText);
  final String commentReferencesText = descriptor.getCommentReferencesText(nonCodeUsageCount, nonCodeFiles.size());
  if (commentReferencesText != null) {
    presentation.setNonCodeUsagesString(commentReferencesText);
  }
  presentation.setDynamicUsagesString("Dynamic " + StringUtil.decapitalize(descriptor.getCodeReferencesText(dynamicUsagesCount, dynamicUsagesCodeFiles.size())));
  String generatedCodeString;
  if (codeReferencesText.contains("in code")) {
    generatedCodeString = StringUtil.replace(codeReferencesText, "in code", "in generated code");
  }
  else {
    generatedCodeString = codeReferencesText + " in generated code";
  }
  presentation.setUsagesInGeneratedCodeString(generatedCodeString);
  return presentation;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:60,代码来源:BaseRefactoringProcessor.java

示例6: createPresentation

import com.intellij.usages.rules.PsiElementUsage; //导入方法依赖的package包/类
private static UsageViewPresentation createPresentation(UsageViewDescriptor descriptor, final Usage[] usages) {
  UsageViewPresentation presentation = new UsageViewPresentation();
  presentation.setTabText(RefactoringBundle.message("usageView.tabText"));
  presentation.setTargetsNodeText(descriptor.getProcessedElementsHeader());
  presentation.setShowReadOnlyStatusAsRed(true);
  presentation.setShowCancelButton(true);
  presentation.setUsagesString(RefactoringBundle.message("usageView.usagesText"));
  int codeUsageCount = 0;
  int nonCodeUsageCount = 0;
  int dynamicUsagesCount = 0;
  Set<PsiFile> codeFiles = new HashSet<PsiFile>();
  Set<PsiFile> nonCodeFiles = new HashSet<PsiFile>();
  Set<PsiFile> dynamicUsagesCodeFiles = new HashSet<PsiFile>();

  for (Usage usage : usages) {
    if (usage instanceof PsiElementUsage) {
      final PsiElementUsage elementUsage = (PsiElementUsage)usage;
      final PsiElement element = elementUsage.getElement();
      if (element == null) continue;
      final PsiFile containingFile = element.getContainingFile();
      if (elementUsage.isNonCodeUsage()) {
        nonCodeUsageCount++;
        nonCodeFiles.add(containingFile);
      }
      else {
        codeUsageCount++;
        codeFiles.add(containingFile);
      }
      if (usage instanceof UsageInfo2UsageAdapter) {
        final UsageInfo usageInfo = ((UsageInfo2UsageAdapter)usage).getUsageInfo();
        if (usageInfo instanceof MoveRenameUsageInfo && usageInfo.isDynamicUsage()) {
          dynamicUsagesCount++;
          dynamicUsagesCodeFiles.add(containingFile);
        }
      }
    }
  }
  codeFiles.remove(null);
  nonCodeFiles.remove(null);
  dynamicUsagesCodeFiles.remove(null);

  presentation.setCodeUsagesString(descriptor.getCodeReferencesText(codeUsageCount, codeFiles.size()));
  presentation.setNonCodeUsagesString(descriptor.getCommentReferencesText(nonCodeUsageCount, nonCodeFiles.size()));
  presentation.setDynamicUsagesString("Dynamic " + StringUtil.decapitalize(descriptor.getCodeReferencesText(dynamicUsagesCount, dynamicUsagesCodeFiles.size())));
  return presentation;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:47,代码来源:BaseRefactoringProcessor.java

示例7: createPresentation

import com.intellij.usages.rules.PsiElementUsage; //导入方法依赖的package包/类
@Nonnull
private static UsageViewPresentation createPresentation(@Nonnull UsageViewDescriptor descriptor, @Nonnull Usage[] usages) {
  UsageViewPresentation presentation = new UsageViewPresentation();
  presentation.setTabText(RefactoringBundle.message("usageView.tabText"));
  presentation.setTargetsNodeText(descriptor.getProcessedElementsHeader());
  presentation.setShowReadOnlyStatusAsRed(true);
  presentation.setShowCancelButton(true);
  presentation.setUsagesString(RefactoringBundle.message("usageView.usagesText"));
  int codeUsageCount = 0;
  int nonCodeUsageCount = 0;
  int dynamicUsagesCount = 0;
  Set<PsiFile> codeFiles = new HashSet<>();
  Set<PsiFile> nonCodeFiles = new HashSet<>();
  Set<PsiFile> dynamicUsagesCodeFiles = new HashSet<>();

  for (Usage usage : usages) {
    if (usage instanceof PsiElementUsage) {
      final PsiElementUsage elementUsage = (PsiElementUsage)usage;
      final PsiElement element = elementUsage.getElement();
      if (element == null) continue;
      final PsiFile containingFile = element.getContainingFile();
      if (elementUsage.isNonCodeUsage()) {
        nonCodeUsageCount++;
        nonCodeFiles.add(containingFile);
      }
      else {
        codeUsageCount++;
        codeFiles.add(containingFile);
      }
      if (usage instanceof UsageInfo2UsageAdapter) {
        final UsageInfo usageInfo = ((UsageInfo2UsageAdapter)usage).getUsageInfo();
        if (usageInfo instanceof MoveRenameUsageInfo && usageInfo.isDynamicUsage()) {
          dynamicUsagesCount++;
          dynamicUsagesCodeFiles.add(containingFile);
        }
      }
    }
  }
  codeFiles.remove(null);
  nonCodeFiles.remove(null);
  dynamicUsagesCodeFiles.remove(null);

  String codeReferencesText = descriptor.getCodeReferencesText(codeUsageCount, codeFiles.size());
  presentation.setCodeUsagesString(codeReferencesText);
  final String commentReferencesText = descriptor.getCommentReferencesText(nonCodeUsageCount, nonCodeFiles.size());
  if (commentReferencesText != null) {
    presentation.setNonCodeUsagesString(commentReferencesText);
  }
  presentation.setDynamicUsagesString("Dynamic " + StringUtil.decapitalize(descriptor.getCodeReferencesText(dynamicUsagesCount, dynamicUsagesCodeFiles.size())));
  String generatedCodeString;
  if (codeReferencesText.contains("in code")) {
    generatedCodeString = StringUtil.replace(codeReferencesText, "in code", "in generated code");
  }
  else {
    generatedCodeString = codeReferencesText + " in generated code";
  }
  presentation.setUsagesInGeneratedCodeString(generatedCodeString);
  return presentation;
}
 
开发者ID:consulo,项目名称:consulo,代码行数:60,代码来源:BaseRefactoringProcessor.java


注:本文中的com.intellij.usages.rules.PsiElementUsage.getElement方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。