diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerContextUtil.java b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerContextUtil.java index 92e983253c54..19ec5f071b03 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerContextUtil.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerContextUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,6 +29,8 @@ import com.intellij.openapi.util.Couple; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiMethod; +import com.intellij.psi.util.PsiTreeUtil; import com.intellij.xdebugger.XDebugSession; import com.intellij.xdebugger.XSourcePosition; import org.jetbrains.annotations.NotNull; @@ -80,7 +82,9 @@ public class DebuggerContextUtil { //final Editor editor = fileEditor instanceof TextEditorImpl ? ((TextEditorImpl)fileEditor).getEditor() : null; if (editor != null && position != null && file.getVirtualFile().equals(position.getFile())) { - final Couple> usages = IdentifierHighlighterPass.getHighlightUsages(psi, file, false); + PsiMethod method = PsiTreeUtil.getParentOfType(PositionUtil.getContextElement(context), PsiMethod.class, false); + final Couple> usages = + IdentifierHighlighterPass.getHighlightUsages(psi, method != null ? method : file, false); final List ranges = new ArrayList(); ranges.addAll(usages.first); ranges.addAll(usages.second); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/IdentifierHighlighterPass.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/IdentifierHighlighterPass.java index 02e1bc9d8cfa..dd7f581f4b25 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/IdentifierHighlighterPass.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/IdentifierHighlighterPass.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -122,19 +122,19 @@ public class IdentifierHighlighterPass extends TextEditorHighlightingPass { } /** - * Returns read and write usages of psi element inside single file + * Returns read and write usages of psi element inside a single element * * @param target target psi element - * @param psiFile psi file for 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> getHighlightUsages(@NotNull PsiElement target, PsiFile psiFile, boolean withDeclarations) { + public static Couple> getHighlightUsages(@NotNull PsiElement target, PsiElement psiElement, boolean withDeclarations) { Collection readRanges = new ArrayList(); Collection writeRanges = new ArrayList(); 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(psiFile); + final LocalSearchScope scope = new LocalSearchScope(psiElement); Collection refs = findUsagesHandler != null ? findUsagesHandler.findReferencesToHighlight(target, scope) : ReferencesSearch.search(target, scope).findAll(); @@ -149,7 +149,7 @@ public class IdentifierHighlighterPass extends TextEditorHighlightingPass { } if (withDeclarations) { - final TextRange declRange = HighlightUsagesHandler.getNameIdentifierRange(psiFile, target); + final TextRange declRange = HighlightUsagesHandler.getNameIdentifierRange(psiElement.getContainingFile(), target); if (declRange != null) { if (detector != null && detector.isDeclarationWriteAccess(target)) { writeRanges.add(declRange);