diff options
author | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:28:18 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:28:18 -0700 |
commit | d76e3920c56d37c942092b7dca20fcaded81c0a5 (patch) | |
tree | 80a55c7b59c38377216daaada4e8bc47b69ceb9a /java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java | |
parent | 3b37877a2561bf9fbe072253a18688807d523505 (diff) | |
parent | 1aa2e09bdbd413eacb677e9fa4b50630530d0656 (diff) | |
download | idea-d76e3920c56d37c942092b7dca20fcaded81c0a5.tar.gz |
Merge remote-tracking branch 'aosp/upstream-master' into merge
Conflicts:
.idea/modules.xml
platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdatesXmlLoader.java
Change-Id: Id899dae9a1e1c79272f8a70e14a7dcef4f760d7f
Diffstat (limited to 'java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java')
-rw-r--r-- | java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java index 2c31e75cc521..016b01ed6f96 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java @@ -27,6 +27,7 @@ import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.NullableComputable; import com.intellij.openapi.util.Ref; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.search.FilenameIndex; import com.intellij.psi.search.GlobalSearchScope; @@ -194,12 +195,17 @@ public class PositionManagerImpl implements PositionManager { return element.getContainingFile(); } else { - // for now just take the first file with the required name - // TODO: if there are more than one, we can try matching package name and sourcePath if available + // try to search by filename try { PsiFile[] files = FilenameIndex.getFilesByName(project, refType.sourceName(), GlobalSearchScope.allScope(project)); - if (files.length > 0) { - return files[0]; + for (PsiFile file : files) { + if (file instanceof PsiJavaFile) { + for (PsiClass cls : ((PsiJavaFile)file).getClasses()) { + if (StringUtil.equals(originalQName, cls.getQualifiedName())) { + return file; + } + } + } } } catch (AbsentInformationException ignore) { |