Skip to content

Commit 0d8f245

Browse files
committed
Define script templates using ScriptingConfigurationKeys
1 parent f57c522 commit 0d8f245

File tree

1 file changed

+29
-34
lines changed

1 file changed

+29
-34
lines changed

server/src/main/kotlin/org/javacs/kt/Compiler.kt

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,35 @@ private class CompilationEnvironment(
8888
put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, LoggingMessageCollector)
8989
add(ComponentRegistrar.PLUGIN_COMPONENT_REGISTRARS, ScriptingCompilerConfigurationComponentRegistrar())
9090
addJvmClasspathRoots(classPath.map { it.toFile() })
91-
// addAll(ScriptingConfigurationKeys.SCRIPT_DEFINITIONS, scriptDefinitions)
91+
// Setup script templates
92+
var scriptDefinitions: List<ScriptDefinition> = listOf()
93+
94+
if (classPath.any { GRADLE_DSL_DEPENDENCY_PATTERN.matches(it.fileName.toString()) }) {
95+
LOG.info("Configuring Kotlin DSL script templates...")
96+
97+
val scriptTemplates = listOf(
98+
// "org.gradle.kotlin.dsl.KotlinInitScript",
99+
// "org.gradle.kotlin.dsl.KotlinSettingsScript",
100+
"org.gradle.kotlin.dsl.KotlinBuildScript"
101+
)
102+
103+
try {
104+
// Load template classes
105+
val scriptClassLoader = URLClassLoader(classPath.map { it.toUri().toURL() }.toTypedArray())
106+
val fileClassPath = classPath.map { it.toFile() }
107+
val scriptHostConfig = ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) {
108+
configurationDependencies(JvmDependency(fileClassPath))
109+
}
110+
scriptDefinitions = scriptTemplates
111+
.map { object : ScriptDefinition.FromLegacy(scriptHostConfig, KotlinScriptDefinition(scriptClassLoader.loadClass(it).kotlin)) {
112+
override val isDefault = true
113+
} }
114+
} catch (e: Exception) {
115+
LOG.error("Error while loading script template classes")
116+
LOG.printStackTrace(e)
117+
}
118+
}
119+
addAll(ScriptingConfigurationKeys.SCRIPT_DEFINITIONS, scriptDefinitions)
92120
},
93121
configFiles = EnvironmentConfigFiles.JVM_CONFIG_FILES
94122
)
@@ -100,39 +128,6 @@ private class CompilationEnvironment(
100128

101129
parser = KtPsiFactory(project)
102130
scripts = ScriptDefinitionProvider.getInstance(project)!! as CliScriptDefinitionProvider
103-
104-
// Setup script templates
105-
var scriptDefinitions: List<ScriptDefinition> = listOf()
106-
107-
if (classPath.any { GRADLE_DSL_DEPENDENCY_PATTERN.matches(it.fileName.toString()) }) {
108-
LOG.info("Configuring Kotlin DSL script templates...")
109-
110-
val scriptTemplates = listOf(
111-
// "org.gradle.kotlin.dsl.KotlinInitScript",
112-
// "org.gradle.kotlin.dsl.KotlinSettingsScript",
113-
"org.gradle.kotlin.dsl.KotlinBuildScript"
114-
)
115-
116-
try {
117-
// Load template classes
118-
val scriptClassLoader = URLClassLoader(classPath.map { it.toUri().toURL() }.toTypedArray())
119-
val fileClassPath = classPath.map { it.toFile() }
120-
val scriptHostConfig = ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) {
121-
configurationDependencies(JvmDependency(fileClassPath))
122-
}
123-
scriptDefinitions = scriptTemplates
124-
.map { object : ScriptDefinition.FromLegacy(scriptHostConfig, KotlinScriptDefinition(scriptClassLoader.loadClass(it).kotlin)) {
125-
override val isDefault = true
126-
} }
127-
} catch (e: Exception) {
128-
LOG.error("Error while loading script template classes")
129-
LOG.printStackTrace(e)
130-
}
131-
}
132-
133-
LOG.info("Definitions: ${scriptDefinitions.map { it?.legacyDefinition?.template?.simpleName }}")
134-
scripts.setScriptDefinitions(scriptDefinitions)
135-
LOG.info("Default def: ${scripts.getDefaultDefinition()?.legacyDefinition?.template?.simpleName}")
136131
}
137132

138133
fun updateConfiguration(config: CompilerConfiguration) {

0 commit comments

Comments
 (0)