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.vfs.VirtualFile
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 java.io.File
import java.util.concurrent.locks.ReentrantReadWriteLock
@@ -28,10 +28,10 @@ import kotlin.concurrent.read
import kotlin.concurrent.write
import kotlin.script.dependencies.ScriptDependencies
class KotlinScriptExternalImportsProviderImpl(
class CliScriptDependenciesProvider(
project: Project,
private val scriptDefinitionProvider: KotlinScriptDefinitionProvider
) : KotlinScriptExternalImportsProvider {
) : ScriptDependenciesProvider {
private val cacheLock = ReentrantReadWriteLock()
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.MessageCollector
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.jvm.JvmRuntimeVersionsConsistencyChecker
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.DeclarationProviderFactoryService
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.utils.PathUtil
import java.io.File
@@ -189,7 +189,7 @@ class KotlinCoreEnvironment private constructor(
scriptDefinitionProvider.setScriptDefinitions(
configuration.getList(JVMConfigurationKeys.SCRIPT_DEFINITIONS))
KotlinScriptExternalImportsProvider.getInstance(project).let { importsProvider ->
ScriptDependenciesProvider.getInstance(project).let { importsProvider ->
configuration.addJvmClasspathRoots(
sourceFiles.mapNotNull(importsProvider::getScriptDependencies)
.flatMap { it.classpath }
@@ -523,7 +523,7 @@ class KotlinCoreEnvironment private constructor(
with (projectEnvironment.project) {
val kotlinScriptDefinitionProvider = 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(KtLightClassForFacade.FacadeStubCache::class.java, KtLightClassForFacade.FacadeStubCache(this))
if (messageCollector != null) {
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.psi.KtScriptInitializer
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.script.KotlinScriptDefinition
import org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider
import org.jetbrains.kotlin.script.ScriptDependenciesProvider
import java.io.File
import java.util.concurrent.locks.ReentrantReadWriteLock
import kotlin.concurrent.write
@@ -68,7 +68,7 @@ open class GenericReplCompiler(disposable: Disposable,
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
if (compilerState.lastDependencies != newDependencies) {
compilerState.lastDependencies = newDependencies
@@ -22,15 +22,15 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiFile
import kotlin.script.dependencies.ScriptDependencies
interface KotlinScriptExternalImportsProvider {
interface ScriptDependenciesProvider {
fun getScriptDependencies(file: VirtualFile): ScriptDependencies?
fun getScriptDependencies(file: PsiFile) = getScriptDependencies(file.virtualFile)
companion object {
fun getInstance(project: Project): KotlinScriptExternalImportsProvider =
ServiceManager.getService(project, KotlinScriptExternalImportsProvider::class.java)
fun getInstance(project: Project): ScriptDependenciesProvider =
ServiceManager.getService(project, ScriptDependenciesProvider::class.java)
}
}
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.NonClasspathDirectoriesScope
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.name.Name
import org.jetbrains.kotlin.script.KotlinScriptDefinition
@@ -43,7 +43,7 @@ data class ScriptModuleInfo(val project: Project, val scriptFile: VirtualFile,
get() = ModuleOrigin.OTHER
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}>")
@@ -81,7 +81,7 @@ class ScriptDependenciesModuleInfo(
if (scriptModuleInfo == null) {
// we do not know which scripts these dependencies are
return KotlinSourceFilterScope.libraryClassFiles(
KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope(), project
ScriptDependenciesManager.getInstance(project).getAllScriptsClasspathScope(), project
)
}
return project.service<ScriptBinariesScopeCache>().get(scriptModuleInfo.externalDependencies)
@@ -108,7 +108,7 @@ data class ScriptDependenciesSourceModuleInfo(
get() = ScriptDependenciesModuleInfo(project, null)
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) {
override fun createValue(key: ScriptDependencies?): GlobalSearchScope {
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
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.elements.KtLightElement
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.isKotlinBinary
import org.jetbrains.kotlin.idea.util.isInSourceContentWithoutInjected
@@ -116,7 +116,7 @@ private fun getModuleInfoByVirtualFile(project: Project, virtualFile: VirtualFil
}
val isBinary = virtualFile.isKotlinBinary()
val scriptConfigurationManager = KotlinScriptConfigurationManager.getInstance(project)
val scriptConfigurationManager = ScriptDependenciesManager.getInstance(project)
if (isBinary && virtualFile in scriptConfigurationManager.getAllScriptsClasspathScope()) {
return if (treatAsLibrarySource) {
ScriptDependenciesSourceModuleInfo(project)
@@ -30,7 +30,7 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFileSystemItem
import org.jetbrains.kotlin.idea.KotlinModuleFileType
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.util.application.runReadAction
@@ -62,7 +62,7 @@ object ProjectRootsUtil {
val canContainClassFiles = file.fileType == ArchiveFileType.INSTANCE || file.isDirectory
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 (fileIndex.isInLibraryClasses(file)) return true
@@ -35,7 +35,7 @@ internal class DependenciesCache(private val project: Project) {
val allScriptsClasspathCache = ClearableLazyValue(cacheLock) {
val files = cache.values.flatMap { it.classpath }.distinct()
KotlinScriptConfigurationManager.toVfsRoots(files)
ScriptDependenciesManager.toVfsRoots(files)
}
val allScriptsClasspathScope = ClearableLazyValue(cacheLock) {
@@ -43,7 +43,7 @@ internal class DependenciesCache(private val project: Project) {
}
val allLibrarySourcesCache = ClearableLazyValue(cacheLock) {
KotlinScriptConfigurationManager.toVfsRoots(cache.values.flatMap { it.sources }.distinct())
ScriptDependenciesManager.toVfsRoots(cache.values.flatMap { it.sources }.distinct())
}
val allLibrarySourcesScope = ClearableLazyValue(cacheLock) {
@@ -30,20 +30,20 @@ import org.jetbrains.kotlin.load.java.AbstractJavaClassFinder
import org.jetbrains.kotlin.resolve.jvm.KotlinSafeClassFinder
class KotlinScriptDependenciesClassFinder(project: Project,
private val kotlinScriptConfigurationManager: KotlinScriptConfigurationManager
private val scriptDependenciesManager: ScriptDependenciesManager
) : NonClasspathClassFinder(project), KotlinSafeClassFinder {
private val myCaches by lazy {
object : ConcurrentFactoryMap<VirtualFile, PackageDirectoryCache>() {
override fun create(file: VirtualFile): PackageDirectoryCache? {
val scriptClasspath = kotlinScriptConfigurationManager.getScriptClasspath(file)
val scriptClasspath = scriptDependenciesManager.getScriptClasspath(file)
val v = createCache(scriptClasspath)
return v
}
}
}
override fun calcClassRoots(): List<VirtualFile> = kotlinScriptConfigurationManager.getAllScriptsClasspath().toList()
override fun calcClassRoots(): List<VirtualFile> = scriptDependenciesManager.getAllScriptsClasspath().toList()
override fun getCache(scope: GlobalSearchScope?): PackageDirectoryCache =
(scope as? ScriptModuleSearchScope ?:
@@ -24,23 +24,23 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.util.io.URLUtil
import org.jetbrains.annotations.TestOnly
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 java.io.File
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)
class IdeScriptExternalImportsProvider(
private val scriptConfigurationManager: KotlinScriptConfigurationManager
) : KotlinScriptExternalImportsProvider {
class IdeScriptDependenciesProvider(
private val scriptDependenciesManager: ScriptDependenciesManager
) : ScriptDependenciesProvider {
override fun getScriptDependencies(file: VirtualFile): ScriptDependencies? {
return scriptConfigurationManager.getScriptDependencies(file)
return scriptDependenciesManager.getScriptDependencies(file)
}
}
class KotlinScriptConfigurationManager(
class ScriptDependenciesManager(
private val project: Project,
private val scriptDefinitionProvider: KotlinScriptDefinitionProvider
) {
@@ -66,8 +66,8 @@ class KotlinScriptConfigurationManager(
companion object {
@JvmStatic
fun getInstance(project: Project): KotlinScriptConfigurationManager =
ServiceManager.getService(project, KotlinScriptConfigurationManager::class.java)
fun getInstance(project: Project): ScriptDependenciesManager =
ServiceManager.getService(project, ScriptDependenciesManager::class.java)
fun toVfsRoots(roots: Iterable<File>): List<VirtualFile> {
return roots.mapNotNull { it.classpathEntryToVfs() }
@@ -84,7 +84,7 @@ class KotlinScriptConfigurationManager(
return res
}
internal val log = Logger.getInstance(KotlinScriptConfigurationManager::class.java)
internal val log = Logger.getInstance(ScriptDependenciesManager::class.java)
@TestOnly
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.util.Processor
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
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 getClassesByName(name: String, scope: GlobalSearchScope): Array<out PsiClass> {
val classpathScope = KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope()
val classpathScope = ScriptDependenciesManager.getInstance(project).getAllScriptsClasspathScope()
val classes = StubIndex.getElements(
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.vfs.VirtualFile
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() {
override fun getAdditionalProjectRootsToIndex(project: Project): Set<VirtualFile> {
val manager = KotlinScriptConfigurationManager.getInstance(project)
val manager = ScriptDependenciesManager.getInstance(project)
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.psi.ResolveScopeProvider
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.getScriptDefinition
@@ -41,7 +41,7 @@ class KotlinScriptResolveScopeProvider : ResolveScopeProvider() {
null
}
else {
KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope()
ScriptDependenciesManager.getInstance(project).getAllScriptsClasspathScope()
}
else -> null
}
@@ -21,7 +21,7 @@ import com.intellij.psi.PsiClassOwner
import com.intellij.psi.PsiElement
import com.intellij.psi.impl.compiled.*
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() {
override fun getNavigationElement(clsClass: ClsClassImpl): PsiClass? {
@@ -49,7 +49,7 @@ class ScriptDependencySourceNavigationPolicyForJavaClasses : ClsCustomNavigation
val virtualFile = file.virtualFile
val project = file.project
val kotlinScriptConfigurationManager = KotlinScriptConfigurationManager.getInstance(project)
val kotlinScriptConfigurationManager = ScriptDependenciesManager.getInstance(project)
if (virtualFile !in kotlinScriptConfigurationManager.getAllScriptsClasspathScope()) return null
val sourceFileName = (file.classes.first() as ClsClassImpl).sourceFileName
+4 -4
View File
@@ -269,11 +269,11 @@
<projectService serviceInterface="org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider"
serviceImplementation="org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider"/>
<projectService serviceInterface="org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider"
serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptExternalImportsProvider"/>
<projectService serviceInterface="org.jetbrains.kotlin.script.ScriptDependenciesProvider"
serviceImplementation="org.jetbrains.kotlin.idea.core.script.IdeScriptDependenciesProvider"/>
<projectService serviceInterface="org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager"
serviceImplementation="org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager"/>
<projectService serviceInterface="org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager"
serviceImplementation="org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager"/>
<projectService serviceInterface="org.jetbrains.kotlin.script.ScriptReportSink"
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.RefactoringElementListener
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.psi.KtFile
import org.jetbrains.kotlin.utils.PathUtil
@@ -193,7 +193,7 @@ private class ScriptCommandLineState(
params.classPath.add(PathUtil.getKotlinPathsForIdeaPlugin().compilerPath)
val scriptClasspath = KotlinScriptConfigurationManager.getInstance(environment.project).getScriptClasspath(scriptVFile)
val scriptClasspath = ScriptDependenciesManager.getInstance(environment.project).getScriptClasspath(scriptVFile)
scriptClasspath.forEach {
params.classPath.add(it.presentableUrl)
}
@@ -24,8 +24,8 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.testFramework.PlatformTestUtil
import org.jetbrains.kotlin.checkers.AbstractPsiCheckerTest
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager.Companion.updateScriptDependenciesSynchronously
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager.Companion.updateScriptDependenciesSynchronously
import org.jetbrains.kotlin.idea.navigation.GotoCheck
import org.jetbrains.kotlin.idea.test.KotlinLightProjectDescriptor
import org.jetbrains.kotlin.script.ScriptTemplatesProvider
@@ -130,7 +130,7 @@ abstract class AbstractScriptConfigurationTest : AbstractPsiCheckerTest() {
provider,
testRootDisposable
)
KotlinScriptConfigurationManager.reloadScriptDefinitions(project)
ScriptDependenciesManager.reloadScriptDefinitions(project)
}
override fun getProjectDescriptor() = KotlinLightProjectDescriptor.INSTANCE