Split compiler and ide specific parts of script dependency caching

Move all caching logic to ide specific KotlinScriptConfigurationManager
Clean up apis
Remove logging when updating caches
This commit is contained in:
Pavel V. Talanov
2017-05-25 17:53:56 +03:00
parent e43a145614
commit b7fc909821
6 changed files with 129 additions and 169 deletions
@@ -19,23 +19,16 @@ package org.jetbrains.kotlin.script
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
import java.io.File
import kotlin.script.dependencies.KotlinScriptExternalDependencies
interface KotlinScriptExternalImportsProvider {
fun <TF: Any> getExternalImports(file: TF): KotlinScriptExternalDependencies?
fun <TF: Any> cacheExternalImports(files: Iterable<TF>): Iterable<TF>
fun <TF: Any> updateExternalImportsCache(files: Iterable<TF>): Iterable<TF>
fun invalidateCaches()
fun getKnownCombinedClasspath(): List<File>
fun getKnownSourceRoots(): List<File>
fun <TF: Any> getCombinedClasspathFor(files: Iterable<TF>): List<File>
companion object {
fun getInstance(project: Project): KotlinScriptExternalImportsProvider? =
fun getInstance(project: Project): KotlinScriptExternalImportsProvider =
ServiceManager.getService(project, KotlinScriptExternalImportsProvider::class.java)
}
}
fun getScriptExternalDependencies(file: VirtualFile, project: Project): KotlinScriptExternalDependencies? =
KotlinScriptExternalImportsProvider.getInstance(project)?.getExternalImports(file)
KotlinScriptExternalImportsProvider.getInstance(project).getExternalImports(file)