minor: refactoring KotlinJavaScriptLibraryManager

This commit is contained in:
Michael Nedzelsky
2015-06-18 12:11:28 +03:00
parent 818bfce1f1
commit 3b43f68c1e
@@ -31,7 +31,6 @@ import com.intellij.openapi.roots.impl.OrderEntryUtil
import com.intellij.openapi.roots.libraries.Library import com.intellij.openapi.roots.libraries.Library
import com.intellij.openapi.roots.libraries.LibraryTable import com.intellij.openapi.roots.libraries.LibraryTable
import com.intellij.openapi.util.Disposer import com.intellij.openapi.util.Disposer
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.util.PathUtil import com.intellij.util.PathUtil
import org.jetbrains.annotations.TestOnly import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.idea.framework.KotlinJavaScriptLibraryDetectionUtil import org.jetbrains.kotlin.idea.framework.KotlinJavaScriptLibraryDetectionUtil
@@ -47,7 +46,7 @@ public class KotlinJavaScriptLibraryManager private constructor(private var myPr
override fun projectOpened() { override fun projectOpened() {
val project = myProject!! val project = myProject!!
project.getMessageBus().connect(project).subscribe<ModuleRootListener>(ProjectTopics.PROJECT_ROOTS, this) project.getMessageBus().connect(project).subscribe(ProjectTopics.PROJECT_ROOTS, this)
DumbService.getInstance(project).smartInvokeLater() { updateProjectLibrary() } DumbService.getInstance(project).smartInvokeLater() { updateProjectLibrary() }
} }
@@ -92,8 +91,8 @@ public class KotlinJavaScriptLibraryManager private constructor(private var myPr
continue continue
} }
val clsRootFiles = arrayListOf<VirtualFile>() val clsRootUrls: MutableList<String> = arrayListOf()
val srcRootFiles = arrayListOf<VirtualFile>() val srcRootUrls: MutableList<String> = arrayListOf()
ModuleRootManager.getInstance(module).orderEntries().librariesOnly().forEachLibrary() { library -> ModuleRootManager.getInstance(module).orderEntries().librariesOnly().forEachLibrary() { library ->
if (KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(library)) { if (KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(library)) {
@@ -106,18 +105,18 @@ public class KotlinJavaScriptLibraryManager private constructor(private var myPr
if (metadataList.filter { !it.isAbiVersionCompatible }.isNotEmpty()) continue if (metadataList.filter { !it.isAbiVersionCompatible }.isNotEmpty()) continue
val classRoot = KotlinJavaScriptMetaFileSystem.getInstance().refreshAndFindFileByPath(path + "!/") val classRoot = KotlinJavaScriptMetaFileSystem.getInstance().refreshAndFindFileByPath(path + "!/")
clsRootFiles.add(classRoot) classRoot?.let {
addSources = true clsRootUrls.add(it.getUrl())
addSources = true
}
} }
if (addSources) { if (addSources) {
srcRootFiles.addAll(arrayListOf(*library.getFiles(OrderRootType.SOURCES))) srcRootUrls.addAll(library.getFiles(OrderRootType.SOURCES).map { it.getUrl() })
} }
} }
true true
} }
val clsRootUrls = clsRootFiles.map { it.getUrl() }
val srcRootUrls = srcRootFiles.map { it.getUrl() }
val changesToApply = ChangesToApply(clsRootUrls, srcRootUrls) val changesToApply = ChangesToApply(clsRootUrls, srcRootUrls)
resetLibraries(module, changesToApply, LIBRARY_NAME, synchronously) resetLibraries(module, changesToApply, LIBRARY_NAME, synchronously)
@@ -221,6 +220,6 @@ public class KotlinJavaScriptLibraryManager private constructor(private var myPr
platformStatic platformStatic
public fun getInstance(project: Project): KotlinJavaScriptLibraryManager = public fun getInstance(project: Project): KotlinJavaScriptLibraryManager =
project.getComponent<KotlinJavaScriptLibraryManager>(javaClass<KotlinJavaScriptLibraryManager>()) project.getComponent(javaClass<KotlinJavaScriptLibraryManager>())
} }
} }