@@ -24,22 +24,24 @@ import org.jetbrains.kotlin.container.ComponentProvider
24
24
import org.jetbrains.kotlin.container.get
25
25
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
26
26
import org.jetbrains.kotlin.idea.KotlinLanguage
27
- import org.jetbrains.kotlin.load.java.JvmAbi
27
+ import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil
28
28
import org.jetbrains.kotlin.psi.*
29
29
import org.jetbrains.kotlin.resolve.BindingContext
30
30
import org.jetbrains.kotlin.resolve.BindingTraceContext
31
31
import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer
32
32
import org.jetbrains.kotlin.resolve.TopDownAnalysisMode.TopLevelDeclarations
33
33
import org.jetbrains.kotlin.resolve.calls.components.InferenceSession
34
34
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo
35
+ import org.jetbrains.kotlin.resolve.extensions.ExtraImportsProviderExtension
35
36
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
36
37
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
37
38
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar
38
39
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
39
40
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionProvider
40
41
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
41
42
import org.jetbrains.kotlin.scripting.definitions.StandardScriptDefinition
42
- import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
43
+ import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
44
+ import org.jetbrains.kotlin.scripting.extensions.ScriptExtraImportsProviderExtension
43
45
import org.jetbrains.kotlin.types.TypeUtils
44
46
import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices
45
47
import org.jetbrains.kotlin.util.KotlinFrontEndException
@@ -51,6 +53,10 @@ import java.nio.file.Paths
51
53
import java.net.URLClassLoader
52
54
import java.util.concurrent.locks.ReentrantLock
53
55
import kotlin.concurrent.withLock
56
+ import kotlin.script.experimental.host.ScriptingHostConfiguration
57
+ import kotlin.script.experimental.host.configurationDependencies
58
+ import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
59
+ import kotlin.script.experimental.jvm.JvmDependency
54
60
import org.javacs.kt.util.KotlinLSException
55
61
import org.javacs.kt.util.KotlinNullableNotNullManager
56
62
import org.javacs.kt.util.LoggingMessageCollector
@@ -75,13 +81,13 @@ private class CompilationEnvironment(
75
81
parentDisposable = disposable,
76
82
// Not to be confused with the CompilerConfiguration in the language server Configuration
77
83
configuration = KotlinCompilerConfiguration ().apply {
78
- put(CommonConfigurationKeys .MODULE_NAME , JvmAbi .DEFAULT_MODULE_NAME )
84
+ put(CommonConfigurationKeys .MODULE_NAME , JvmProtoBufUtil .DEFAULT_MODULE_NAME )
79
85
put(CLIConfigurationKeys .MESSAGE_COLLECTOR_KEY , LoggingMessageCollector )
80
86
add(ComponentRegistrar .PLUGIN_COMPONENT_REGISTRARS , ScriptingCompilerConfigurationComponentRegistrar ())
81
87
addJvmClasspathRoots(classPath.map { it.toFile() })
82
88
83
89
// Setup script templates
84
- var scriptDefinitions: List <KotlinScriptDefinition > = listOf (StandardScriptDefinition )
90
+ var scriptDefinitions: List <ScriptDefinition > = listOf (ScriptDefinition .getDefault(defaultJvmScriptingHostConfiguration) )
85
91
86
92
if (classPath.any { GRADLE_DSL_DEPENDENCY_PATTERN .matches(it.fileName.toString()) }) {
87
93
LOG .info(" Configuring Kotlin DSL script templates..." )
@@ -95,9 +101,10 @@ private class CompilationEnvironment(
95
101
try {
96
102
// Load template classes
97
103
val scriptClassLoader = URLClassLoader (classPath.map { it.toUri().toURL() }.toTypedArray())
98
- // TODO: Use org.jetbrains.kotlin.scripting.definitions.ScriptDefinition instead of
99
- // KotlinScriptDefinition since the latter will be deprecated soon.
100
- scriptDefinitions = scriptTemplates.map { KotlinScriptDefinition (scriptClassLoader.loadClass(it).kotlin) }
104
+ val scriptHostConfig = ScriptingHostConfiguration (defaultJvmScriptingHostConfiguration) {
105
+ configurationDependencies(JvmDependency (classPath.map { it.toFile() }))
106
+ }
107
+ scriptDefinitions = scriptTemplates.map { ScriptDefinition .FromTemplate (scriptHostConfig, scriptClassLoader.loadClass(it).kotlin) }
101
108
} catch (e: Exception ) {
102
109
LOG .error(" Error while loading script template classes" )
103
110
LOG .printStackTrace(e)
0 commit comments