diff --git a/.idea/artifacts/ideaPlugin.xml b/.idea/artifacts/ideaPlugin.xml index 75f0b47908f..1f9d7a1dbf1 100644 --- a/.idea/artifacts/ideaPlugin.xml +++ b/.idea/artifacts/ideaPlugin.xml @@ -114,7 +114,7 @@ - + diff --git a/.idea/artifacts/kotlinc.xml b/.idea/artifacts/kotlinc.xml index 7316944c52a..8a44426b3df 100644 --- a/.idea/artifacts/kotlinc.xml +++ b/.idea/artifacts/kotlinc.xml @@ -129,7 +129,7 @@ - + diff --git a/compiler/tests/org/jetbrains/kotlin/scripts/CollectScriptCompilationDependenciesTest.kt b/compiler/tests/org/jetbrains/kotlin/scripts/CollectScriptCompilationDependenciesTest.kt index 7055f7b8218..6b14ecac4ad 100644 --- a/compiler/tests/org/jetbrains/kotlin/scripts/CollectScriptCompilationDependenciesTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/scripts/CollectScriptCompilationDependenciesTest.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.loadScriptingPlugin -import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPI +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.KotlinScriptDefinitionAdapterFromNewAPI import org.jetbrains.kotlin.test.ConfigurationKind import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.TestJdkKind diff --git a/compiler/tests/org/jetbrains/kotlin/scripts/ScriptCliCompilationTest.kt b/compiler/tests/org/jetbrains/kotlin/scripts/ScriptCliCompilationTest.kt index 31f32adde2a..b13af15f1ba 100644 --- a/compiler/tests/org/jetbrains/kotlin/scripts/ScriptCliCompilationTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/scripts/ScriptCliCompilationTest.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.daemon.TestMessageCollector import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.loadScriptingPlugin -import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPI +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.KotlinScriptDefinitionAdapterFromNewAPI import org.jetbrains.kotlin.test.ConfigurationKind import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.TestJdkKind diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt index a0f9353c553..06bf114b989 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt @@ -42,7 +42,7 @@ import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate import org.jetbrains.kotlin.script.ScriptDefinitionProvider import org.jetbrains.kotlin.script.ScriptTemplatesProvider -import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPI +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.KotlinScriptDefinitionAdapterFromNewAPI import org.jetbrains.kotlin.scripting.legacy.LazyScriptDefinitionProvider import org.jetbrains.kotlin.utils.PathUtil import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt index e180791f3e7..6e373db9f26 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/core/script/GradleScriptTemplateProvider.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.lexer.KotlinLexer import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate -import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPIBase +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.KotlinScriptDefinitionAdapterFromNewAPIBase import org.jetbrains.plugins.gradle.config.GradleSettingsListenerAdapter import org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper import org.jetbrains.plugins.gradle.settings.DistributionType diff --git a/idea/src/org/jetbrains/kotlin/idea/script/BridgeDefinitionsContributor.kt b/idea/src/org/jetbrains/kotlin/idea/script/BridgeDefinitionsContributor.kt index 1ef330fd845..09a2a23e945 100644 --- a/idea/src/org/jetbrains/kotlin/idea/script/BridgeDefinitionsContributor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/script/BridgeDefinitionsContributor.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates import org.jetbrains.kotlin.script.KotlinScriptDefinition -import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptDefinitionsFromClasspathDiscoverySource +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.ScriptDefinitionsFromClasspathDiscoverySource import kotlin.script.experimental.intellij.ScriptDefinitionsProvider class BridgeScriptDefinitionsContributor(private val project: Project) : ScriptDefinitionContributor { @@ -31,7 +31,11 @@ class BridgeScriptDefinitionsContributor(private val project: Project) : ScriptD else emptyList() val discoveredDefinitions = if (provider.useDiscovery()) emptySequence() - else ScriptDefinitionsFromClasspathDiscoverySource(classPath, emptyMap(), messageCollector).definitions + else ScriptDefinitionsFromClasspathDiscoverySource( + classPath, + emptyMap(), + messageCollector + ).definitions explicitDefinitions + discoveredDefinitions } } diff --git a/idea/src/org/jetbrains/kotlin/idea/script/configuration/KotlinScriptDefinitionsModel.kt b/idea/src/org/jetbrains/kotlin/idea/script/configuration/KotlinScriptDefinitionsModel.kt index 67b1aefe3b3..742b89d771c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/script/configuration/KotlinScriptDefinitionsModel.kt +++ b/idea/src/org/jetbrains/kotlin/idea/script/configuration/KotlinScriptDefinitionsModel.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings import org.jetbrains.kotlin.parsing.KotlinParserDefinition import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate -import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPIBase +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.KotlinScriptDefinitionAdapterFromNewAPIBase class KotlinScriptDefinitionsModelDescriptor(val definition: KotlinScriptDefinition, var isEnabled: Boolean) diff --git a/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt b/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt index efcfcf8c2e9..c6613334567 100644 --- a/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/script/configuration/MultipleScriptDefinitionsChecker.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.parsing.KotlinParserDefinition import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate -import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPIBase +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.KotlinScriptDefinitionAdapterFromNewAPIBase class MultipleScriptDefinitionsChecker(private val project: Project) : EditorNotifications.Provider() { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt index 5b25789328c..bb1b315c5d3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.scripting.ScriptingExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.useLazyTaskConfiguration -import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptDefinitionsFromClasspathDiscoverySource +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.ScriptDefinitionsFromClasspathDiscoverySource import java.io.File private const val MISCONFIGURATION_MESSAGE_SUFFIX = "the plugin is probably applied by a mistake" diff --git a/plugins/scripting/scripting-embeddable/build.gradle.kts b/plugins/scripting/scripting-compiler-embeddable/build.gradle.kts similarity index 100% rename from plugins/scripting/scripting-embeddable/build.gradle.kts rename to plugins/scripting/scripting-compiler-embeddable/build.gradle.kts diff --git a/plugins/scripting/scripting-cli/build.gradle.kts b/plugins/scripting/scripting-compiler/build.gradle.kts similarity index 100% rename from plugins/scripting/scripting-cli/build.gradle.kts rename to plugins/scripting/scripting-compiler/build.gradle.kts diff --git a/plugins/scripting/scripting-cli/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor b/plugins/scripting/scripting-compiler/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor similarity index 100% rename from plugins/scripting/scripting-cli/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor rename to plugins/scripting/scripting-compiler/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor diff --git a/plugins/scripting/scripting-cli/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar b/plugins/scripting/scripting-compiler/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar similarity index 100% rename from plugins/scripting/scripting-cli/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar rename to plugins/scripting/scripting-compiler/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCommandLineProcessor.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCommandLineProcessor.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCommandLineProcessor.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCommandLineProcessor.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt similarity index 78% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt index 518d551b5aa..b4f8925a336 100644 --- a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt @@ -10,19 +10,15 @@ import com.intellij.mock.MockProject import com.intellij.openapi.fileTypes.FileTypeRegistry import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.messages.MessageCollector -import org.jetbrains.kotlin.scripting.legacy.CliScriptDependenciesProvider -import org.jetbrains.kotlin.scripting.legacy.CliScriptReportSink import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots -import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.extensions.CompilerConfigurationExtension import org.jetbrains.kotlin.idea.KotlinFileType -import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension import org.jetbrains.kotlin.script.ScriptDefinitionProvider -import org.jetbrains.kotlin.script.ScriptDependenciesProvider -import org.jetbrains.kotlin.script.ScriptReportSink import org.jetbrains.kotlin.script.StandardScriptDefinition +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.ScriptDefinitionsFromClasspathDiscoverySource +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.loadScriptTemplatesFromClasspath import org.jetbrains.kotlin.scripting.legacy.CliScriptDefinitionProvider import java.io.File @@ -96,28 +92,6 @@ class ScriptingCompilerConfigurationExtension(val project: MockProject) : Compil } } -class ScriptingCompilerConfigurationComponentRegistrar : ComponentRegistrar { - override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) { - CompilerConfigurationExtension.registerExtension(project, ScriptingCompilerConfigurationExtension(project)) - - val scriptDefinitionProvider = CliScriptDefinitionProvider() - project.registerService(ScriptDefinitionProvider::class.java, scriptDefinitionProvider) - project.registerService( - ScriptDependenciesProvider::class.java, - CliScriptDependenciesProvider(project) - ) - SyntheticResolveExtension.registerExtension(project, ScriptingResolveExtension()) - - val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) - if (messageCollector != null) { - project.registerService(ScriptReportSink::class.java, - CliScriptReportSink(messageCollector) - ) - } - } -} - - fun configureScriptDefinitions( scriptTemplates: List, configuration: CompilerConfiguration, diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/scriptingResolveExtension.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingResolveExtension.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/scriptingResolveExtension.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingResolveExtension.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/KotlinScriptDefinitionAdapterFromNewAPI.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/KotlinScriptDefinitionAdapterFromNewAPI.kt similarity index 97% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/KotlinScriptDefinitionAdapterFromNewAPI.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/KotlinScriptDefinitionAdapterFromNewAPI.kt index d63c50b7ab1..4b44261603d 100644 --- a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/KotlinScriptDefinitionAdapterFromNewAPI.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/KotlinScriptDefinitionAdapterFromNewAPI.kt @@ -1,9 +1,9 @@ /* - * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.scripting.compiler.plugin +package org.jetbrains.kotlin.scripting.compiler.plugin.definitions import com.intellij.openapi.fileTypes.LanguageFileType import org.jetbrains.kotlin.idea.KotlinFileType diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/LazyScriptDefinitionFromDiscoveredClass.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/LazyScriptDefinitionFromDiscoveredClass.kt similarity index 92% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/LazyScriptDefinitionFromDiscoveredClass.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/LazyScriptDefinitionFromDiscoveredClass.kt index aa741da96d7..584ac5b57fa 100644 --- a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/LazyScriptDefinitionFromDiscoveredClass.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/LazyScriptDefinitionFromDiscoveredClass.kt @@ -1,14 +1,9 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * that can be found in the license/LICENSE.txt file. */ -/* - * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.scripting.compiler.plugin +package org.jetbrains.kotlin.scripting.compiler.plugin.definitions import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity import org.jetbrains.kotlin.cli.common.messages.MessageCollector diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptiDefinitionsFromClasspathDiscoverySource.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/ScriptiDefinitionsFromClasspathDiscoverySource.kt similarity index 93% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptiDefinitionsFromClasspathDiscoverySource.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/ScriptiDefinitionsFromClasspathDiscoverySource.kt index b03a34d7156..413c871f231 100644 --- a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptiDefinitionsFromClasspathDiscoverySource.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/ScriptiDefinitionsFromClasspathDiscoverySource.kt @@ -1,9 +1,9 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.scripting.compiler.plugin +package org.jetbrains.kotlin.scripting.compiler.plugin.definitions import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity import org.jetbrains.kotlin.cli.common.messages.MessageCollector @@ -136,7 +136,12 @@ internal fun loadScriptTemplatesFromClasspath( else buildSequence { // trying the direct classloading from baseClassloader first, since this is the most performant variant val (initialLoadedDefinitions, initialNotFoundTemplates) = scriptTemplates.partitionMapNotNull { - loadScriptDefinition(baseClassLoader, it, scriptResolverEnv, messageCollector) + loadScriptDefinition( + baseClassLoader, + it, + scriptResolverEnv, + messageCollector + ) } initialLoadedDefinitions.forEach { yield(it) @@ -144,7 +149,8 @@ internal fun loadScriptTemplatesFromClasspath( // then searching the remaining templates in the supplied classpath var remainingTemplates = initialNotFoundTemplates - val classpathAndLoader = LazyClasspathWithClassLoader(baseClassLoader) { classpath + dependenciesClasspath } + val classpathAndLoader = + LazyClasspathWithClassLoader(baseClassLoader) { classpath + dependenciesClasspath } for (dep in classpath) { if (remainingTemplates.isEmpty()) break @@ -161,7 +167,10 @@ internal fun loadScriptTemplatesFromClasspath( else -> { // assuming that invalid classpath entries will be reported elsewhere anyway, so do not spam user with additional warnings here messageCollector.report(CompilerMessageSeverity.LOGGING, "Configure scripting: Unknown classpath entry $dep") - DefinitionsLoadPartitionResult(listOf(), remainingTemplates) + DefinitionsLoadPartitionResult( + listOf(), + remainingTemplates + ) } } if (loadedDefinitions.isNotEmpty()) { @@ -202,7 +211,13 @@ private inline fun List.partitionLoadDefinitions( for (definitionName in this) { val classBytes = getBytes(definitionName) val definition = classBytes?.let { - loadScriptDefinition(it, definitionName, classpathAndLoader, scriptResolverEnv, messageCollector) + loadScriptDefinition( + it, + definitionName, + classpathAndLoader, + scriptResolverEnv, + messageCollector + ) } when { definition != null -> loaded.add(definition) @@ -242,7 +257,12 @@ private fun loadScriptDefinition( for (ann in anns) { var def: KotlinScriptDefinition? = null if (ann.name == KotlinScript::class.simpleName) { - def = LazyScriptDefinitionFromDiscoveredClass(anns, templateClassName, classpathAndLoader.classpath, messageCollector) + def = LazyScriptDefinitionFromDiscoveredClass( + anns, + templateClassName, + classpathAndLoader.classpath, + messageCollector + ) } else if (ann.name == ScriptTemplateDefinition::class.simpleName) { val templateClass = classpathAndLoader.classLoader.loadClass(templateClassName).kotlin def = KotlinScriptDefinitionFromAnnotatedTemplate(templateClass, scriptResolverEnv, classpathAndLoader.classpath) diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/asmBasedAnnotationsLoading.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/asmBasedAnnotationsLoading.kt similarity index 91% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/asmBasedAnnotationsLoading.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/asmBasedAnnotationsLoading.kt index 49abd952bc9..516b4f44c92 100644 --- a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/asmBasedAnnotationsLoading.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/asmBasedAnnotationsLoading.kt @@ -1,9 +1,9 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.scripting.compiler.plugin +package org.jetbrains.kotlin.scripting.compiler.plugin.definitions import org.jetbrains.org.objectweb.asm.* diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/definitions.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/definitions.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/definitions.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/definitions.kt diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/pluginRegisrar.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/pluginRegisrar.kt new file mode 100644 index 00000000000..66cca47a5ef --- /dev/null +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/pluginRegisrar.kt @@ -0,0 +1,47 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.scripting.compiler.plugin + +import com.intellij.mock.MockProject +import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys +import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar +import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.extensions.CompilerConfigurationExtension +import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension +import org.jetbrains.kotlin.script.ScriptDefinitionProvider +import org.jetbrains.kotlin.script.ScriptDependenciesProvider +import org.jetbrains.kotlin.script.ScriptReportSink +import org.jetbrains.kotlin.scripting.legacy.CliScriptDefinitionProvider +import org.jetbrains.kotlin.scripting.legacy.CliScriptDependenciesProvider +import org.jetbrains.kotlin.scripting.legacy.CliScriptReportSink + +class ScriptingCompilerConfigurationComponentRegistrar : ComponentRegistrar { + override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) { + CompilerConfigurationExtension.registerExtension(project, + ScriptingCompilerConfigurationExtension( + project + ) + ) + + val scriptDefinitionProvider = CliScriptDefinitionProvider() + project.registerService(ScriptDefinitionProvider::class.java, scriptDefinitionProvider) + project.registerService( + ScriptDependenciesProvider::class.java, + CliScriptDependenciesProvider(project) + ) + SyntheticResolveExtension.registerExtension(project, + ScriptingResolveExtension() + ) + + val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) + if (messageCollector != null) { + project.registerService( + ScriptReportSink::class.java, + CliScriptReportSink(messageCollector) + ) + } + } +} \ No newline at end of file diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/LazyScriptClassMemberScope.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/LazyScriptClassMemberScope.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/LazyScriptClassMemberScope.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/LazyScriptClassMemberScope.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/LazyScriptDescriptor.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/LazyScriptDescriptor.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/LazyScriptDescriptor.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/LazyScriptDescriptor.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ReplResultPropertyDescriptor.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ReplResultPropertyDescriptor.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ReplResultPropertyDescriptor.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ReplResultPropertyDescriptor.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ScriptProvidedPropertiesDescriptor.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ScriptProvidedPropertiesDescriptor.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ScriptProvidedPropertiesDescriptor.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ScriptProvidedPropertiesDescriptor.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ScriptProvidedPropertyDescriptor.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ScriptProvidedPropertyDescriptor.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ScriptProvidedPropertyDescriptor.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/ScriptProvidedPropertyDescriptor.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/scriptDescriptorUtil.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/scriptDescriptorUtil.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/scriptDescriptorUtil.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/resolve/scriptDescriptorUtil.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/legacy/CliScriptDefinitionProvider.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/legacy/CliScriptDefinitionProvider.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/legacy/CliScriptDefinitionProvider.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/legacy/CliScriptDefinitionProvider.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/legacy/CliScriptDependenciesProvider.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/legacy/CliScriptDependenciesProvider.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/legacy/CliScriptDependenciesProvider.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/legacy/CliScriptDependenciesProvider.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/legacy/CliScriptReportSink.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/legacy/CliScriptReportSink.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/legacy/CliScriptReportSink.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/legacy/CliScriptReportSink.kt diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/legacy/LazyScriptDefinitionProvider.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/legacy/LazyScriptDefinitionProvider.kt similarity index 100% rename from plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/legacy/LazyScriptDefinitionProvider.kt rename to plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/legacy/LazyScriptDefinitionProvider.kt diff --git a/plugins/scripting/scripting-cli/testData/lazyDefinitions/definitions/TestScriptWithOtherAnnotation.kt b/plugins/scripting/scripting-compiler/testData/lazyDefinitions/definitions/TestScriptWithOtherAnnotation.kt similarity index 100% rename from plugins/scripting/scripting-cli/testData/lazyDefinitions/definitions/TestScriptWithOtherAnnotation.kt rename to plugins/scripting/scripting-compiler/testData/lazyDefinitions/definitions/TestScriptWithOtherAnnotation.kt diff --git a/plugins/scripting/scripting-cli/testData/lazyDefinitions/definitions/TestScriptWithReceivers.kt b/plugins/scripting/scripting-compiler/testData/lazyDefinitions/definitions/TestScriptWithReceivers.kt similarity index 100% rename from plugins/scripting/scripting-cli/testData/lazyDefinitions/definitions/TestScriptWithReceivers.kt rename to plugins/scripting/scripting-compiler/testData/lazyDefinitions/definitions/TestScriptWithReceivers.kt diff --git a/plugins/scripting/scripting-cli/testData/lazyDefinitions/definitions/TestScriptWithSimpleEnvVars.kt b/plugins/scripting/scripting-compiler/testData/lazyDefinitions/definitions/TestScriptWithSimpleEnvVars.kt similarity index 100% rename from plugins/scripting/scripting-cli/testData/lazyDefinitions/definitions/TestScriptWithSimpleEnvVars.kt rename to plugins/scripting/scripting-compiler/testData/lazyDefinitions/definitions/TestScriptWithSimpleEnvVars.kt diff --git a/plugins/scripting/scripting-cli/testData/lazyDefinitions/scripts/simpleEnvVars.2.kts b/plugins/scripting/scripting-compiler/testData/lazyDefinitions/scripts/simpleEnvVars.2.kts similarity index 100% rename from plugins/scripting/scripting-cli/testData/lazyDefinitions/scripts/simpleEnvVars.2.kts rename to plugins/scripting/scripting-compiler/testData/lazyDefinitions/scripts/simpleEnvVars.2.kts diff --git a/plugins/scripting/scripting-cli/testData/lazyDefinitions/scripts/stringReceiver.1.kts b/plugins/scripting/scripting-compiler/testData/lazyDefinitions/scripts/stringReceiver.1.kts similarity index 100% rename from plugins/scripting/scripting-cli/testData/lazyDefinitions/scripts/stringReceiver.1.kts rename to plugins/scripting/scripting-compiler/testData/lazyDefinitions/scripts/stringReceiver.1.kts diff --git a/plugins/scripting/scripting-cli/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt b/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt similarity index 93% rename from plugins/scripting/scripting-cli/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt rename to plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt index 9a8af27f801..4f46f1939c1 100644 --- a/plugins/scripting/scripting-cli/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt +++ b/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt @@ -20,6 +20,9 @@ import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoot import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.JVMConfigurationKeys +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.SCRIPT_DEFINITION_MARKERS_PATH +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.discoverScriptTemplatesInClasspath +import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.loadScriptTemplatesFromClasspath import org.jetbrains.kotlin.test.ConfigurationKind import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.TestCaseWithTmpdir @@ -130,7 +133,12 @@ class ScriptingCompilerPluginTest : TestCaseWithTmpdir() { } val lazyDefsSeq = - discoverScriptTemplatesInClasspath(listOf(defsOut), this::class.java.classLoader, emptyMap(), messageCollector) + discoverScriptTemplatesInClasspath( + listOf(defsOut), + this::class.java.classLoader, + emptyMap(), + messageCollector + ) assertTrue(messageCollector.messages.isEmpty()) { "Unexpected messages from discovery sequence (should be empty):\n$messageCollector" @@ -196,7 +204,12 @@ class ScriptingCompilerPluginTest : TestCaseWithTmpdir() { messageCollector.clear() - discoverScriptTemplatesInClasspath(listOf(defsOut), this::class.java.classLoader, emptyMap(), messageCollector).toList() + discoverScriptTemplatesInClasspath( + listOf(defsOut), + this::class.java.classLoader, + emptyMap(), + messageCollector + ).toList() assertTrue( messageCollector.messages.isNotEmpty() diff --git a/settings.gradle b/settings.gradle index b754ab9d3fc..c12cc2f0649 100644 --- a/settings.gradle +++ b/settings.gradle @@ -327,8 +327,8 @@ project(':kotlin-scripting-jvm').projectDir = "$rootDir/libraries/scripting/jvm" project(':kotlin-scripting-jvm-host').projectDir = "$rootDir/libraries/scripting/jvm-host" as File project(':kotlin-scripting-jvm-host-embeddable').projectDir = "$rootDir/libraries/scripting/jvm-host-embeddable" as File project(':kotlin-scripting-intellij').projectDir = "$rootDir/libraries/scripting/intellij" as File -project(':kotlin-scripting-compiler').projectDir = "$rootDir/plugins/scripting/scripting-cli" as File -project(':kotlin-scripting-compiler-embeddable').projectDir = "$rootDir/plugins/scripting/scripting-embeddable" as File +project(':kotlin-scripting-compiler').projectDir = "$rootDir/plugins/scripting/scripting-compiler" as File +project(':kotlin-scripting-compiler-embeddable').projectDir = "$rootDir/plugins/scripting/scripting-compiler-embeddable" as File project(':kotlin-scripting-idea').projectDir = "$rootDir/plugins/scripting/scripting-idea" as File project(':kotlin-main-kts').projectDir = "$rootDir/libraries/tools/kotlin-main-kts" as File project(':kotlin-main-kts-test').projectDir = "$rootDir/libraries/tools/kotlin-main-kts-test" as File