From 6ea3392196afdab92dcc4981d0e81f74728f9fc0 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Mon, 18 Apr 2011 09:55:48 +0400 Subject: [PATCH] EA-26860 --- .../highlighting/HighlightUsagesHandler.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandler.java index b1f71dc4a593..e68bcb345be5 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandler.java @@ -19,8 +19,6 @@ package com.intellij.codeInsight.highlighting; import com.intellij.codeInsight.CodeInsightBundle; import com.intellij.codeInsight.TargetElementUtilBase; import com.intellij.find.EditorSearchComponent; -import com.intellij.find.FindManager; -import com.intellij.find.FindModel; import com.intellij.find.findUsages.PsiElement2UsageTargetAdapter; import com.intellij.injected.editor.EditorWindow; import com.intellij.lang.injection.InjectedLanguageManager; @@ -384,14 +382,19 @@ public class HighlightUsagesHandler extends HighlightHandlerBase { List answer = new ArrayList(relativeRanges.size()); for (TextRange relativeRange : relativeRanges) { PsiElement element = ref.getElement(); - TextRange range = element.getTextRange().cutOut(relativeRange); + TextRange range = safeCut(element.getTextRange(), relativeRange); // injection occurs answer.add(InjectedLanguageManager.getInstance(element.getProject()).injectedToHost(element, range)); - } return answer; } + private static TextRange safeCut(TextRange range, TextRange relative) { + int start = Math.min(range.getEndOffset(), range.getStartOffset() + relative.getStartOffset()); + int end = Math.min(range.getEndOffset(), range.getStartOffset() + relative.getEndOffset()); + return new TextRange(start, end); + } + @Nullable public static PsiElement getNameIdentifier(@NotNull PsiElement element) { if (element instanceof PsiNameIdentifierOwner) {