From 1ab51a08aae827b179dc7d2089f0905acf3d1fcd Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Thu, 5 Feb 2015 14:44:11 +0300 Subject: [PATCH] Optimize search of package part files for JetPositionManager --- .../PositionManagerLibraryClassFileSearcher.kt | 11 +++++++---- .../jetbrains/kotlin/idea/util/DebuggerUtils.java | 12 +++++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/PositionManagerLibraryClassFileSearcher.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/PositionManagerLibraryClassFileSearcher.kt index cdecca37088..b3a55233c90 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/PositionManagerLibraryClassFileSearcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/PositionManagerLibraryClassFileSearcher.kt @@ -38,6 +38,7 @@ import org.jetbrains.kotlin.psi.JetPsiUtil import org.jetbrains.kotlin.resolve.jvm.JvmClassName import org.jetbrains.kotlin.resolve.descriptorUtil.module import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor +import com.intellij.util.indexing.FileBasedIndex private val LOG = Logger.getInstance("org.jetbrains.kotlin.idea.debugger") @@ -115,9 +116,11 @@ private fun findPackagePartFileNamesForElement(elementAt: JetElement): List() { + boolean isInLibrary = KotlinPackage.all(filesWithExactName, new Function1() { @Override public Boolean invoke(JetFile file) { return LibraryUtil.findLibraryEntry(file.getVirtualFile(), file.getProject()) != null; @@ -91,6 +96,11 @@ public class DebuggerUtils { return null; } + private static boolean isPackagePartClassName(JvmClassName className) { + String packageName = className.getPackageFqName().asString().replaceAll("\\.", "/"); + return className.getInternalName().startsWith(packageName + "/" + PackageClassUtils.getPackageClassName(className.getPackageFqName())); + } + @Nullable private static JetFile getFileForPackagePartPrefixedName( @NotNull Collection allPackageFiles,