Rename services related to script dependencies

KotlinScriptConfigurationManager -> ScriptDependenciesManager
KotlinScriptExternalImportsProvider -> ScriptDependenciesProvider
This commit is contained in:
Pavel V. Talanov
2017-07-14 19:32:09 +03:00
parent 96db16a988
commit 999c3c5e76
17 changed files with 55 additions and 55 deletions
@@ -20,7 +20,7 @@ import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider
import org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider import org.jetbrains.kotlin.script.ScriptDependenciesProvider
import org.jetbrains.kotlin.script.ScriptContentLoader import org.jetbrains.kotlin.script.ScriptContentLoader
import java.io.File import java.io.File
import java.util.concurrent.locks.ReentrantReadWriteLock import java.util.concurrent.locks.ReentrantReadWriteLock
@@ -28,10 +28,10 @@ import kotlin.concurrent.read
import kotlin.concurrent.write import kotlin.concurrent.write
import kotlin.script.dependencies.ScriptDependencies import kotlin.script.dependencies.ScriptDependencies
class KotlinScriptExternalImportsProviderImpl( class CliScriptDependenciesProvider(
project: Project, project: Project,
private val scriptDefinitionProvider: KotlinScriptDefinitionProvider private val scriptDefinitionProvider: KotlinScriptDefinitionProvider
) : KotlinScriptExternalImportsProvider { ) : ScriptDependenciesProvider {
private val cacheLock = ReentrantReadWriteLock() private val cacheLock = ReentrantReadWriteLock()
private val cache = hashMapOf<String, ScriptDependencies?>() private val cache = hashMapOf<String, ScriptDependencies?>()
@@ -63,4 +63,4 @@ class KotlinScriptExternalImportsProviderImpl(
} }
} }
private val log = Logger.getInstance(KotlinScriptExternalImportsProvider::class.java) private val log = Logger.getInstance(ScriptDependenciesProvider::class.java)
@@ -75,7 +75,7 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.ERROR
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.STRONG_WARNING import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.STRONG_WARNING
import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.common.script.CliScriptReportSink import org.jetbrains.kotlin.cli.common.script.CliScriptReportSink
import org.jetbrains.kotlin.cli.common.script.KotlinScriptExternalImportsProviderImpl import org.jetbrains.kotlin.cli.common.script.CliScriptDependenciesProvider
import org.jetbrains.kotlin.cli.common.toBooleanLenient import org.jetbrains.kotlin.cli.common.toBooleanLenient
import org.jetbrains.kotlin.cli.jvm.JvmRuntimeVersionsConsistencyChecker import org.jetbrains.kotlin.cli.jvm.JvmRuntimeVersionsConsistencyChecker
import org.jetbrains.kotlin.cli.jvm.config.* import org.jetbrains.kotlin.cli.jvm.config.*
@@ -106,7 +106,7 @@ import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleResolver
import org.jetbrains.kotlin.resolve.lazy.declarations.CliDeclarationProviderFactoryService import org.jetbrains.kotlin.resolve.lazy.declarations.CliDeclarationProviderFactoryService
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider
import org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider import org.jetbrains.kotlin.script.ScriptDependenciesProvider
import org.jetbrains.kotlin.script.ScriptReportSink import org.jetbrains.kotlin.script.ScriptReportSink
import org.jetbrains.kotlin.utils.PathUtil import org.jetbrains.kotlin.utils.PathUtil
import java.io.File import java.io.File
@@ -189,7 +189,7 @@ class KotlinCoreEnvironment private constructor(
scriptDefinitionProvider.setScriptDefinitions( scriptDefinitionProvider.setScriptDefinitions(
configuration.getList(JVMConfigurationKeys.SCRIPT_DEFINITIONS)) configuration.getList(JVMConfigurationKeys.SCRIPT_DEFINITIONS))
KotlinScriptExternalImportsProvider.getInstance(project).let { importsProvider -> ScriptDependenciesProvider.getInstance(project).let { importsProvider ->
configuration.addJvmClasspathRoots( configuration.addJvmClasspathRoots(
sourceFiles.mapNotNull(importsProvider::getScriptDependencies) sourceFiles.mapNotNull(importsProvider::getScriptDependencies)
.flatMap { it.classpath } .flatMap { it.classpath }
@@ -523,7 +523,7 @@ class KotlinCoreEnvironment private constructor(
with (projectEnvironment.project) { with (projectEnvironment.project) {
val kotlinScriptDefinitionProvider = KotlinScriptDefinitionProvider() val kotlinScriptDefinitionProvider = KotlinScriptDefinitionProvider()
registerService(KotlinScriptDefinitionProvider::class.java, kotlinScriptDefinitionProvider) registerService(KotlinScriptDefinitionProvider::class.java, kotlinScriptDefinitionProvider)
registerService(KotlinScriptExternalImportsProvider::class.java, KotlinScriptExternalImportsProviderImpl(projectEnvironment.project, kotlinScriptDefinitionProvider)) registerService(ScriptDependenciesProvider::class.java, CliScriptDependenciesProvider(projectEnvironment.project, kotlinScriptDefinitionProvider))
registerService(KotlinJavaPsiFacade::class.java, KotlinJavaPsiFacade(this)) registerService(KotlinJavaPsiFacade::class.java, KotlinJavaPsiFacade(this))
registerService(KtLightClassForFacade.FacadeStubCache::class.java, KtLightClassForFacade.FacadeStubCache(this)) registerService(KtLightClassForFacade.FacadeStubCache::class.java, KtLightClassForFacade.FacadeStubCache(this))
if (messageCollector != null) { if (messageCollector != null) {
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.psi.KtScriptInitializer
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.KotlinScriptDefinition
import org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider import org.jetbrains.kotlin.script.ScriptDependenciesProvider
import java.io.File import java.io.File
import java.util.concurrent.locks.ReentrantReadWriteLock import java.util.concurrent.locks.ReentrantReadWriteLock
import kotlin.concurrent.write import kotlin.concurrent.write
@@ -68,7 +68,7 @@ open class GenericReplCompiler(disposable: Disposable,
Pair(compilerState.lastLineState!!.psiFile, compilerState.lastLineState!!.errorHolder) Pair(compilerState.lastLineState!!.psiFile, compilerState.lastLineState!!.errorHolder)
} }
val newDependencies = KotlinScriptExternalImportsProvider.getInstance(checker.environment.project).getScriptDependencies(psiFile) val newDependencies = ScriptDependenciesProvider.getInstance(checker.environment.project).getScriptDependencies(psiFile)
var classpathAddendum: List<File>? = null var classpathAddendum: List<File>? = null
if (compilerState.lastDependencies != newDependencies) { if (compilerState.lastDependencies != newDependencies) {
compilerState.lastDependencies = newDependencies compilerState.lastDependencies = newDependencies
@@ -22,15 +22,15 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiFile import com.intellij.psi.PsiFile
import kotlin.script.dependencies.ScriptDependencies import kotlin.script.dependencies.ScriptDependencies
interface KotlinScriptExternalImportsProvider { interface ScriptDependenciesProvider {
fun getScriptDependencies(file: VirtualFile): ScriptDependencies? fun getScriptDependencies(file: VirtualFile): ScriptDependencies?
fun getScriptDependencies(file: PsiFile) = getScriptDependencies(file.virtualFile) fun getScriptDependencies(file: PsiFile) = getScriptDependencies(file.virtualFile)
companion object { companion object {
fun getInstance(project: Project): KotlinScriptExternalImportsProvider = fun getInstance(project: Project): ScriptDependenciesProvider =
ServiceManager.getService(project, KotlinScriptExternalImportsProvider::class.java) ServiceManager.getService(project, ScriptDependenciesProvider::class.java)
} }
} }
fun getScriptExternalDependencies(file: VirtualFile, project: Project): ScriptDependencies? = fun getScriptExternalDependencies(file: VirtualFile, project: Project): ScriptDependencies? =
KotlinScriptExternalImportsProvider.getInstance(project).getScriptDependencies(file) ScriptDependenciesProvider.getInstance(project).getScriptDependencies(file)
@@ -25,7 +25,7 @@ import com.intellij.psi.search.DelegatingGlobalSearchScope
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.NonClasspathDirectoriesScope import com.intellij.psi.search.NonClasspathDirectoriesScope
import com.intellij.util.containers.SLRUCache import com.intellij.util.containers.SLRUCache
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.KotlinScriptDefinition
@@ -43,7 +43,7 @@ data class ScriptModuleInfo(val project: Project, val scriptFile: VirtualFile,
get() = ModuleOrigin.OTHER get() = ModuleOrigin.OTHER
val externalDependencies: ScriptDependencies? val externalDependencies: ScriptDependencies?
get() = KotlinScriptConfigurationManager.getInstance(project).getScriptDependencies(scriptFile) get() = ScriptDependenciesManager.getInstance(project).getScriptDependencies(scriptFile)
override val name: Name = Name.special("<script ${scriptFile.name} ${scriptDefinition.name}>") override val name: Name = Name.special("<script ${scriptFile.name} ${scriptDefinition.name}>")
@@ -81,7 +81,7 @@ class ScriptDependenciesModuleInfo(
if (scriptModuleInfo == null) { if (scriptModuleInfo == null) {
// we do not know which scripts these dependencies are // we do not know which scripts these dependencies are
return KotlinSourceFilterScope.libraryClassFiles( return KotlinSourceFilterScope.libraryClassFiles(
KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope(), project ScriptDependenciesManager.getInstance(project).getAllScriptsClasspathScope(), project
) )
} }
return project.service<ScriptBinariesScopeCache>().get(scriptModuleInfo.externalDependencies) return project.service<ScriptBinariesScopeCache>().get(scriptModuleInfo.externalDependencies)
@@ -108,7 +108,7 @@ data class ScriptDependenciesSourceModuleInfo(
get() = ScriptDependenciesModuleInfo(project, null) get() = ScriptDependenciesModuleInfo(project, null)
override fun sourceScope(): GlobalSearchScope = KotlinSourceFilterScope.librarySources( override fun sourceScope(): GlobalSearchScope = KotlinSourceFilterScope.librarySources(
KotlinScriptConfigurationManager.getInstance(project).getAllLibrarySourcesScope(), project ScriptDependenciesManager.getInstance(project).getAllLibrarySourcesScope(), project
) )
} }
@@ -116,7 +116,7 @@ data class ScriptDependenciesSourceModuleInfo(
private class ScriptBinariesScopeCache(private val project: Project) : SLRUCache<ScriptDependencies, GlobalSearchScope>(6, 6) { private class ScriptBinariesScopeCache(private val project: Project) : SLRUCache<ScriptDependencies, GlobalSearchScope>(6, 6) {
override fun createValue(key: ScriptDependencies?): GlobalSearchScope { override fun createValue(key: ScriptDependencies?): GlobalSearchScope {
val roots = key?.classpath ?: emptyList() val roots = key?.classpath ?: emptyList()
val classpath = KotlinScriptConfigurationManager.toVfsRoots(roots) val classpath = ScriptDependenciesManager.toVfsRoots(roots)
// TODO: this is not very efficient because KotlinSourceFilterScope already checks if the files are in scripts classpath // TODO: this is not very efficient because KotlinSourceFilterScope already checks if the files are in scripts classpath
return KotlinSourceFilterScope.libraryClassFiles(NonClasspathDirectoriesScope(classpath), project) return KotlinSourceFilterScope.libraryClassFiles(NonClasspathDirectoriesScope(classpath), project)
} }
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.asJava.classes.FakeLightClassForFileOfPackage
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.asJava.elements.KtLightElement
import org.jetbrains.kotlin.idea.caches.resolve.lightClasses.KtLightClassForDecompiledDeclaration import org.jetbrains.kotlin.idea.caches.resolve.lightClasses.KtLightClassForDecompiledDeclaration
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
import org.jetbrains.kotlin.idea.util.isKotlinBinary import org.jetbrains.kotlin.idea.util.isKotlinBinary
import org.jetbrains.kotlin.idea.util.isInSourceContentWithoutInjected import org.jetbrains.kotlin.idea.util.isInSourceContentWithoutInjected
@@ -116,7 +116,7 @@ private fun getModuleInfoByVirtualFile(project: Project, virtualFile: VirtualFil
} }
val isBinary = virtualFile.isKotlinBinary() val isBinary = virtualFile.isKotlinBinary()
val scriptConfigurationManager = KotlinScriptConfigurationManager.getInstance(project) val scriptConfigurationManager = ScriptDependenciesManager.getInstance(project)
if (isBinary && virtualFile in scriptConfigurationManager.getAllScriptsClasspathScope()) { if (isBinary && virtualFile in scriptConfigurationManager.getAllScriptsClasspathScope()) {
return if (treatAsLibrarySource) { return if (treatAsLibrarySource) {
ScriptDependenciesSourceModuleInfo(project) ScriptDependenciesSourceModuleInfo(project)
@@ -30,7 +30,7 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFileSystemItem import com.intellij.psi.PsiFileSystemItem
import org.jetbrains.kotlin.idea.KotlinModuleFileType import org.jetbrains.kotlin.idea.KotlinModuleFileType
import org.jetbrains.kotlin.idea.caches.resolve.JsProjectDetector import org.jetbrains.kotlin.idea.caches.resolve.JsProjectDetector
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType
import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.application.runReadAction
@@ -62,7 +62,7 @@ object ProjectRootsUtil {
val canContainClassFiles = file.fileType == ArchiveFileType.INSTANCE || file.isDirectory val canContainClassFiles = file.fileType == ArchiveFileType.INSTANCE || file.isDirectory
val isBinary = file.isKotlinBinary() val isBinary = file.isKotlinBinary()
val scriptConfigurationManager = if (includeScriptDependencies) KotlinScriptConfigurationManager.getInstance(project) else null val scriptConfigurationManager = if (includeScriptDependencies) ScriptDependenciesManager.getInstance(project) else null
if (includeLibraryClasses && (isBinary || canContainClassFiles)) { if (includeLibraryClasses && (isBinary || canContainClassFiles)) {
if (fileIndex.isInLibraryClasses(file)) return true if (fileIndex.isInLibraryClasses(file)) return true
@@ -35,7 +35,7 @@ internal class DependenciesCache(private val project: Project) {
val allScriptsClasspathCache = ClearableLazyValue(cacheLock) { val allScriptsClasspathCache = ClearableLazyValue(cacheLock) {
val files = cache.values.flatMap { it.classpath }.distinct() val files = cache.values.flatMap { it.classpath }.distinct()
KotlinScriptConfigurationManager.toVfsRoots(files) ScriptDependenciesManager.toVfsRoots(files)
} }
val allScriptsClasspathScope = ClearableLazyValue(cacheLock) { val allScriptsClasspathScope = ClearableLazyValue(cacheLock) {
@@ -43,7 +43,7 @@ internal class DependenciesCache(private val project: Project) {
} }
val allLibrarySourcesCache = ClearableLazyValue(cacheLock) { val allLibrarySourcesCache = ClearableLazyValue(cacheLock) {
KotlinScriptConfigurationManager.toVfsRoots(cache.values.flatMap { it.sources }.distinct()) ScriptDependenciesManager.toVfsRoots(cache.values.flatMap { it.sources }.distinct())
} }
val allLibrarySourcesScope = ClearableLazyValue(cacheLock) { val allLibrarySourcesScope = ClearableLazyValue(cacheLock) {
@@ -30,20 +30,20 @@ import org.jetbrains.kotlin.load.java.AbstractJavaClassFinder
import org.jetbrains.kotlin.resolve.jvm.KotlinSafeClassFinder import org.jetbrains.kotlin.resolve.jvm.KotlinSafeClassFinder
class KotlinScriptDependenciesClassFinder(project: Project, class KotlinScriptDependenciesClassFinder(project: Project,
private val kotlinScriptConfigurationManager: KotlinScriptConfigurationManager private val scriptDependenciesManager: ScriptDependenciesManager
) : NonClasspathClassFinder(project), KotlinSafeClassFinder { ) : NonClasspathClassFinder(project), KotlinSafeClassFinder {
private val myCaches by lazy { private val myCaches by lazy {
object : ConcurrentFactoryMap<VirtualFile, PackageDirectoryCache>() { object : ConcurrentFactoryMap<VirtualFile, PackageDirectoryCache>() {
override fun create(file: VirtualFile): PackageDirectoryCache? { override fun create(file: VirtualFile): PackageDirectoryCache? {
val scriptClasspath = kotlinScriptConfigurationManager.getScriptClasspath(file) val scriptClasspath = scriptDependenciesManager.getScriptClasspath(file)
val v = createCache(scriptClasspath) val v = createCache(scriptClasspath)
return v return v
} }
} }
} }
override fun calcClassRoots(): List<VirtualFile> = kotlinScriptConfigurationManager.getAllScriptsClasspath().toList() override fun calcClassRoots(): List<VirtualFile> = scriptDependenciesManager.getAllScriptsClasspath().toList()
override fun getCache(scope: GlobalSearchScope?): PackageDirectoryCache = override fun getCache(scope: GlobalSearchScope?): PackageDirectoryCache =
(scope as? ScriptModuleSearchScope ?: (scope as? ScriptModuleSearchScope ?:
@@ -24,23 +24,23 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.util.io.URLUtil import com.intellij.util.io.URLUtil
import org.jetbrains.annotations.TestOnly import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider
import org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider import org.jetbrains.kotlin.script.ScriptDependenciesProvider
import org.jetbrains.kotlin.script.makeScriptDefsFromTemplatesProviderExtensions import org.jetbrains.kotlin.script.makeScriptDefsFromTemplatesProviderExtensions
import java.io.File import java.io.File
import kotlin.script.dependencies.ScriptDependencies import kotlin.script.dependencies.ScriptDependencies
// NOTE: this service exists exclusively because KotlinScriptConfigurationManager // NOTE: this service exists exclusively because ScriptDependencyManager
// cannot be registered as implementing two services (state would be duplicated) // cannot be registered as implementing two services (state would be duplicated)
class IdeScriptExternalImportsProvider( class IdeScriptDependenciesProvider(
private val scriptConfigurationManager: KotlinScriptConfigurationManager private val scriptDependenciesManager: ScriptDependenciesManager
) : KotlinScriptExternalImportsProvider { ) : ScriptDependenciesProvider {
override fun getScriptDependencies(file: VirtualFile): ScriptDependencies? { override fun getScriptDependencies(file: VirtualFile): ScriptDependencies? {
return scriptConfigurationManager.getScriptDependencies(file) return scriptDependenciesManager.getScriptDependencies(file)
} }
} }
class KotlinScriptConfigurationManager( class ScriptDependenciesManager(
private val project: Project, private val project: Project,
private val scriptDefinitionProvider: KotlinScriptDefinitionProvider private val scriptDefinitionProvider: KotlinScriptDefinitionProvider
) { ) {
@@ -66,8 +66,8 @@ class KotlinScriptConfigurationManager(
companion object { companion object {
@JvmStatic @JvmStatic
fun getInstance(project: Project): KotlinScriptConfigurationManager = fun getInstance(project: Project): ScriptDependenciesManager =
ServiceManager.getService(project, KotlinScriptConfigurationManager::class.java) ServiceManager.getService(project, ScriptDependenciesManager::class.java)
fun toVfsRoots(roots: Iterable<File>): List<VirtualFile> { fun toVfsRoots(roots: Iterable<File>): List<VirtualFile> {
return roots.mapNotNull { it.classpathEntryToVfs() } return roots.mapNotNull { it.classpathEntryToVfs() }
@@ -84,7 +84,7 @@ class KotlinScriptConfigurationManager(
return res return res
} }
internal val log = Logger.getInstance(KotlinScriptConfigurationManager::class.java) internal val log = Logger.getInstance(ScriptDependenciesManager::class.java)
@TestOnly @TestOnly
fun updateScriptDependenciesSynchronously(virtualFile: VirtualFile, project: Project) { fun updateScriptDependenciesSynchronously(virtualFile: VirtualFile, project: Project) {
@@ -26,7 +26,7 @@ import com.intellij.psi.search.PsiShortNamesCache
import com.intellij.psi.stubs.StubIndex import com.intellij.psi.stubs.StubIndex
import com.intellij.util.Processor import com.intellij.util.Processor
import com.intellij.util.containers.HashSet import com.intellij.util.containers.HashSet
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
// Allow searching java classes in jars in script dependencies, this is needed for stuff like completion and autoimport // Allow searching java classes in jars in script dependencies, this is needed for stuff like completion and autoimport
class JavaClassesInScriptDependenciesShortNameCache(private val project: Project) : PsiShortNamesCache() { class JavaClassesInScriptDependenciesShortNameCache(private val project: Project) : PsiShortNamesCache() {
@@ -35,7 +35,7 @@ class JavaClassesInScriptDependenciesShortNameCache(private val project: Project
override fun getAllClassNames(dest: HashSet<String>) {} override fun getAllClassNames(dest: HashSet<String>) {}
override fun getClassesByName(name: String, scope: GlobalSearchScope): Array<out PsiClass> { override fun getClassesByName(name: String, scope: GlobalSearchScope): Array<out PsiClass> {
val classpathScope = KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope() val classpathScope = ScriptDependenciesManager.getInstance(project).getAllScriptsClasspathScope()
val classes = StubIndex.getElements( val classes = StubIndex.getElements(
JavaShortClassNameIndex.getInstance().key, name, project, classpathScope.intersectWith(scope), PsiClass::class.java JavaShortClassNameIndex.getInstance().key, name, project, classpathScope.intersectWith(scope), PsiClass::class.java
) )
@@ -19,12 +19,12 @@ package org.jetbrains.kotlin.idea.core.script.dependencies
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import com.intellij.util.indexing.IndexableSetContributor import com.intellij.util.indexing.IndexableSetContributor
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
class KotlinScriptDependenciesIndexableSetContributor : IndexableSetContributor() { class KotlinScriptDependenciesIndexableSetContributor : IndexableSetContributor() {
override fun getAdditionalProjectRootsToIndex(project: Project): Set<VirtualFile> { override fun getAdditionalProjectRootsToIndex(project: Project): Set<VirtualFile> {
val manager = KotlinScriptConfigurationManager.getInstance(project) val manager = ScriptDependenciesManager.getInstance(project)
return (manager.getAllScriptsClasspath() + manager.getAllLibrarySources()).toSet() return (manager.getAllScriptsClasspath() + manager.getAllLibrarySources()).toSet()
} }
@@ -20,7 +20,7 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.ResolveScopeProvider import com.intellij.psi.ResolveScopeProvider
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
import org.jetbrains.kotlin.script.getScriptDefinition import org.jetbrains.kotlin.script.getScriptDefinition
@@ -41,7 +41,7 @@ class KotlinScriptResolveScopeProvider : ResolveScopeProvider() {
null null
} }
else { else {
KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope() ScriptDependenciesManager.getInstance(project).getAllScriptsClasspathScope()
} }
else -> null else -> null
} }
@@ -21,7 +21,7 @@ import com.intellij.psi.PsiClassOwner
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.impl.compiled.* import com.intellij.psi.impl.compiled.*
import com.intellij.psi.util.MethodSignatureUtil import com.intellij.psi.util.MethodSignatureUtil
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
class ScriptDependencySourceNavigationPolicyForJavaClasses : ClsCustomNavigationPolicyEx() { class ScriptDependencySourceNavigationPolicyForJavaClasses : ClsCustomNavigationPolicyEx() {
override fun getNavigationElement(clsClass: ClsClassImpl): PsiClass? { override fun getNavigationElement(clsClass: ClsClassImpl): PsiClass? {
@@ -49,7 +49,7 @@ class ScriptDependencySourceNavigationPolicyForJavaClasses : ClsCustomNavigation
val virtualFile = file.virtualFile val virtualFile = file.virtualFile
val project = file.project val project = file.project
val kotlinScriptConfigurationManager = KotlinScriptConfigurationManager.getInstance(project) val kotlinScriptConfigurationManager = ScriptDependenciesManager.getInstance(project)
if (virtualFile !in kotlinScriptConfigurationManager.getAllScriptsClasspathScope()) return null if (virtualFile !in kotlinScriptConfigurationManager.getAllScriptsClasspathScope()) return null
val sourceFileName = (file.classes.first() as ClsClassImpl).sourceFileName val sourceFileName = (file.classes.first() as ClsClassImpl).sourceFileName
+4 -4
View File
@@ -269,11 +269,11 @@
<projectService serviceInterface="org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider" <projectService serviceInterface="org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider"
serviceImplementation="org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider"/> serviceImplementation="org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider"/>
<projectService serviceInterface="org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider" <projectService serviceInterface="org.jetbrains.kotlin.script.ScriptDependenciesProvider"
serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptExternalImportsProvider"/> serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptDependenciesProvider"/>
<projectService serviceInterface="org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager" <projectService serviceInterface="org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager"
serviceImplementation="org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager"/> serviceImplementation="org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager"/>
<projectService serviceInterface="org.jetbrains.kotlin.script.ScriptReportSink" <projectService serviceInterface="org.jetbrains.kotlin.script.ScriptReportSink"
serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink"/> serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink"/>
@@ -33,7 +33,7 @@ import com.intellij.psi.PsiElement
import com.intellij.refactoring.listeners.RefactoringElementAdapter import com.intellij.refactoring.listeners.RefactoringElementAdapter
import com.intellij.refactoring.listeners.RefactoringElementListener import com.intellij.refactoring.listeners.RefactoringElementListener
import org.jdom.Element import org.jdom.Element
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
import org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationProducer.Companion.pathFromPsiElement import org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationProducer.Companion.pathFromPsiElement
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.utils.PathUtil import org.jetbrains.kotlin.utils.PathUtil
@@ -193,7 +193,7 @@ private class ScriptCommandLineState(
params.classPath.add(PathUtil.getKotlinPathsForIdeaPlugin().compilerPath) params.classPath.add(PathUtil.getKotlinPathsForIdeaPlugin().compilerPath)
val scriptClasspath = KotlinScriptConfigurationManager.getInstance(environment.project).getScriptClasspath(scriptVFile) val scriptClasspath = ScriptDependenciesManager.getInstance(environment.project).getScriptClasspath(scriptVFile)
scriptClasspath.forEach { scriptClasspath.forEach {
params.classPath.add(it.presentableUrl) params.classPath.add(it.presentableUrl)
} }
@@ -24,8 +24,8 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.testFramework.PlatformTestUtil import com.intellij.testFramework.PlatformTestUtil
import org.jetbrains.kotlin.checkers.AbstractPsiCheckerTest import org.jetbrains.kotlin.checkers.AbstractPsiCheckerTest
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager.Companion.updateScriptDependenciesSynchronously import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager.Companion.updateScriptDependenciesSynchronously
import org.jetbrains.kotlin.idea.navigation.GotoCheck import org.jetbrains.kotlin.idea.navigation.GotoCheck
import org.jetbrains.kotlin.idea.test.KotlinLightProjectDescriptor import org.jetbrains.kotlin.idea.test.KotlinLightProjectDescriptor
import org.jetbrains.kotlin.script.ScriptTemplatesProvider import org.jetbrains.kotlin.script.ScriptTemplatesProvider
@@ -130,7 +130,7 @@ abstract class AbstractScriptConfigurationTest : AbstractPsiCheckerTest() {
provider, provider,
testRootDisposable testRootDisposable
) )
KotlinScriptConfigurationManager.reloadScriptDefinitions(project) ScriptDependenciesManager.reloadScriptDefinitions(project)
} }
override fun getProjectDescriptor() = KotlinLightProjectDescriptor.INSTANCE override fun getProjectDescriptor() = KotlinLightProjectDescriptor.INSTANCE