Reorganize files and folders in the scripting plugin
This commit is contained in:
Generated
+1
-1
@@ -114,7 +114,7 @@
|
|||||||
<element id="archive" name="kotlin-scripting-compiler.jar">
|
<element id="archive" name="kotlin-scripting-compiler.jar">
|
||||||
<element id="module-output" name="kotlin.kotlin-scripting-compiler.main" />
|
<element id="module-output" name="kotlin.kotlin-scripting-compiler.main" />
|
||||||
<element id="directory" name="META-INF">
|
<element id="directory" name="META-INF">
|
||||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/scripting/scripting-cli/build/tmp/jar/MANIFEST.MF" />
|
<element id="file-copy" path="$PROJECT_DIR$/plugins/scripting/scripting-compiler/build/tmp/jar/MANIFEST.MF" />
|
||||||
</element>
|
</element>
|
||||||
</element>
|
</element>
|
||||||
<element id="archive" name="kotlin-scripting-idea.jar">
|
<element id="archive" name="kotlin-scripting-idea.jar">
|
||||||
|
|||||||
Generated
+1
-1
@@ -129,7 +129,7 @@
|
|||||||
<element id="archive" name="kotlin-scripting-compiler.jar">
|
<element id="archive" name="kotlin-scripting-compiler.jar">
|
||||||
<element id="module-output" name="kotlin.kotlin-scripting-compiler.main" />
|
<element id="module-output" name="kotlin.kotlin-scripting-compiler.main" />
|
||||||
<element id="directory" name="META-INF">
|
<element id="directory" name="META-INF">
|
||||||
<element id="file-copy" path="$PROJECT_DIR$/plugins/scripting/scripting-cli/build/tmp/jar/MANIFEST.MF" />
|
<element id="file-copy" path="$PROJECT_DIR$/plugins/scripting/scripting-compiler/build/tmp/jar/MANIFEST.MF" />
|
||||||
</element>
|
</element>
|
||||||
</element>
|
</element>
|
||||||
<element id="archive" name="kotlin-scripting-jvm.jar">
|
<element id="archive" name="kotlin-scripting-jvm.jar">
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots
|
|||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
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.ConfigurationKind
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
|||||||
import org.jetbrains.kotlin.daemon.TestMessageCollector
|
import org.jetbrains.kotlin.daemon.TestMessageCollector
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
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.ConfigurationKind
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
|||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||||
import org.jetbrains.kotlin.script.ScriptDefinitionProvider
|
import org.jetbrains.kotlin.script.ScriptDefinitionProvider
|
||||||
import org.jetbrains.kotlin.script.ScriptTemplatesProvider
|
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.scripting.legacy.LazyScriptDefinitionProvider
|
||||||
import org.jetbrains.kotlin.utils.PathUtil
|
import org.jetbrains.kotlin.utils.PathUtil
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.lexer.KotlinLexer
|
|||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
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.config.GradleSettingsListenerAdapter
|
||||||
import org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper
|
import org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper
|
||||||
import org.jetbrains.plugins.gradle.settings.DistributionType
|
import org.jetbrains.plugins.gradle.settings.DistributionType
|
||||||
|
|||||||
@@ -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.ScriptDefinitionContributor
|
||||||
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates
|
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
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
|
import kotlin.script.experimental.intellij.ScriptDefinitionsProvider
|
||||||
|
|
||||||
class BridgeScriptDefinitionsContributor(private val project: Project) : ScriptDefinitionContributor {
|
class BridgeScriptDefinitionsContributor(private val project: Project) : ScriptDefinitionContributor {
|
||||||
@@ -31,7 +31,11 @@ class BridgeScriptDefinitionsContributor(private val project: Project) : ScriptD
|
|||||||
else emptyList()
|
else emptyList()
|
||||||
val discoveredDefinitions =
|
val discoveredDefinitions =
|
||||||
if (provider.useDiscovery()) emptySequence()
|
if (provider.useDiscovery()) emptySequence()
|
||||||
else ScriptDefinitionsFromClasspathDiscoverySource(classPath, emptyMap(), messageCollector).definitions
|
else ScriptDefinitionsFromClasspathDiscoverySource(
|
||||||
|
classPath,
|
||||||
|
emptyMap(),
|
||||||
|
messageCollector
|
||||||
|
).definitions
|
||||||
explicitDefinitions + discoveredDefinitions
|
explicitDefinitions + discoveredDefinitions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings
|
|||||||
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
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)
|
class KotlinScriptDefinitionsModelDescriptor(val definition: KotlinScriptDefinition, var isEnabled: Boolean)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
|||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
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<EditorNotificationPanel>() {
|
class MultipleScriptDefinitionsChecker(private val project: Project) : EditorNotifications.Provider<EditorNotificationPanel>() {
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.gradle.plugin.*
|
|||||||
import org.jetbrains.kotlin.gradle.scripting.ScriptingExtension
|
import org.jetbrains.kotlin.gradle.scripting.ScriptingExtension
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
import org.jetbrains.kotlin.gradle.tasks.useLazyTaskConfiguration
|
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
|
import java.io.File
|
||||||
|
|
||||||
private const val MISCONFIGURATION_MESSAGE_SUFFIX = "the plugin is probably applied by a mistake"
|
private const val MISCONFIGURATION_MESSAGE_SUFFIX = "the plugin is probably applied by a mistake"
|
||||||
|
|||||||
+2
-28
@@ -10,19 +10,15 @@ import com.intellij.mock.MockProject
|
|||||||
import com.intellij.openapi.fileTypes.FileTypeRegistry
|
import com.intellij.openapi.fileTypes.FileTypeRegistry
|
||||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
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.cli.jvm.config.jvmClasspathRoots
|
||||||
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||||
import org.jetbrains.kotlin.extensions.CompilerConfigurationExtension
|
import org.jetbrains.kotlin.extensions.CompilerConfigurationExtension
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension
|
|
||||||
import org.jetbrains.kotlin.script.ScriptDefinitionProvider
|
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.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 org.jetbrains.kotlin.scripting.legacy.CliScriptDefinitionProvider
|
||||||
import java.io.File
|
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(
|
fun configureScriptDefinitions(
|
||||||
scriptTemplates: List<String>,
|
scriptTemplates: List<String>,
|
||||||
configuration: CompilerConfiguration,
|
configuration: CompilerConfiguration,
|
||||||
+2
-2
@@ -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.
|
* 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 com.intellij.openapi.fileTypes.LanguageFileType
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
+2
-7
@@ -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.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package org.jetbrains.kotlin.scripting.compiler.plugin.definitions
|
||||||
* 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
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
+27
-7
@@ -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.
|
* 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.CompilerMessageSeverity
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
@@ -136,7 +136,12 @@ internal fun loadScriptTemplatesFromClasspath(
|
|||||||
else buildSequence {
|
else buildSequence {
|
||||||
// trying the direct classloading from baseClassloader first, since this is the most performant variant
|
// trying the direct classloading from baseClassloader first, since this is the most performant variant
|
||||||
val (initialLoadedDefinitions, initialNotFoundTemplates) = scriptTemplates.partitionMapNotNull {
|
val (initialLoadedDefinitions, initialNotFoundTemplates) = scriptTemplates.partitionMapNotNull {
|
||||||
loadScriptDefinition(baseClassLoader, it, scriptResolverEnv, messageCollector)
|
loadScriptDefinition(
|
||||||
|
baseClassLoader,
|
||||||
|
it,
|
||||||
|
scriptResolverEnv,
|
||||||
|
messageCollector
|
||||||
|
)
|
||||||
}
|
}
|
||||||
initialLoadedDefinitions.forEach {
|
initialLoadedDefinitions.forEach {
|
||||||
yield(it)
|
yield(it)
|
||||||
@@ -144,7 +149,8 @@ internal fun loadScriptTemplatesFromClasspath(
|
|||||||
// then searching the remaining templates in the supplied classpath
|
// then searching the remaining templates in the supplied classpath
|
||||||
|
|
||||||
var remainingTemplates = initialNotFoundTemplates
|
var remainingTemplates = initialNotFoundTemplates
|
||||||
val classpathAndLoader = LazyClasspathWithClassLoader(baseClassLoader) { classpath + dependenciesClasspath }
|
val classpathAndLoader =
|
||||||
|
LazyClasspathWithClassLoader(baseClassLoader) { classpath + dependenciesClasspath }
|
||||||
for (dep in classpath) {
|
for (dep in classpath) {
|
||||||
if (remainingTemplates.isEmpty()) break
|
if (remainingTemplates.isEmpty()) break
|
||||||
|
|
||||||
@@ -161,7 +167,10 @@ internal fun loadScriptTemplatesFromClasspath(
|
|||||||
else -> {
|
else -> {
|
||||||
// assuming that invalid classpath entries will be reported elsewhere anyway, so do not spam user with additional warnings here
|
// 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")
|
messageCollector.report(CompilerMessageSeverity.LOGGING, "Configure scripting: Unknown classpath entry $dep")
|
||||||
DefinitionsLoadPartitionResult(listOf(), remainingTemplates)
|
DefinitionsLoadPartitionResult(
|
||||||
|
listOf(),
|
||||||
|
remainingTemplates
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (loadedDefinitions.isNotEmpty()) {
|
if (loadedDefinitions.isNotEmpty()) {
|
||||||
@@ -202,7 +211,13 @@ private inline fun List<String>.partitionLoadDefinitions(
|
|||||||
for (definitionName in this) {
|
for (definitionName in this) {
|
||||||
val classBytes = getBytes(definitionName)
|
val classBytes = getBytes(definitionName)
|
||||||
val definition = classBytes?.let {
|
val definition = classBytes?.let {
|
||||||
loadScriptDefinition(it, definitionName, classpathAndLoader, scriptResolverEnv, messageCollector)
|
loadScriptDefinition(
|
||||||
|
it,
|
||||||
|
definitionName,
|
||||||
|
classpathAndLoader,
|
||||||
|
scriptResolverEnv,
|
||||||
|
messageCollector
|
||||||
|
)
|
||||||
}
|
}
|
||||||
when {
|
when {
|
||||||
definition != null -> loaded.add(definition)
|
definition != null -> loaded.add(definition)
|
||||||
@@ -242,7 +257,12 @@ private fun loadScriptDefinition(
|
|||||||
for (ann in anns) {
|
for (ann in anns) {
|
||||||
var def: KotlinScriptDefinition? = null
|
var def: KotlinScriptDefinition? = null
|
||||||
if (ann.name == KotlinScript::class.simpleName) {
|
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) {
|
} else if (ann.name == ScriptTemplateDefinition::class.simpleName) {
|
||||||
val templateClass = classpathAndLoader.classLoader.loadClass(templateClassName).kotlin
|
val templateClass = classpathAndLoader.classLoader.loadClass(templateClassName).kotlin
|
||||||
def = KotlinScriptDefinitionFromAnnotatedTemplate(templateClass, scriptResolverEnv, classpathAndLoader.classpath)
|
def = KotlinScriptDefinitionFromAnnotatedTemplate(templateClass, scriptResolverEnv, classpathAndLoader.classpath)
|
||||||
+2
-2
@@ -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.
|
* 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.*
|
import org.jetbrains.org.objectweb.asm.*
|
||||||
|
|
||||||
+47
@@ -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)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+15
-2
@@ -20,6 +20,9 @@ import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoot
|
|||||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
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.ConfigurationKind
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.test.TestCaseWithTmpdir
|
import org.jetbrains.kotlin.test.TestCaseWithTmpdir
|
||||||
@@ -130,7 +133,12 @@ class ScriptingCompilerPluginTest : TestCaseWithTmpdir() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val lazyDefsSeq =
|
val lazyDefsSeq =
|
||||||
discoverScriptTemplatesInClasspath(listOf(defsOut), this::class.java.classLoader, emptyMap(), messageCollector)
|
discoverScriptTemplatesInClasspath(
|
||||||
|
listOf(defsOut),
|
||||||
|
this::class.java.classLoader,
|
||||||
|
emptyMap(),
|
||||||
|
messageCollector
|
||||||
|
)
|
||||||
|
|
||||||
assertTrue(messageCollector.messages.isEmpty()) {
|
assertTrue(messageCollector.messages.isEmpty()) {
|
||||||
"Unexpected messages from discovery sequence (should be empty):\n$messageCollector"
|
"Unexpected messages from discovery sequence (should be empty):\n$messageCollector"
|
||||||
@@ -196,7 +204,12 @@ class ScriptingCompilerPluginTest : TestCaseWithTmpdir() {
|
|||||||
|
|
||||||
messageCollector.clear()
|
messageCollector.clear()
|
||||||
|
|
||||||
discoverScriptTemplatesInClasspath(listOf(defsOut), this::class.java.classLoader, emptyMap(), messageCollector).toList()
|
discoverScriptTemplatesInClasspath(
|
||||||
|
listOf(defsOut),
|
||||||
|
this::class.java.classLoader,
|
||||||
|
emptyMap(),
|
||||||
|
messageCollector
|
||||||
|
).toList()
|
||||||
|
|
||||||
assertTrue(
|
assertTrue(
|
||||||
messageCollector.messages.isNotEmpty()
|
messageCollector.messages.isNotEmpty()
|
||||||
+2
-2
@@ -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').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-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-intellij').projectDir = "$rootDir/libraries/scripting/intellij" as File
|
||||||
project(':kotlin-scripting-compiler').projectDir = "$rootDir/plugins/scripting/scripting-cli" as File
|
project(':kotlin-scripting-compiler').projectDir = "$rootDir/plugins/scripting/scripting-compiler" as File
|
||||||
project(':kotlin-scripting-compiler-embeddable').projectDir = "$rootDir/plugins/scripting/scripting-embeddable" 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-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').projectDir = "$rootDir/libraries/tools/kotlin-main-kts" as File
|
||||||
project(':kotlin-main-kts-test').projectDir = "$rootDir/libraries/tools/kotlin-main-kts-test" as File
|
project(':kotlin-main-kts-test').projectDir = "$rootDir/libraries/tools/kotlin-main-kts-test" as File
|
||||||
|
|||||||
Reference in New Issue
Block a user