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


Java HighlightUsagesHandler类代码示例

本文整理汇总了Java中com.intellij.codeInsight.highlighting.HighlightUsagesHandler的典型用法代码示例。如果您正苦于以下问题:Java HighlightUsagesHandler类的具体用法?Java HighlightUsagesHandler怎么用?Java HighlightUsagesHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


HighlightUsagesHandler类属于com.intellij.codeInsight.highlighting包,在下文中一共展示了HighlightUsagesHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: highlightExitPoints

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
private void highlightExitPoints(final LuaReturnStatement statement,
                                 final LuaBlock block) {
  final Instruction[] flow = block.getControlFlow();
  final Collection<PsiElement> exitStatements = findExitPointsAndStatements(flow);
  if (!exitStatements.contains(statement)) {
    return;
  }

  final PsiElement originalTarget = getExitTarget(statement);
  for (PsiElement exitStatement : exitStatements) {
    if (getExitTarget(exitStatement) == originalTarget) {
      addOccurrence(exitStatement);
    }
  }
  myStatusText = CodeInsightBundle.message("status.bar.exit.points.highlighted.message",
                                           exitStatements.size(),
                                           HighlightUsagesHandler.getShortcutText());
}
 
开发者ID:internetisalie,项目名称:lua-for-idea,代码行数:19,代码来源:LuaHighlightExitPointsHandler.java

示例2: highlightUsages

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
@Override
public void highlightUsages(@NotNull PsiFile file, @NotNull Editor editor, boolean clearHighlights) {
  PsiElement target = getElement();

  if (file instanceof PsiCompiledFile) file = ((PsiCompiledFile)file).getDecompiledPsiFile();

  Project project = target.getProject();
  final FindUsagesManager findUsagesManager = ((FindManagerImpl)FindManager.getInstance(project)).getFindUsagesManager();
  final FindUsagesHandler handler = findUsagesManager.getFindUsagesHandler(target, true);

  // in case of injected file, use host file to highlight all occurrences of the target in each injected file
  PsiFile context = InjectedLanguageManager.getInstance(project).getTopLevelFile(file);
  SearchScope searchScope = new LocalSearchScope(context);
  Collection<PsiReference> refs = handler == null
                                  ? ReferencesSearch.search(target, searchScope, false).findAll()
                                  : handler.findReferencesToHighlight(target, searchScope);

  new HighlightUsagesHandler.DoHighlightRunnable(new ArrayList<PsiReference>(refs), project, target,
                                                 editor, context, clearHighlights).run();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:21,代码来源:PsiElement2UsageTargetAdapter.java

示例3: highlightExitPoints

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
private void highlightExitPoints(final PyReturnStatement statement,
                                 final PyFunction function) {
  final ControlFlow flow = ControlFlowCache.getControlFlow(function);
  final Collection<PsiElement> exitStatements = findExitPointsAndStatements(flow);
  if (!exitStatements.contains(statement)) {
    return;
  }

  final PsiElement originalTarget = getExitTarget(statement);
  for (PsiElement exitStatement : exitStatements) {
    if (getExitTarget(exitStatement) == originalTarget) {
      addOccurrence(exitStatement);
    }
  }
  myStatusText = CodeInsightBundle.message("status.bar.exit.points.highlighted.message",
                                           exitStatements.size(),
                                           HighlightUsagesHandler.getShortcutText());
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:19,代码来源:PyHighlightExitPointsHandler.java

示例4: assertHighlighted

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
protected void assertHighlighted(VirtualFile file, HighlightInfo... expected) throws IOException {
  Editor editor = getEditor(file);
  HighlightUsagesHandler.invoke(myProject, editor, getTestPsiFile(file));

  RangeHighlighter[] highlighters = editor.getMarkupModel().getAllHighlighters();
  List<HighlightInfo> actual = new ArrayList<HighlightInfo>();
  for (RangeHighlighter each : highlighters) {
    if (!each.isValid()) continue;
    int offset = each.getStartOffset();
    PsiElement element = getTestPsiFile(file).findElementAt(offset);
    element = PsiTreeUtil.getParentOfType(element, XmlTag.class);
    String text = editor.getDocument().getText().substring(offset, each.getEndOffset());
    actual.add(new HighlightInfo(element, text));
  }

  assertUnorderedElementsAreEqual(actual, expected);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:18,代码来源:MavenDomTestCase.java

示例5: actionPerformed

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
@Override
public void actionPerformed(AnActionEvent e) {
  final Editor editor = PlatformDataKeys.EDITOR.getData(e.getDataContext());
  final Project project = PlatformDataKeys.PROJECT.getData(e.getDataContext());
  if (editor == null || project == null) return;
  String commandName = getTemplatePresentation().getText();
  if (commandName == null) commandName = "";

  CommandProcessor.getInstance().executeCommand(
    project,
    new Runnable() {
      @Override
      public void run() {
        PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
        try {
          HighlightUsagesHandler.invoke(project, editor, psiFile);
        }
        catch (IndexNotReadyException ex) {
          DumbService.getInstance(project).showDumbModeNotification(ActionsBundle.message("action.HighlightUsagesInFile.not.ready"));
        }
      }
    },
    commandName,
    null
  );
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:27,代码来源:HighlightUsagesAction.java

示例6: highlightUsages

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
@Override
public void highlightUsages(@Nonnull PsiFile file, @Nonnull Editor editor, boolean clearHighlights) {
  PsiElement target = getElement();

  if (file instanceof PsiCompiledFile) file = ((PsiCompiledFile)file).getDecompiledPsiFile();

  Project project = target.getProject();
  final FindUsagesManager findUsagesManager = ((FindManagerImpl)FindManager.getInstance(project)).getFindUsagesManager();
  final FindUsagesHandler handler = findUsagesManager.getFindUsagesHandler(target, true);

  // in case of injected file, use host file to highlight all occurrences of the target in each injected file
  PsiFile context = InjectedLanguageManager.getInstance(project).getTopLevelFile(file);
  SearchScope searchScope = new LocalSearchScope(context);
  Collection<PsiReference> refs = handler == null ? ReferencesSearch.search(target, searchScope, false).findAll() : handler.findReferencesToHighlight(target, searchScope);

  new HighlightUsagesHandler.DoHighlightRunnable(new ArrayList<>(refs), project, target, editor, context, clearHighlights).run();
}
 
开发者ID:consulo,项目名称:consulo,代码行数:18,代码来源:PsiElement2UsageTargetAdapter.java

示例7: modifyHighlightedArea

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
@Contract
protected void modifyHighlightedArea(
    @NotNull final Editor editor,
    @NotNull final List<PsiElement> column,
    final boolean clear
) {
    Validate.notNull(editor);
    Validate.notNull(column);

    if (null == editor.getProject()) {
        return;
    }

    if (editor.getProject().isDisposed()) {
        return;
    }

    // This list must be modifiable
    // https://bitbucket.org/AlexanderBartash/impex-editor-intellij-idea-plugin/issue/11/unsupportedoperationexception-null
    final List<TextRange> ranges = newArrayList();
    column.forEach((cell) -> ranges.add(cell.getTextRange()));

    HighlightUsagesHandler.highlightRanges(
        HighlightManager.getInstance(editor.getProject()),
        editor,
        EditorColorsManager.getInstance().getGlobalScheme().getAttributes(EditorColors.SEARCH_RESULT_ATTRIBUTES),
        clear,
        ranges
    );
}
 
开发者ID:AlexanderBartash,项目名称:hybris-integration-intellij-idea-plugin,代码行数:31,代码来源:DefaultImpexColumnHighlighterService.java

示例8: modifyHighlightedArea

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
@Contract(pure = false)
protected void modifyHighlightedArea(
    @NotNull final Editor editor,
    @NotNull final PsiElement impexFullHeaderParameter,
    final boolean clear
) {
    Validate.notNull(editor);
    Validate.notNull(impexFullHeaderParameter);

    if (null == editor.getProject()) {
        return;
    }

    if (editor.getProject().isDisposed()) {
        return;
    }

    // This list must be modifiable
    // https://bitbucket.org/AlexanderBartash/impex-editor-intellij-idea-plugin/issue/11/unsupportedoperationexception-null
    final List<TextRange> ranges = new ArrayList<TextRange>();
    ranges.add(impexFullHeaderParameter.getTextRange());

    HighlightUsagesHandler.highlightRanges(
        HighlightManager.getInstance(editor.getProject()),
        editor,
        EditorColorsManager.getInstance().getGlobalScheme().getAttributes(EditorColors.SEARCH_RESULT_ATTRIBUTES),
        clear,
        ranges
    );
}
 
开发者ID:AlexanderBartash,项目名称:hybris-integration-intellij-idea-plugin,代码行数:31,代码来源:DefaultImpexHeaderNameHighlighterService.java

示例9: handleCustomUsage

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
private static boolean handleCustomUsage(@NotNull Editor editor, @NotNull PsiFile file) {
        final HighlightUsagesHandlerBase handler =
                HighlightUsagesHandler.createCustomHandler(editor, file);
        
        if (handler == null) {
            return false;
        }
        
        final String featureId = handler.getFeatureId();
        if (featureId != null) {
            FeatureUsageTracker.getInstance().triggerFeatureUsed(featureId);
        }
        
        final List targets = handler.getTargets();
        if (targets == null) {
            return false;
        }
        
        try {
            // TODO: 06/02/2017 handle custom usages
            handler.highlightUsages();
//            targets
//            handler.computeUsages(targets);
//            final List readUsages = handler.getReadUsages();
//            final List writeUsages = handler.getWriteUsages();
            Log.className("handleCustomUsage", handler);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return false;
    }
 
开发者ID:huoguangjin,项目名称:MultiHighlight,代码行数:34,代码来源:MultiHighlightHandler.java

示例10: actionPerformed

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
  final Editor editor = CommonDataKeys.EDITOR.getData(e.getDataContext());
  final Project project = e.getProject();
  if (editor == null || project == null) return;

  String commandName = getTemplatePresentation().getText();
  if (commandName == null) commandName = "";

  CommandProcessor.getInstance().executeCommand(
    project,
    new Runnable() {
      @Override
      public void run() {
        PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
        try {
          HighlightUsagesHandler.invoke(project, editor, psiFile);
        }
        catch (IndexNotReadyException ex) {
          DumbService.getInstance(project).showDumbModeNotification(ActionsBundle.message("action.HighlightUsagesInFile.not.ready"));
        }
      }
    },
    commandName,
    null
  );
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:28,代码来源:HighlightUsagesAction.java

示例11: getHighlightUsages

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
/**
 * Returns read and write usages of psi element inside a single element
 *
 * @param target target psi element
 * @param psiElement psi element to search in
 * @return a pair where first element is read usages and second is write usages
 */
public static Couple<Collection<TextRange>> getHighlightUsages(@NotNull PsiElement target, PsiElement psiElement, boolean withDeclarations) {
  Collection<TextRange> readRanges = new ArrayList<TextRange>();
  Collection<TextRange> writeRanges = new ArrayList<TextRange>();
  final ReadWriteAccessDetector detector = ReadWriteAccessDetector.findDetector(target);
  final FindUsagesManager findUsagesManager = ((FindManagerImpl)FindManager.getInstance(target.getProject())).getFindUsagesManager();
  final FindUsagesHandler findUsagesHandler = findUsagesManager.getFindUsagesHandler(target, true);
  final LocalSearchScope scope = new LocalSearchScope(psiElement);
  Collection<PsiReference> refs = findUsagesHandler != null
                            ? findUsagesHandler.findReferencesToHighlight(target, scope)
                            : ReferencesSearch.search(target, scope).findAll();
  for (PsiReference psiReference : refs) {
    if (psiReference == null) {
      LOG.error("Null reference returned, findUsagesHandler=" + findUsagesHandler + "; target=" + target + " of " + target.getClass());
      continue;
    }
    final List<TextRange> textRanges = HighlightUsagesHandler.getRangesToHighlight(psiReference);
    if (detector == null || detector.getReferenceAccess(target, psiReference) == ReadWriteAccessDetector.Access.Read) {
      readRanges.addAll(textRanges);
    }
    else {
      writeRanges.addAll(textRanges);
    }
  }

  if (withDeclarations) {
    final TextRange declRange = HighlightUsagesHandler.getNameIdentifierRange(psiElement.getContainingFile(), target);
    if (declRange != null) {
      if (detector != null && detector.isDeclarationWriteAccess(target)) {
        writeRanges.add(declRange);
      }
      else {
        readRanges.add(declRange);
      }
    }
  }

  return Couple.of(readRanges, writeRanges);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:46,代码来源:IdentifierHighlighterPass.java

示例12: highlightTargetUsages

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
private void highlightTargetUsages(@NotNull PsiElement target) {
  final ReadWriteAccessDetector detector = ReadWriteAccessDetector.findDetector(target);
  final FindUsagesManager findUsagesManager = ((FindManagerImpl)FindManager.getInstance(target.getProject())).getFindUsagesManager();
  final FindUsagesHandler findUsagesHandler = findUsagesManager.getFindUsagesHandler(target, true);
  final LocalSearchScope scope = new LocalSearchScope(myFile);
  Collection<PsiReference> refs = findUsagesHandler != null
                            ? findUsagesHandler.findReferencesToHighlight(target, scope)
                            : ReferencesSearch.search(target, scope).findAll();
  for (PsiReference psiReference : refs) {
    final List<TextRange> textRanges = HighlightUsagesHandler.getRangesToHighlight(psiReference);
    if (detector == null || detector.getReferenceAccess(target, psiReference) == ReadWriteAccessDetector.Access.Read) {
      myReadAccessRanges.addAll(textRanges);
    }
    else {
      myWriteAccessRanges.addAll(textRanges);
    }
  }

  final TextRange declRange = HighlightUsagesHandler.getNameIdentifierRange(myFile, target);
  if (declRange != null) {
    if (detector != null && detector.isDeclarationWriteAccess(target)) {
      myWriteAccessRanges.add(declRange);
    }
    else {
      myReadAccessRanges.add(declRange);
    }
  }
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:29,代码来源:IdentifierHighlighterPass.java

示例13: actionPerformed

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
@Override
public void actionPerformed(AnActionEvent e) {
  final Editor editor = e.getDataContext().getData(PlatformDataKeys.EDITOR);
  final Project project = e.getDataContext().getData(CommonDataKeys.PROJECT);
  if (editor == null || project == null) return;
  String commandName = getTemplatePresentation().getText();
  if (commandName == null) commandName = "";

  CommandProcessor.getInstance().executeCommand(
    project,
    new Runnable() {
      @Override
      @RequiredDispatchThread
      public void run() {
        PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
        try {
          HighlightUsagesHandler.invoke(project, editor, psiFile);
        }
        catch (IndexNotReadyException ex) {
          DumbService.getInstance(project).showDumbModeNotification(ActionsBundle.message("action.HighlightUsagesInFile.not.ready"));
        }
      }
    },
    commandName,
    null
  );
}
 
开发者ID:consulo,项目名称:consulo,代码行数:28,代码来源:HighlightUsagesAction.java

示例14: IdentifierHighlighterPass

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
IdentifierHighlighterPass(@Nonnull Project project, @Nonnull PsiFile file, @Nonnull Editor editor) {
  super(project, editor.getDocument(), false);
  myFile = file;
  myEditor = editor;
  myCaretOffset = myEditor.getCaretModel().getOffset();
  myHighlightUsagesHandler = HighlightUsagesHandler.createCustomHandler(myEditor, myFile);
}
 
开发者ID:consulo,项目名称:consulo,代码行数:8,代码来源:IdentifierHighlighterPass.java

示例15: getUsages

import com.intellij.codeInsight.highlighting.HighlightUsagesHandler; //导入依赖的package包/类
@Nonnull
private static Couple<Collection<TextRange>> getUsages(@Nonnull PsiElement target, PsiElement psiElement, boolean withDeclarations, boolean detectAccess) {
  List<TextRange> readRanges = new ArrayList<>();
  List<TextRange> writeRanges = new ArrayList<>();
  final ReadWriteAccessDetector detector = detectAccess ? ReadWriteAccessDetector.findDetector(target) : null;
  final FindUsagesManager findUsagesManager = ((FindManagerImpl)FindManager.getInstance(target.getProject())).getFindUsagesManager();
  final FindUsagesHandler findUsagesHandler = findUsagesManager.getFindUsagesHandler(target, true);
  final LocalSearchScope scope = new LocalSearchScope(psiElement);
  Collection<PsiReference> refs = findUsagesHandler != null
                                  ? findUsagesHandler.findReferencesToHighlight(target, scope)
                                  : ReferencesSearch.search(target, scope).findAll();
  for (PsiReference psiReference : refs) {
    if (psiReference == null) {
      LOG.error("Null reference returned, findUsagesHandler=" + findUsagesHandler + "; target=" + target + " of " + target.getClass());
      continue;
    }
    List<TextRange> destination;
    if (detector == null || detector.getReferenceAccess(target, psiReference) == ReadWriteAccessDetector.Access.Read) {
      destination = readRanges;
    }
    else {
      destination = writeRanges;
    }
    HighlightUsagesHandler.collectRangesToHighlight(psiReference, destination);
  }

  if (withDeclarations) {
    final TextRange declRange = HighlightUsagesHandler.getNameIdentifierRange(psiElement.getContainingFile(), target);
    if (declRange != null) {
      if (detector != null && detector.isDeclarationWriteAccess(target)) {
        writeRanges.add(declRange);
      }
      else {
        readRanges.add(declRange);
      }
    }
  }

  return Couple.<Collection<TextRange>>of(readRanges, writeRanges);
}
 
开发者ID:consulo,项目名称:consulo,代码行数:41,代码来源:IdentifierHighlighterPass.java


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