本文整理汇总了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());
}
示例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();
}
示例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());
}
示例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);
}
示例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
);
}
示例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();
}
示例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;
}
示例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
);
}
示例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);
}
示例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);
}
}
}
示例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
);
}
示例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);
}
示例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);
}