Refactor scripting compiler plugin - move cli dependent parts out of the -impl jar
The kotlin-scripting-compiler-impl jar is used in the idea plugin and therefore should not depend on the cli parts of the compiler to avoid dependency from the plugin to the kotlin-compiler.jar. Therefore the cli-dependent parts were moved to the scripting plugin jar, which is used only in cli compiler based environments. Also implement required abstractions to allow this movement and drop some redundant dependencies to the cli parts in other projects.
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
import java.io.File
|
|
||||||
import org.gradle.api.tasks.bundling.Jar
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("jvm")
|
kotlin("jvm")
|
||||||
@@ -51,7 +50,7 @@ dependencies {
|
|||||||
testCompile(projectTests(":generators:test-generator"))
|
testCompile(projectTests(":generators:test-generator"))
|
||||||
testCompile(project(":compiler:ir.ir2cfg"))
|
testCompile(project(":compiler:ir.ir2cfg"))
|
||||||
testCompile(project(":compiler:ir.tree")) // used for deepCopyWithSymbols call that is removed by proguard from the compiler TODO: make it more straightforward
|
testCompile(project(":compiler:ir.tree")) // used for deepCopyWithSymbols call that is removed by proguard from the compiler TODO: make it more straightforward
|
||||||
testCompile(project(":kotlin-scripting-compiler-impl"))
|
testCompile(project(":kotlin-scripting-compiler"))
|
||||||
testCompile(project(":kotlin-script-util"))
|
testCompile(project(":kotlin-script-util"))
|
||||||
testCompileOnly(projectRuntimeJar(":kotlin-daemon-client-new"))
|
testCompileOnly(projectRuntimeJar(":kotlin-daemon-client-new"))
|
||||||
testCompileOnly(project(":kotlin-reflect-api"))
|
testCompileOnly(project(":kotlin-reflect-api"))
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
testCompile(project(":kotlin-scripting-compiler-impl"))
|
testCompile(project(":kotlin-scripting-compiler"))
|
||||||
testCompile(projectTests(":compiler:tests-common"))
|
testCompile(projectTests(":compiler:tests-common"))
|
||||||
testCompileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
testCompileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
||||||
testCompile(projectTests(":generators:test-generator"))
|
testCompile(projectTests(":generators:test-generator"))
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
|||||||
import org.jetbrains.kotlin.config.JvmTarget
|
import org.jetbrains.kotlin.config.JvmTarget
|
||||||
import org.jetbrains.kotlin.integration.KotlinIntegrationTestBase
|
import org.jetbrains.kotlin.integration.KotlinIntegrationTestBase
|
||||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.GenericReplCompiler
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.KOTLIN_REPL_JVM_TARGET_PROPERTY
|
||||||
import org.jetbrains.kotlin.scripting.definitions.StandardScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.StandardScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.repl.GenericReplCompiler
|
|
||||||
import org.jetbrains.kotlin.scripting.repl.KOTLIN_REPL_JVM_TARGET_PROPERTY
|
|
||||||
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
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots
|
|||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||||
import org.jetbrains.kotlin.integration.KotlinIntegrationTestBase
|
import org.jetbrains.kotlin.integration.KotlinIntegrationTestBase
|
||||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.GenericReplCompiler
|
||||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.repl.GenericReplCompiler
|
|
||||||
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
|
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
|||||||
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.script.loadScriptingPlugin
|
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||||
import org.jetbrains.kotlin.scripting.configuration.configureScriptDefinitions
|
import org.jetbrains.kotlin.scripting.compiler.plugin.configureScriptDefinitions
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||||
import org.jetbrains.kotlin.scripting.configuration.configureScriptDefinitions
|
import org.jetbrains.kotlin.scripting.compiler.plugin.configureScriptDefinitions
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
import org.jetbrains.kotlin.utils.PathUtil
|
import org.jetbrains.kotlin.utils.PathUtil
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ package org.jetbrains.kotlin.repl
|
|||||||
import com.intellij.openapi.util.text.StringUtil
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
import org.jetbrains.kotlin.cli.common.repl.ReplEvalResult
|
import org.jetbrains.kotlin.cli.common.repl.ReplEvalResult
|
||||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplInterpreter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.ReplInterpreter
|
||||||
import org.jetbrains.kotlin.scripting.repl.configuration.ConsoleReplConfiguration
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.configuration.ConsoleReplConfiguration
|
||||||
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
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ dependencies {
|
|||||||
compile(project(":core:descriptors"))
|
compile(project(":core:descriptors"))
|
||||||
compile(project(":core:descriptors.jvm"))
|
compile(project(":core:descriptors.jvm"))
|
||||||
compile(project(":compiler:backend"))
|
compile(project(":compiler:backend"))
|
||||||
compile(project(":compiler:cli-common"))
|
|
||||||
compile(project(":compiler:frontend"))
|
compile(project(":compiler:frontend"))
|
||||||
compile(project(":compiler:frontend.common"))
|
compile(project(":compiler:frontend.common"))
|
||||||
compile(project(":compiler:frontend.java"))
|
compile(project(":compiler:frontend.java"))
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ plugins {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile(kotlinStdlib())
|
compile(kotlinStdlib())
|
||||||
compile(project(":compiler:cli-common"))
|
|
||||||
compile(intellijPluginDep("gradle"))
|
compile(intellijPluginDep("gradle"))
|
||||||
compileOnly(intellijDep()) { includeJars("slf4j-api-1.7.25") }
|
compileOnly(intellijDep()) { includeJars("slf4j-api-1.7.25") }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,14 +8,11 @@ package org.jetbrains.kotlin.idea.script
|
|||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.openapi.extensions.Extensions
|
import com.intellij.openapi.extensions.Extensions
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
|
||||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
||||||
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates
|
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource
|
||||||
import org.jetbrains.kotlin.scripting.definitions.reporter
|
import kotlin.script.experimental.api.ScriptDiagnostic
|
||||||
import kotlin.script.experimental.intellij.ScriptDefinitionsProvider
|
import kotlin.script.experimental.intellij.ScriptDefinitionsProvider
|
||||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||||
|
|
||||||
@@ -25,7 +22,6 @@ class BridgeScriptDefinitionsContributor(private val project: Project) : ScriptD
|
|||||||
override val definitions: Sequence<ScriptDefinition>
|
override val definitions: Sequence<ScriptDefinition>
|
||||||
get() {
|
get() {
|
||||||
val extensions = Extensions.getArea(project).getExtensionPoint(ScriptDefinitionsProvider.EP_NAME).extensions
|
val extensions = Extensions.getArea(project).getExtensionPoint(ScriptDefinitionsProvider.EP_NAME).extensions
|
||||||
val messageCollector = LoggingMessageCollector()
|
|
||||||
return extensions.asSequence().flatMap { provider ->
|
return extensions.asSequence().flatMap { provider ->
|
||||||
val explicitClasses = provider.getDefinitionClasses().toList()
|
val explicitClasses = provider.getDefinitionClasses().toList()
|
||||||
val classPath = provider.getDefinitionsClassPath().toList()
|
val classPath = provider.getDefinitionsClassPath().toList()
|
||||||
@@ -38,33 +34,20 @@ class BridgeScriptDefinitionsContributor(private val project: Project) : ScriptD
|
|||||||
else ScriptDefinitionsFromClasspathDiscoverySource(
|
else ScriptDefinitionsFromClasspathDiscoverySource(
|
||||||
classPath,
|
classPath,
|
||||||
hostConfiguration,
|
hostConfiguration,
|
||||||
messageCollector.reporter
|
::loggingReporter
|
||||||
).definitions
|
).definitions
|
||||||
explicitDefinitions + discoveredDefinitions
|
explicitDefinitions + discoveredDefinitions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class LoggingMessageCollector : MessageCollector {
|
fun loggingReporter(severity: ScriptDiagnostic.Severity, message: String) {
|
||||||
|
val log = Logger.getInstance("ScriptDefinitionsProviders")
|
||||||
private val log = Logger.getInstance("ScriptDefinitionsProviders")
|
when (severity) {
|
||||||
|
ScriptDiagnostic.Severity.FATAL,
|
||||||
private var hasErrors = false
|
ScriptDiagnostic.Severity.ERROR -> log.error(message)
|
||||||
|
ScriptDiagnostic.Severity.WARNING,
|
||||||
override fun clear() {
|
ScriptDiagnostic.Severity.INFO -> log.info(message)
|
||||||
hasErrors = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation?) {
|
|
||||||
when (severity) {
|
|
||||||
CompilerMessageSeverity.ERROR, CompilerMessageSeverity.EXCEPTION -> {
|
|
||||||
log.error(message)
|
|
||||||
hasErrors = true
|
|
||||||
}
|
|
||||||
CompilerMessageSeverity.WARNING, CompilerMessageSeverity.STRONG_WARNING -> log.warn(message)
|
|
||||||
else -> log.info(message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun hasErrors(): Boolean = hasErrors
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ dependencies {
|
|||||||
compileOnly(project(":kotlin-compiler-runner"))
|
compileOnly(project(":kotlin-compiler-runner"))
|
||||||
compileOnly(project(":kotlin-annotation-processing"))
|
compileOnly(project(":kotlin-annotation-processing"))
|
||||||
compileOnly(project(":kotlin-annotation-processing-gradle"))
|
compileOnly(project(":kotlin-annotation-processing-gradle"))
|
||||||
compileOnly(project(":kotlin-scripting-compiler-impl"))
|
compileOnly(project(":kotlin-scripting-compiler"))
|
||||||
|
|
||||||
compile("com.google.code.gson:gson:${rootProject.extra["versions.jar.gson"]}")
|
compile("com.google.code.gson:gson:${rootProject.extra["versions.jar.gson"]}")
|
||||||
compile("de.undercouch:gradle-download-task:3.4.3")
|
compile("de.undercouch:gradle-download-task:3.4.3")
|
||||||
|
|||||||
+1
-1
@@ -24,8 +24,8 @@ 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.gradle.utils.isGradleVersionAtLeast
|
import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.reporter
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource
|
||||||
import org.jetbrains.kotlin.scripting.definitions.reporter
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -49,15 +49,14 @@ import org.jetbrains.kotlin.config.CompilerConfiguration;
|
|||||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil;
|
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil;
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.psi.KtScript;
|
import org.jetbrains.kotlin.psi.KtScript;
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.ConfigurationKt;
|
||||||
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar;
|
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar;
|
||||||
import org.jetbrains.kotlin.scripting.configuration.ConfigurationKt;
|
|
||||||
import org.jetbrains.kotlin.utils.ParametersMapKt;
|
import org.jetbrains.kotlin.utils.ParametersMapKt;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -24,8 +24,8 @@ import org.jetbrains.kotlin.cli.jvm.config.addJvmSdkRoots
|
|||||||
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
||||||
import org.jetbrains.kotlin.config.*
|
import org.jetbrains.kotlin.config.*
|
||||||
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar
|
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.GenericReplCompiler
|
||||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.repl.GenericReplCompiler
|
|
||||||
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
|
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||||
import org.jetbrains.kotlin.utils.PathUtil
|
import org.jetbrains.kotlin.utils.PathUtil
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ dependencies {
|
|||||||
compileOnly(project(":compiler:frontend.java"))
|
compileOnly(project(":compiler:frontend.java"))
|
||||||
compileOnly(project(":compiler:psi"))
|
compileOnly(project(":compiler:psi"))
|
||||||
compileOnly(project(":compiler:plugin-api"))
|
compileOnly(project(":compiler:plugin-api"))
|
||||||
compileOnly(project(":compiler:cli"))
|
|
||||||
compile(project(":kotlin-scripting-common"))
|
compile(project(":kotlin-scripting-common"))
|
||||||
compile(project(":kotlin-scripting-jvm"))
|
compile(project(":kotlin-scripting-jvm"))
|
||||||
compile(kotlinStdlib())
|
compile(kotlinStdlib())
|
||||||
|
|||||||
+4
-9
@@ -5,19 +5,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.scripting.definitions
|
package org.jetbrains.kotlin.scripting.definitions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.script.experimental.annotations.KotlinScript
|
import kotlin.script.experimental.annotations.KotlinScript
|
||||||
import kotlin.script.experimental.api.KotlinType
|
import kotlin.script.experimental.api.*
|
||||||
import kotlin.script.experimental.api.ScriptCompilationConfiguration
|
|
||||||
import kotlin.script.experimental.api.ScriptEvaluationConfiguration
|
|
||||||
import kotlin.script.experimental.api.fileExtension
|
|
||||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||||
import kotlin.script.experimental.host.configurationDependencies
|
import kotlin.script.experimental.host.configurationDependencies
|
||||||
import kotlin.script.experimental.host.createCompilationConfigurationFromTemplate
|
import kotlin.script.experimental.host.createCompilationConfigurationFromTemplate
|
||||||
import kotlin.script.experimental.host.createEvaluationConfigurationFromTemplate
|
import kotlin.script.experimental.host.createEvaluationConfigurationFromTemplate
|
||||||
import kotlin.script.experimental.jvm.JvmDependency
|
import kotlin.script.experimental.jvm.JvmDependency
|
||||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
|
||||||
|
|
||||||
class LazyScriptDefinitionFromDiscoveredClass internal constructor(
|
class LazyScriptDefinitionFromDiscoveredClass internal constructor(
|
||||||
baseHostConfiguration: ScriptingHostConfiguration,
|
baseHostConfiguration: ScriptingHostConfiguration,
|
||||||
@@ -43,7 +38,7 @@ class LazyScriptDefinitionFromDiscoveredClass internal constructor(
|
|||||||
|
|
||||||
private val configurations by lazy(LazyThreadSafetyMode.PUBLICATION) {
|
private val configurations by lazy(LazyThreadSafetyMode.PUBLICATION) {
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.LOGGING,
|
ScriptDiagnostic.Severity.DEBUG,
|
||||||
"Configure scripting: loading script definition class $className using classpath $classpath\n. ${Thread.currentThread().stackTrace}"
|
"Configure scripting: loading script definition class $className using classpath $classpath\n. ${Thread.currentThread().stackTrace}"
|
||||||
)
|
)
|
||||||
try {
|
try {
|
||||||
@@ -61,11 +56,11 @@ class LazyScriptDefinitionFromDiscoveredClass internal constructor(
|
|||||||
)
|
)
|
||||||
compileCfg to evalCfg
|
compileCfg to evalCfg
|
||||||
} catch (ex: ClassNotFoundException) {
|
} catch (ex: ClassNotFoundException) {
|
||||||
messageReporter(CompilerMessageSeverity.ERROR, "Cannot find script definition class $className")
|
messageReporter(ScriptDiagnostic.Severity.ERROR, "Cannot find script definition class $className")
|
||||||
InvalidScriptDefinition
|
InvalidScriptDefinition
|
||||||
} catch (ex: Exception) {
|
} catch (ex: Exception) {
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.ERROR,
|
ScriptDiagnostic.Severity.ERROR,
|
||||||
"Error processing script definition class $className: ${ex.message}\nclasspath:\n${classpath.joinToString("\n", " ")}"
|
"Error processing script definition class $className: ${ex.message}\nclasspath:\n${classpath.joinToString("\n", " ")}"
|
||||||
)
|
)
|
||||||
InvalidScriptDefinition
|
InvalidScriptDefinition
|
||||||
|
|||||||
+14
-23
@@ -5,8 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.scripting.definitions
|
package org.jetbrains.kotlin.scripting.definitions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
|
||||||
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
|
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -14,21 +12,14 @@ import java.io.IOException
|
|||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
import java.util.jar.JarFile
|
import java.util.jar.JarFile
|
||||||
import kotlin.script.experimental.annotations.KotlinScript
|
import kotlin.script.experimental.annotations.KotlinScript
|
||||||
import kotlin.script.experimental.api.KotlinType
|
import kotlin.script.experimental.api.ScriptDiagnostic
|
||||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||||
import kotlin.script.experimental.host.createCompilationConfigurationFromTemplate
|
|
||||||
import kotlin.script.experimental.host.createEvaluationConfigurationFromTemplate
|
|
||||||
import kotlin.script.templates.ScriptTemplateDefinition
|
import kotlin.script.templates.ScriptTemplateDefinition
|
||||||
|
|
||||||
const val SCRIPT_DEFINITION_MARKERS_PATH = "META-INF/kotlin/script/templates/"
|
const val SCRIPT_DEFINITION_MARKERS_PATH = "META-INF/kotlin/script/templates/"
|
||||||
const val SCRIPT_DEFINITION_MARKERS_EXTENSION_WITH_DOT = ".classname"
|
const val SCRIPT_DEFINITION_MARKERS_EXTENSION_WITH_DOT = ".classname"
|
||||||
|
|
||||||
typealias MessageReporter = (CompilerMessageSeverity, String) -> Unit
|
typealias MessageReporter = (ScriptDiagnostic.Severity, String) -> Unit
|
||||||
|
|
||||||
val MessageCollector.reporter: MessageReporter
|
|
||||||
get() = { severity, message ->
|
|
||||||
this.report(severity, message)
|
|
||||||
}
|
|
||||||
|
|
||||||
class ScriptDefinitionsFromClasspathDiscoverySource(
|
class ScriptDefinitionsFromClasspathDiscoverySource(
|
||||||
private val classpath: List<File>,
|
private val classpath: List<File>,
|
||||||
@@ -107,7 +98,7 @@ private fun scriptTemplatesDiscoverySequence(
|
|||||||
)
|
)
|
||||||
if (notFoundClasses.isNotEmpty()) {
|
if (notFoundClasses.isNotEmpty()) {
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.STRONG_WARNING,
|
ScriptDiagnostic.Severity.WARNING,
|
||||||
"Configure scripting: unable to find script definitions [${notFoundClasses.joinToString(", ")}]"
|
"Configure scripting: unable to find script definitions [${notFoundClasses.joinToString(", ")}]"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -131,12 +122,12 @@ private fun scriptTemplatesDiscoverySequence(
|
|||||||
}
|
}
|
||||||
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
|
||||||
messageReporter(CompilerMessageSeverity.LOGGING, "Configure scripting: Unknown classpath entry $dep")
|
messageReporter(ScriptDiagnostic.Severity.DEBUG, "Configure scripting: Unknown classpath entry $dep")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.STRONG_WARNING, "Configure scripting: unable to process classpath entry $dep: $e"
|
ScriptDiagnostic.Severity.WARNING, "Configure scripting: unable to process classpath entry $dep: $e"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -152,13 +143,13 @@ private fun scriptTemplatesDiscoverySequence(
|
|||||||
remainingDefinitionCandidates = notFoundDefinitions
|
remainingDefinitionCandidates = notFoundDefinitions
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.STRONG_WARNING, "Configure scripting: unable to process classpath entry $dep: $e"
|
ScriptDiagnostic.Severity.WARNING, "Configure scripting: unable to process classpath entry $dep: $e"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (remainingDefinitionCandidates.isNotEmpty()) {
|
if (remainingDefinitionCandidates.isNotEmpty()) {
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.STRONG_WARNING,
|
ScriptDiagnostic.Severity.WARNING,
|
||||||
"The following script definitions are not found in the classpath: [${remainingDefinitionCandidates.joinToString()}]"
|
"The following script definitions are not found in the classpath: [${remainingDefinitionCandidates.joinToString()}]"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -207,7 +198,7 @@ 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
|
||||||
messageReporter(CompilerMessageSeverity.LOGGING, "Configure scripting: Unknown classpath entry $dep")
|
messageReporter(ScriptDiagnostic.Severity.DEBUG, "Configure scripting: Unknown classpath entry $dep")
|
||||||
DefinitionsLoadPartitionResult(
|
DefinitionsLoadPartitionResult(
|
||||||
listOf(),
|
listOf(),
|
||||||
remainingTemplates
|
remainingTemplates
|
||||||
@@ -222,7 +213,7 @@ fun loadScriptTemplatesFromClasspath(
|
|||||||
}
|
}
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.STRONG_WARNING,
|
ScriptDiagnostic.Severity.WARNING,
|
||||||
"Configure scripting: unable to process classpath entry $dep: $e"
|
"Configure scripting: unable to process classpath entry $dep: $e"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -230,7 +221,7 @@ fun loadScriptTemplatesFromClasspath(
|
|||||||
|
|
||||||
if (remainingTemplates.isNotEmpty()) {
|
if (remainingTemplates.isNotEmpty()) {
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.STRONG_WARNING,
|
ScriptDiagnostic.Severity.WARNING,
|
||||||
"Configure scripting: unable to find script definition classes: ${remainingTemplates.joinToString(", ")}"
|
"Configure scripting: unable to find script definition classes: ${remainingTemplates.joinToString(", ")}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -319,14 +310,14 @@ private fun loadScriptDefinition(
|
|||||||
}
|
}
|
||||||
if (def != null) {
|
if (def != null) {
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.LOGGING,
|
ScriptDiagnostic.Severity.DEBUG,
|
||||||
"Configure scripting: Added template $templateClassName from ${classpathWithLoader.classpath}"
|
"Configure scripting: Added template $templateClassName from ${classpathWithLoader.classpath}"
|
||||||
)
|
)
|
||||||
return def
|
return def
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.STRONG_WARNING,
|
ScriptDiagnostic.Severity.WARNING,
|
||||||
"Configure scripting: $templateClassName is not marked with any known kotlin script annotation"
|
"Configure scripting: $templateClassName is not marked with any known kotlin script annotation"
|
||||||
)
|
)
|
||||||
return null
|
return null
|
||||||
@@ -347,7 +338,7 @@ private fun loadScriptDefinition(
|
|||||||
ScriptDefinition.FromLegacyTemplate(hostConfiguration, cls.kotlin)
|
ScriptDefinition.FromLegacyTemplate(hostConfiguration, cls.kotlin)
|
||||||
}
|
}
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.INFO,
|
ScriptDiagnostic.Severity.INFO,
|
||||||
"Added script definition $template to configuration: name = ${def.name}"
|
"Added script definition $template to configuration: name = ${def.name}"
|
||||||
)
|
)
|
||||||
return def
|
return def
|
||||||
@@ -356,7 +347,7 @@ private fun loadScriptDefinition(
|
|||||||
} catch (ex: Exception) {
|
} catch (ex: Exception) {
|
||||||
// other exceptions - might be an error
|
// other exceptions - might be an error
|
||||||
messageReporter(
|
messageReporter(
|
||||||
CompilerMessageSeverity.STRONG_WARNING,
|
ScriptDiagnostic.Severity.WARNING,
|
||||||
"Error on loading script definition $template: ${ex.message}"
|
"Error on loading script definition $template: ${ex.message}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.cli.common.ExitCode
|
|||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||||
import org.jetbrains.kotlin.cli.common.extensions.ShellExtension
|
import org.jetbrains.kotlin.cli.common.extensions.ShellExtension
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplFromTerminal
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.ReplFromTerminal
|
||||||
|
|
||||||
class JvmCliReplShellExtension : ShellExtension {
|
class JvmCliReplShellExtension : ShellExtension {
|
||||||
|
|
||||||
|
|||||||
-1
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
|
|||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
import org.jetbrains.kotlin.config.CompilerConfigurationKey
|
||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||||
import org.jetbrains.kotlin.scripting.configuration.KOTLIN_SCRIPTING_PLUGIN_ID
|
|
||||||
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -16,9 +16,12 @@ 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.scripting.compiler.plugin.definitions.CliScriptDefinitionProvider
|
import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.CliScriptDefinitionProvider
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.reporter
|
||||||
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
||||||
import org.jetbrains.kotlin.scripting.configuration.configureScriptDefinitions
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.definitions.*
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionProvider
|
||||||
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource
|
||||||
|
import org.jetbrains.kotlin.scripting.definitions.getEnvironment
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -3,14 +3,15 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.configuration
|
package org.jetbrains.kotlin.scripting.compiler.plugin
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots
|
import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.reporter
|
||||||
|
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
||||||
import org.jetbrains.kotlin.scripting.definitions.loadScriptTemplatesFromClasspath
|
import org.jetbrains.kotlin.scripting.definitions.loadScriptTemplatesFromClasspath
|
||||||
import org.jetbrains.kotlin.scripting.definitions.reporter
|
|
||||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||||
|
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.dependencies
|
package org.jetbrains.kotlin.scripting.compiler.plugin.dependencies
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot
|
import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot
|
||||||
+2
-2
@@ -3,15 +3,15 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.extensions
|
package org.jetbrains.kotlin.scripting.compiler.plugin.extensions
|
||||||
|
|
||||||
import com.intellij.core.JavaCoreProjectEnvironment
|
import com.intellij.core.JavaCoreProjectEnvironment
|
||||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
import org.jetbrains.kotlin.cli.common.extensions.ReplFactoryExtension
|
import org.jetbrains.kotlin.cli.common.extensions.ReplFactoryExtension
|
||||||
import org.jetbrains.kotlin.cli.common.repl.ReplCompiler
|
import org.jetbrains.kotlin.cli.common.repl.ReplCompiler
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.GenericReplCompiler
|
||||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.repl.GenericReplCompiler
|
|
||||||
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
|
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
+2
-2
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.extensions
|
package org.jetbrains.kotlin.scripting.compiler.plugin.extensions
|
||||||
|
|
||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
|||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.extensions.CollectAdditionalSourcesExtension
|
import org.jetbrains.kotlin.extensions.CollectAdditionalSourcesExtension
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.scripting.dependencies.collectScriptsCompilationDependencies
|
import org.jetbrains.kotlin.scripting.compiler.plugin.dependencies.collectScriptsCompilationDependencies
|
||||||
|
|
||||||
class ScriptingCollectAdditionalSourcesExtension(val project: MockProject) : CollectAdditionalSourcesExtension {
|
class ScriptingCollectAdditionalSourcesExtension(val project: MockProject) : CollectAdditionalSourcesExtension {
|
||||||
override fun collectAdditionalSourcesAndUpdateConfiguration(
|
override fun collectAdditionalSourcesAndUpdateConfiguration(
|
||||||
+1
-1
@@ -21,8 +21,8 @@ import org.jetbrains.kotlin.codegen.state.GenerationState
|
|||||||
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
|
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
|
||||||
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.JvmReplCompilerState
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.JvmReplCompilerState
|
||||||
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.KJvmReplCompilerProxy
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.KJvmReplCompilerProxy
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.ReplCodeAnalyzer
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplCodeAnalyzer
|
|
||||||
import kotlin.script.experimental.api.*
|
import kotlin.script.experimental.api.*
|
||||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -25,11 +25,11 @@ import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
|||||||
import org.jetbrains.kotlin.config.JvmTarget
|
import org.jetbrains.kotlin.config.JvmTarget
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar
|
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.dependencies.ScriptsCompilationDependencies
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.dependencies.collectScriptsCompilationDependencies
|
||||||
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
|
||||||
import org.jetbrains.kotlin.scripting.dependencies.ScriptsCompilationDependencies
|
|
||||||
import org.jetbrains.kotlin.scripting.dependencies.collectScriptsCompilationDependencies
|
|
||||||
import kotlin.script.experimental.api.ScriptCompilationConfiguration
|
import kotlin.script.experimental.api.ScriptCompilationConfiguration
|
||||||
import kotlin.script.experimental.api.compilerOptions
|
import kotlin.script.experimental.api.compilerOptions
|
||||||
import kotlin.script.experimental.api.dependencies
|
import kotlin.script.experimental.api.dependencies
|
||||||
|
|||||||
+26
-9
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
|||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
||||||
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
|
||||||
|
import org.jetbrains.kotlin.scripting.definitions.MessageReporter
|
||||||
import kotlin.reflect.KMutableProperty1
|
import kotlin.reflect.KMutableProperty1
|
||||||
import kotlin.reflect.full.findAnnotation
|
import kotlin.reflect.full.findAnnotation
|
||||||
import kotlin.script.experimental.api.ResultWithDiagnostics
|
import kotlin.script.experimental.api.ResultWithDiagnostics
|
||||||
@@ -32,15 +33,7 @@ internal class ScriptDiagnosticsMessageCollector(private val parentMessageCollec
|
|||||||
_diagnostics.any { it.severity == ScriptDiagnostic.Severity.ERROR } || parentMessageCollector?.hasErrors() == true
|
_diagnostics.any { it.severity == ScriptDiagnostic.Severity.ERROR } || parentMessageCollector?.hasErrors() == true
|
||||||
|
|
||||||
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation?) {
|
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation?) {
|
||||||
val mappedSeverity = when (severity) {
|
val mappedSeverity = severity.toScriptingSeverity()
|
||||||
CompilerMessageSeverity.EXCEPTION,
|
|
||||||
CompilerMessageSeverity.ERROR -> ScriptDiagnostic.Severity.ERROR
|
|
||||||
CompilerMessageSeverity.STRONG_WARNING,
|
|
||||||
CompilerMessageSeverity.WARNING -> ScriptDiagnostic.Severity.WARNING
|
|
||||||
CompilerMessageSeverity.INFO -> ScriptDiagnostic.Severity.INFO
|
|
||||||
CompilerMessageSeverity.LOGGING -> ScriptDiagnostic.Severity.DEBUG
|
|
||||||
else -> null
|
|
||||||
}
|
|
||||||
if (mappedSeverity != null) {
|
if (mappedSeverity != null) {
|
||||||
val mappedLocation = location?.let {
|
val mappedLocation = location?.let {
|
||||||
if (it.line < 0 && it.column < 0) null // special location created by CompilerMessageLocation.create
|
if (it.line < 0 && it.column < 0) null // special location created by CompilerMessageLocation.create
|
||||||
@@ -57,6 +50,24 @@ internal class ScriptDiagnosticsMessageCollector(private val parentMessageCollec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun CompilerMessageSeverity.toScriptingSeverity(): ScriptDiagnostic.Severity? = when (this) {
|
||||||
|
CompilerMessageSeverity.EXCEPTION,
|
||||||
|
CompilerMessageSeverity.ERROR -> ScriptDiagnostic.Severity.ERROR
|
||||||
|
CompilerMessageSeverity.STRONG_WARNING,
|
||||||
|
CompilerMessageSeverity.WARNING -> ScriptDiagnostic.Severity.WARNING
|
||||||
|
CompilerMessageSeverity.INFO -> ScriptDiagnostic.Severity.INFO
|
||||||
|
CompilerMessageSeverity.LOGGING -> ScriptDiagnostic.Severity.DEBUG
|
||||||
|
CompilerMessageSeverity.OUTPUT -> null
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun ScriptDiagnostic.Severity.toCompilerMessageSeverity(): CompilerMessageSeverity = when (this) {
|
||||||
|
ScriptDiagnostic.Severity.ERROR -> CompilerMessageSeverity.ERROR
|
||||||
|
ScriptDiagnostic.Severity.WARNING -> CompilerMessageSeverity.WARNING
|
||||||
|
ScriptDiagnostic.Severity.INFO -> CompilerMessageSeverity.INFO
|
||||||
|
ScriptDiagnostic.Severity.DEBUG -> CompilerMessageSeverity.LOGGING
|
||||||
|
ScriptDiagnostic.Severity.FATAL -> CompilerMessageSeverity.EXCEPTION
|
||||||
|
}
|
||||||
|
|
||||||
internal fun failure(
|
internal fun failure(
|
||||||
messageCollector: ScriptDiagnosticsMessageCollector, vararg diagnostics: ScriptDiagnostic
|
messageCollector: ScriptDiagnosticsMessageCollector, vararg diagnostics: ScriptDiagnostic
|
||||||
): ResultWithDiagnostics.Failure =
|
): ResultWithDiagnostics.Failure =
|
||||||
@@ -134,3 +145,9 @@ private fun reportIgnoredArguments(
|
|||||||
messageCollector.report(CompilerMessageSeverity.STRONG_WARNING, "$message${ignoredArgKeys.joinToString(", ")}")
|
messageCollector.report(CompilerMessageSeverity.STRONG_WARNING, "$message${ignoredArgKeys.joinToString(", ")}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val MessageCollector.reporter: MessageReporter
|
||||||
|
get() = { severity, message ->
|
||||||
|
this.report(severity.toCompilerMessageSeverity(), message)
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.idea.KotlinLanguage
|
|||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.KtScript
|
import org.jetbrains.kotlin.psi.KtScript
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.kotlin.scripting.dependencies.ScriptsCompilationDependencies
|
import org.jetbrains.kotlin.scripting.compiler.plugin.dependencies.ScriptsCompilationDependencies
|
||||||
import org.jetbrains.kotlin.scripting.resolve.ScriptLightVirtualFile
|
import org.jetbrains.kotlin.scripting.resolve.ScriptLightVirtualFile
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|||||||
+12
-4
@@ -22,10 +22,12 @@ import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension
|
|||||||
import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.CliScriptDefinitionProvider
|
import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.CliScriptDefinitionProvider
|
||||||
import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.CliScriptDependenciesProvider
|
import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.CliScriptDependenciesProvider
|
||||||
import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.CliScriptReportSink
|
import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.CliScriptReportSink
|
||||||
import org.jetbrains.kotlin.scripting.configuration.makeHostConfiguration
|
import org.jetbrains.kotlin.scripting.compiler.plugin.extensions.JvmStandardReplFactoryExtension
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.extensions.ScriptingCollectAdditionalSourcesExtension
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionProvider
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionProvider
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
|
||||||
import org.jetbrains.kotlin.scripting.extensions.*
|
import org.jetbrains.kotlin.scripting.extensions.ScriptExtraImportsProviderExtension
|
||||||
|
import org.jetbrains.kotlin.scripting.extensions.ScriptingResolveExtension
|
||||||
import org.jetbrains.kotlin.scripting.resolve.ScriptReportSink
|
import org.jetbrains.kotlin.scripting.resolve.ScriptReportSink
|
||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
|
|
||||||
@@ -43,10 +45,16 @@ class ScriptingCompilerConfigurationComponentRegistrar : ComponentRegistrar {
|
|||||||
val hostConfiguration = makeHostConfiguration(project, configuration)
|
val hostConfiguration = makeHostConfiguration(project, configuration)
|
||||||
withClassloadingProblemsReporting(messageCollector) {
|
withClassloadingProblemsReporting(messageCollector) {
|
||||||
CompilerConfigurationExtension.registerExtension(project, ScriptingCompilerConfigurationExtension(project, hostConfiguration))
|
CompilerConfigurationExtension.registerExtension(project, ScriptingCompilerConfigurationExtension(project, hostConfiguration))
|
||||||
CollectAdditionalSourcesExtension.registerExtension(project, ScriptingCollectAdditionalSourcesExtension(project))
|
CollectAdditionalSourcesExtension.registerExtension(project,
|
||||||
|
ScriptingCollectAdditionalSourcesExtension(
|
||||||
|
project
|
||||||
|
)
|
||||||
|
)
|
||||||
ScriptEvaluationExtension.registerExtensionIfRequired(project, JvmCliScriptEvaluationExtension())
|
ScriptEvaluationExtension.registerExtensionIfRequired(project, JvmCliScriptEvaluationExtension())
|
||||||
ShellExtension.registerExtensionIfRequired(project, JvmCliReplShellExtension())
|
ShellExtension.registerExtensionIfRequired(project, JvmCliReplShellExtension())
|
||||||
ReplFactoryExtension.registerExtensionIfRequired(project, JvmStandardReplFactoryExtension())
|
ReplFactoryExtension.registerExtensionIfRequired(project,
|
||||||
|
JvmStandardReplFactoryExtension()
|
||||||
|
)
|
||||||
|
|
||||||
val scriptDefinitionProvider = CliScriptDefinitionProvider()
|
val scriptDefinitionProvider = CliScriptDefinitionProvider()
|
||||||
project.registerService(ScriptDefinitionProvider::class.java, scriptDefinitionProvider)
|
project.registerService(ScriptDefinitionProvider::class.java, scriptDefinitionProvider)
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.scripting.repl
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
|
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
|
||||||
+7
-7
@@ -3,17 +3,17 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.repl.*
|
import org.jetbrains.kotlin.cli.common.repl.*
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
|
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.scripting.repl.messages.DiagnosticMessageHolder
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.messages.DiagnosticMessageHolder
|
||||||
import java.util.concurrent.locks.ReentrantReadWriteLock
|
import java.util.concurrent.locks.ReentrantReadWriteLock
|
||||||
import kotlin.script.experimental.dependencies.ScriptDependencies
|
import kotlin.script.experimental.dependencies.ScriptDependencies
|
||||||
|
|
||||||
class ReplCompilerStageHistory(private val state: org.jetbrains.kotlin.scripting.repl.GenericReplCompilerState) : BasicReplStageHistory<ScriptDescriptor>(state.lock) {
|
class ReplCompilerStageHistory(private val state: GenericReplCompilerState) : BasicReplStageHistory<ScriptDescriptor>(state.lock) {
|
||||||
|
|
||||||
override fun reset(): Iterable<ILineId> {
|
override fun reset(): Iterable<ILineId> {
|
||||||
val removedCompiledLines = super.reset()
|
val removedCompiledLines = super.reset()
|
||||||
@@ -49,17 +49,17 @@ abstract class GenericReplCheckerState : IReplStageState<ScriptDescriptor> {
|
|||||||
val errorHolder: DiagnosticMessageHolder
|
val errorHolder: DiagnosticMessageHolder
|
||||||
)
|
)
|
||||||
|
|
||||||
var lastLineState: org.jetbrains.kotlin.scripting.repl.GenericReplCheckerState.LineState? = null // for transferring state to the compiler in most typical case
|
var lastLineState: LineState? = null // for transferring state to the compiler in most typical case
|
||||||
}
|
}
|
||||||
|
|
||||||
class GenericReplCompilerState(environment: KotlinCoreEnvironment, override val lock: ReentrantReadWriteLock = ReentrantReadWriteLock()) :
|
class GenericReplCompilerState(environment: KotlinCoreEnvironment, override val lock: ReentrantReadWriteLock = ReentrantReadWriteLock()) :
|
||||||
IReplStageState<ScriptDescriptor>, org.jetbrains.kotlin.scripting.repl.GenericReplCheckerState() {
|
IReplStageState<ScriptDescriptor>, GenericReplCheckerState() {
|
||||||
|
|
||||||
override val history = org.jetbrains.kotlin.scripting.repl.ReplCompilerStageHistory(this)
|
override val history = ReplCompilerStageHistory(this)
|
||||||
|
|
||||||
override val currentGeneration: Int get() = (history as BasicReplStageHistory<*>).currentGeneration.get()
|
override val currentGeneration: Int get() = (history as BasicReplStageHistory<*>).currentGeneration.get()
|
||||||
|
|
||||||
val analyzerEngine = org.jetbrains.kotlin.scripting.repl.ReplCodeAnalyzer(environment)
|
val analyzerEngine = ReplCodeAnalyzer(environment)
|
||||||
|
|
||||||
var lastDependencies: ScriptDependencies? = null
|
var lastDependencies: ScriptDependencies? = null
|
||||||
}
|
}
|
||||||
+4
-4
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl
|
||||||
|
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.util.text.StringUtil
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
@@ -24,10 +24,10 @@ import org.jetbrains.kotlin.config.JvmTarget
|
|||||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||||
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.messages.ConsoleDiagnosticMessageHolder
|
||||||
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
||||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.repl.messages.ConsoleDiagnosticMessageHolder
|
|
||||||
import kotlin.concurrent.write
|
import kotlin.concurrent.write
|
||||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||||
import kotlin.script.experimental.host.configurationDependencies
|
import kotlin.script.experimental.host.configurationDependencies
|
||||||
@@ -68,7 +68,7 @@ open class GenericReplChecker(
|
|||||||
|
|
||||||
override fun check(state: IReplStageState<*>, codeLine: ReplCodeLine): ReplCheckResult {
|
override fun check(state: IReplStageState<*>, codeLine: ReplCodeLine): ReplCheckResult {
|
||||||
state.lock.write {
|
state.lock.write {
|
||||||
val checkerState = state.asState(org.jetbrains.kotlin.scripting.repl.GenericReplCheckerState::class.java)
|
val checkerState = state.asState(GenericReplCheckerState::class.java)
|
||||||
val scriptFileName = makeScriptBaseName(codeLine)
|
val scriptFileName = makeScriptBaseName(codeLine)
|
||||||
val virtualFile =
|
val virtualFile =
|
||||||
LightVirtualFile(
|
LightVirtualFile(
|
||||||
@@ -87,7 +87,7 @@ open class GenericReplChecker(
|
|||||||
|
|
||||||
if (!syntaxErrorReport.isHasErrors) {
|
if (!syntaxErrorReport.isHasErrors) {
|
||||||
checkerState.lastLineState =
|
checkerState.lastLineState =
|
||||||
org.jetbrains.kotlin.scripting.repl.GenericReplCheckerState.LineState(codeLine, psiFile, errorHolder)
|
GenericReplCheckerState.LineState(codeLine, psiFile, errorHolder)
|
||||||
}
|
}
|
||||||
|
|
||||||
return when {
|
return when {
|
||||||
+9
-4
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl
|
||||||
|
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
@@ -41,16 +41,21 @@ open class GenericReplCompiler(
|
|||||||
) : this(Disposer.newDisposable(), scriptDefinition, compilerConfiguration, messageCollector)
|
) : this(Disposer.newDisposable(), scriptDefinition, compilerConfiguration, messageCollector)
|
||||||
|
|
||||||
private val checker =
|
private val checker =
|
||||||
GenericReplChecker(disposable, scriptDefinition, compilerConfiguration, messageCollector)
|
GenericReplChecker(
|
||||||
|
disposable,
|
||||||
|
scriptDefinition,
|
||||||
|
compilerConfiguration,
|
||||||
|
messageCollector
|
||||||
|
)
|
||||||
|
|
||||||
override fun createState(lock: ReentrantReadWriteLock): IReplStageState<*> =
|
override fun createState(lock: ReentrantReadWriteLock): IReplStageState<*> =
|
||||||
org.jetbrains.kotlin.scripting.repl.GenericReplCompilerState(checker.environment, lock)
|
GenericReplCompilerState(checker.environment, lock)
|
||||||
|
|
||||||
override fun check(state: IReplStageState<*>, codeLine: ReplCodeLine): ReplCheckResult = checker.check(state, codeLine)
|
override fun check(state: IReplStageState<*>, codeLine: ReplCodeLine): ReplCheckResult = checker.check(state, codeLine)
|
||||||
|
|
||||||
override fun compile(state: IReplStageState<*>, codeLine: ReplCodeLine): ReplCompileResult {
|
override fun compile(state: IReplStageState<*>, codeLine: ReplCodeLine): ReplCompileResult {
|
||||||
state.lock.write {
|
state.lock.write {
|
||||||
val compilerState = state.asState(org.jetbrains.kotlin.scripting.repl.GenericReplCompilerState::class.java)
|
val compilerState = state.asState(GenericReplCompilerState::class.java)
|
||||||
|
|
||||||
val (psiFile, errorHolder) = run {
|
val (psiFile, errorHolder) = run {
|
||||||
if (compilerState.lastLineState == null || compilerState.lastLineState!!.codeLine != codeLine) {
|
if (compilerState.lastLineState == null || compilerState.lastLineState!!.codeLine != codeLine) {
|
||||||
+17
-12
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
@file:Suppress("UNUSED_PARAMETER")
|
@file:Suppress("UNUSED_PARAMETER")
|
||||||
|
|
||||||
package org.jetbrains.kotlin.scripting.repl
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.repl.CompiledReplCodeLine
|
import org.jetbrains.kotlin.cli.common.repl.CompiledReplCodeLine
|
||||||
import org.jetbrains.kotlin.cli.common.repl.ILineId
|
import org.jetbrains.kotlin.cli.common.repl.ILineId
|
||||||
@@ -116,7 +116,10 @@ class ReplCodeAnalyzer(environment: KotlinCoreEnvironment) {
|
|||||||
} else {
|
} else {
|
||||||
val scriptDescriptor = context.scripts[linePsi.script]!!
|
val scriptDescriptor = context.scripts[linePsi.script]!!
|
||||||
replState.lineSuccess(linePsi, codeLine, scriptDescriptor)
|
replState.lineSuccess(linePsi, codeLine, scriptDescriptor)
|
||||||
ReplLineAnalysisResult.Successful(scriptDescriptor, diagnostics)
|
ReplLineAnalysisResult.Successful(
|
||||||
|
scriptDescriptor,
|
||||||
|
diagnostics
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -157,7 +160,7 @@ class ReplCodeAnalyzer(environment: KotlinCoreEnvironment) {
|
|||||||
|
|
||||||
class AdaptablePackageMemberDeclarationProvider(
|
class AdaptablePackageMemberDeclarationProvider(
|
||||||
private var delegateProvider: PackageMemberDeclarationProvider
|
private var delegateProvider: PackageMemberDeclarationProvider
|
||||||
) : org.jetbrains.kotlin.scripting.repl.DelegatePackageMemberDeclarationProvider(delegateProvider) {
|
) : DelegatePackageMemberDeclarationProvider(delegateProvider) {
|
||||||
fun addDelegateProvider(provider: PackageMemberDeclarationProvider) {
|
fun addDelegateProvider(provider: PackageMemberDeclarationProvider) {
|
||||||
delegateProvider = CombinedPackageMemberDeclarationProvider(listOf(provider, delegateProvider))
|
delegateProvider = CombinedPackageMemberDeclarationProvider(listOf(provider, delegateProvider))
|
||||||
|
|
||||||
@@ -197,20 +200,22 @@ class ReplCodeAnalyzer(environment: KotlinCoreEnvironment) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun lineSuccess(ktFile: KtFile, codeLine: ReplCodeLine, scriptDescriptor: ClassDescriptorWithResolutionScopes) {
|
fun lineSuccess(ktFile: KtFile, codeLine: ReplCodeLine, scriptDescriptor: ClassDescriptorWithResolutionScopes) {
|
||||||
val successfulLine = LineInfo.SuccessfulLine(
|
val successfulLine =
|
||||||
ktFile,
|
LineInfo.SuccessfulLine(
|
||||||
successfulLines.lastValue(),
|
ktFile,
|
||||||
scriptDescriptor
|
successfulLines.lastValue(),
|
||||||
)
|
scriptDescriptor
|
||||||
|
)
|
||||||
submittedLines[ktFile] = successfulLine
|
submittedLines[ktFile] = successfulLine
|
||||||
successfulLines.add(CompiledReplCodeLine(ktFile.name, codeLine), successfulLine)
|
successfulLines.add(CompiledReplCodeLine(ktFile.name, codeLine), successfulLine)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun lineFailure(ktFile: KtFile, codeLine: ReplCodeLine) {
|
fun lineFailure(ktFile: KtFile, codeLine: ReplCodeLine) {
|
||||||
submittedLines[ktFile] = LineInfo.FailedLine(
|
submittedLines[ktFile] =
|
||||||
ktFile,
|
LineInfo.FailedLine(
|
||||||
successfulLines.lastValue()
|
ktFile,
|
||||||
)
|
successfulLines.lastValue()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun lineInfo(ktFile: KtFile) = submittedLines[ktFile]
|
private fun lineInfo(ktFile: KtFile) = submittedLines[ktFile]
|
||||||
+4
-3
@@ -3,9 +3,9 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.scripting.repl.writer.ReplWriter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.writer.ReplWriter
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
import java.io.StringWriter
|
import java.io.StringWriter
|
||||||
|
|
||||||
@@ -17,7 +17,8 @@ interface ReplExceptionReporter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class IdeReplExceptionReporter(private val replWriter: ReplWriter) : ReplExceptionReporter {
|
class IdeReplExceptionReporter(private val replWriter: ReplWriter) :
|
||||||
|
ReplExceptionReporter {
|
||||||
override fun report(e: Throwable) {
|
override fun report(e: Throwable) {
|
||||||
val stringWriter = StringWriter()
|
val stringWriter = StringWriter()
|
||||||
val printWriter = PrintWriter(stringWriter)
|
val printWriter = PrintWriter(stringWriter)
|
||||||
+4
-5
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl
|
||||||
|
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
@@ -13,13 +13,12 @@ import org.jetbrains.kotlin.cli.common.repl.ReplEvalResult
|
|||||||
import org.jetbrains.kotlin.cli.common.repl.replUnescapeLineBreaks
|
import org.jetbrains.kotlin.cli.common.repl.replUnescapeLineBreaks
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.KotlinCompilerVersion
|
import org.jetbrains.kotlin.config.KotlinCompilerVersion
|
||||||
import org.jetbrains.kotlin.scripting.repl.configuration.ConsoleReplConfiguration
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.configuration.ConsoleReplConfiguration
|
||||||
import org.jetbrains.kotlin.scripting.repl.configuration.IdeReplConfiguration
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.configuration.IdeReplConfiguration
|
||||||
import org.jetbrains.kotlin.scripting.repl.configuration.ReplConfiguration
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.configuration.ReplConfiguration
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
import java.util.*
|
|
||||||
import java.util.concurrent.Callable
|
import java.util.concurrent.Callable
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
import java.util.concurrent.Future
|
import java.util.concurrent.Future
|
||||||
+2
-2
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl
|
||||||
|
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
@@ -15,8 +15,8 @@ import org.jetbrains.kotlin.cli.common.repl.*
|
|||||||
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
|
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
|
||||||
import org.jetbrains.kotlin.cli.jvm.config.JvmModulePathRoot
|
import org.jetbrains.kotlin.cli.jvm.config.JvmModulePathRoot
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.configuration.ReplConfiguration
|
||||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.repl.configuration.ReplConfiguration
|
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
import java.util.concurrent.atomic.AtomicInteger
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
+5
-5
@@ -3,12 +3,12 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.configuration
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.configuration
|
||||||
|
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplExceptionReporter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.ReplExceptionReporter
|
||||||
import org.jetbrains.kotlin.scripting.repl.messages.ConsoleDiagnosticMessageHolder
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.messages.ConsoleDiagnosticMessageHolder
|
||||||
import org.jetbrains.kotlin.scripting.repl.reader.ConsoleReplCommandReader
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.reader.ConsoleReplCommandReader
|
||||||
import org.jetbrains.kotlin.scripting.repl.writer.ConsoleReplWriter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.writer.ConsoleReplWriter
|
||||||
|
|
||||||
class ConsoleReplConfiguration : ReplConfiguration {
|
class ConsoleReplConfiguration : ReplConfiguration {
|
||||||
override val writer = ConsoleReplWriter()
|
override val writer = ConsoleReplWriter()
|
||||||
+9
-9
@@ -3,16 +3,16 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.configuration
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.configuration
|
||||||
|
|
||||||
import org.jetbrains.kotlin.scripting.repl.IdeReplExceptionReporter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.IdeReplExceptionReporter
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplExceptionReporter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.ReplExceptionReporter
|
||||||
import org.jetbrains.kotlin.scripting.repl.messages.IdeDiagnosticMessageHolder
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.messages.IdeDiagnosticMessageHolder
|
||||||
import org.jetbrains.kotlin.scripting.repl.reader.IdeReplCommandReader
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.reader.IdeReplCommandReader
|
||||||
import org.jetbrains.kotlin.scripting.repl.reader.ReplCommandReader
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.reader.ReplCommandReader
|
||||||
import org.jetbrains.kotlin.scripting.repl.reader.ReplSystemInWrapper
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.reader.ReplSystemInWrapper
|
||||||
import org.jetbrains.kotlin.scripting.repl.writer.IdeSystemOutWrapperReplWriter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.writer.IdeSystemOutWrapperReplWriter
|
||||||
import org.jetbrains.kotlin.scripting.repl.writer.ReplWriter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.writer.ReplWriter
|
||||||
|
|
||||||
class IdeReplConfiguration : ReplConfiguration {
|
class IdeReplConfiguration : ReplConfiguration {
|
||||||
override val allowIncompleteLines: Boolean
|
override val allowIncompleteLines: Boolean
|
||||||
+5
-5
@@ -3,12 +3,12 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.configuration
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.configuration
|
||||||
|
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplExceptionReporter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.ReplExceptionReporter
|
||||||
import org.jetbrains.kotlin.scripting.repl.messages.DiagnosticMessageHolder
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.messages.DiagnosticMessageHolder
|
||||||
import org.jetbrains.kotlin.scripting.repl.reader.ReplCommandReader
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.reader.ReplCommandReader
|
||||||
import org.jetbrains.kotlin.scripting.repl.writer.ReplWriter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.writer.ReplWriter
|
||||||
|
|
||||||
interface ReplConfiguration {
|
interface ReplConfiguration {
|
||||||
val writer: ReplWriter
|
val writer: ReplWriter
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.configuration
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.configuration
|
||||||
|
|
||||||
interface SnippetExecutionInterceptor {
|
interface SnippetExecutionInterceptor {
|
||||||
fun <T> execute(block: () -> T): T
|
fun <T> execute(block: () -> T): T
|
||||||
-1
@@ -11,7 +11,6 @@ import com.intellij.openapi.util.Disposer
|
|||||||
import org.jetbrains.kotlin.cli.common.repl.*
|
import org.jetbrains.kotlin.cli.common.repl.*
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
|
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplCodeAnalyzer
|
|
||||||
import java.util.concurrent.locks.ReentrantReadWriteLock
|
import java.util.concurrent.locks.ReentrantReadWriteLock
|
||||||
import kotlin.concurrent.write
|
import kotlin.concurrent.write
|
||||||
import kotlin.script.experimental.api.*
|
import kotlin.script.experimental.api.*
|
||||||
|
|||||||
+3
-2
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.messages
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.messages
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollectorBasedReporter
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollectorBasedReporter
|
||||||
@@ -12,7 +12,8 @@ import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
|
|||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.PrintStream
|
import java.io.PrintStream
|
||||||
|
|
||||||
class ConsoleDiagnosticMessageHolder : MessageCollectorBasedReporter, DiagnosticMessageHolder {
|
class ConsoleDiagnosticMessageHolder : MessageCollectorBasedReporter,
|
||||||
|
DiagnosticMessageHolder {
|
||||||
private val outputStream = ByteArrayOutputStream()
|
private val outputStream = ByteArrayOutputStream()
|
||||||
|
|
||||||
override val messageCollector: GroupingMessageCollector = GroupingMessageCollector(
|
override val messageCollector: GroupingMessageCollector = GroupingMessageCollector(
|
||||||
+1
-1
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.scripting.repl.messages
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.messages
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.DiagnosticMessageReporter
|
import org.jetbrains.kotlin.cli.common.messages.DiagnosticMessageReporter
|
||||||
|
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.messages
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.messages
|
||||||
|
|
||||||
import com.intellij.openapi.util.text.StringUtil
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
+2
-2
@@ -3,9 +3,9 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.reader
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.reader
|
||||||
|
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplFromTerminal
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.ReplFromTerminal
|
||||||
import org.jline.reader.EndOfFileException
|
import org.jline.reader.EndOfFileException
|
||||||
import org.jline.reader.LineReader
|
import org.jline.reader.LineReader
|
||||||
import org.jline.reader.LineReaderBuilder
|
import org.jline.reader.LineReaderBuilder
|
||||||
+2
-2
@@ -3,9 +3,9 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.reader
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.reader
|
||||||
|
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplFromTerminal
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.ReplFromTerminal
|
||||||
|
|
||||||
class IdeReplCommandReader : ReplCommandReader {
|
class IdeReplCommandReader : ReplCommandReader {
|
||||||
override fun readLine(next: ReplFromTerminal.WhatNextAfterOneLine) = readLine()
|
override fun readLine(next: ReplFromTerminal.WhatNextAfterOneLine) = readLine()
|
||||||
+2
-2
@@ -3,9 +3,9 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.reader
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.reader
|
||||||
|
|
||||||
import org.jetbrains.kotlin.scripting.repl.ReplFromTerminal
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.ReplFromTerminal
|
||||||
|
|
||||||
interface ReplCommandReader {
|
interface ReplCommandReader {
|
||||||
fun readLine(next: ReplFromTerminal.WhatNextAfterOneLine): String?
|
fun readLine(next: ReplFromTerminal.WhatNextAfterOneLine): String?
|
||||||
+2
-2
@@ -3,10 +3,10 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.reader
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.reader
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.repl.replUnescapeLineBreaks
|
import org.jetbrains.kotlin.cli.common.repl.replUnescapeLineBreaks
|
||||||
import org.jetbrains.kotlin.scripting.repl.writer.ReplWriter
|
import org.jetbrains.kotlin.scripting.compiler.plugin.repl.writer.ReplWriter
|
||||||
import org.w3c.dom.Element
|
import org.w3c.dom.Element
|
||||||
import org.xml.sax.InputSource
|
import org.xml.sax.InputSource
|
||||||
import java.io.ByteArrayInputStream
|
import java.io.ByteArrayInputStream
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.writer
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.writer
|
||||||
|
|
||||||
class ConsoleReplWriter : ReplWriter {
|
class ConsoleReplWriter : ReplWriter {
|
||||||
override fun printlnWelcomeMessage(x: String) = println(x)
|
override fun printlnWelcomeMessage(x: String) = println(x)
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.writer
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.writer
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.repl.replAddLineBreak
|
import org.jetbrains.kotlin.cli.common.repl.replAddLineBreak
|
||||||
import org.jetbrains.kotlin.cli.common.repl.replOutputAsXml
|
import org.jetbrains.kotlin.cli.common.repl.replOutputAsXml
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.repl.writer
|
package org.jetbrains.kotlin.scripting.compiler.plugin.repl.writer
|
||||||
|
|
||||||
interface ReplWriter {
|
interface ReplWriter {
|
||||||
fun printlnWelcomeMessage(x: String)
|
fun printlnWelcomeMessage(x: String)
|
||||||
+1
-1
@@ -22,11 +22,11 @@ import org.jetbrains.kotlin.compiler.plugin.AbstractCliOption
|
|||||||
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
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.scripting.compiler.plugin.impl.reporter
|
||||||
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
||||||
import org.jetbrains.kotlin.scripting.definitions.SCRIPT_DEFINITION_MARKERS_PATH
|
import org.jetbrains.kotlin.scripting.definitions.SCRIPT_DEFINITION_MARKERS_PATH
|
||||||
import org.jetbrains.kotlin.scripting.definitions.discoverScriptTemplatesInClasspath
|
import org.jetbrains.kotlin.scripting.definitions.discoverScriptTemplatesInClasspath
|
||||||
import org.jetbrains.kotlin.scripting.definitions.loadScriptTemplatesFromClasspath
|
import org.jetbrains.kotlin.scripting.definitions.loadScriptTemplatesFromClasspath
|
||||||
import org.jetbrains.kotlin.scripting.definitions.reporter
|
|
||||||
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
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnly(project(":kotlin-scripting-compiler"))
|
|
||||||
compile(project(":kotlin-scripting-compiler-impl"))
|
|
||||||
compile(project(":kotlin-scripting-intellij"))
|
compile(project(":kotlin-scripting-intellij"))
|
||||||
compileOnly(project(":idea:idea-gradle"))
|
compileOnly(project(":idea:idea-gradle"))
|
||||||
compileOnly(project(":idea:idea-core"))
|
compileOnly(project(":idea:idea-core"))
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.scripting.idea.plugin
|
|||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||||
import org.jetbrains.kotlin.idea.configuration.GradleProjectImportHandler
|
import org.jetbrains.kotlin.idea.configuration.GradleProjectImportHandler
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
||||||
import org.jetbrains.kotlin.scripting.configuration.KOTLIN_SCRIPTING_PLUGIN_ID
|
import org.jetbrains.kotlin.scripting.KOTLIN_SCRIPTING_PLUGIN_ID
|
||||||
import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData
|
import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user