diff --git a/compiler/frontend/src/org/jetbrains/kotlin/script/scriptTemplateProviderExtensionPoint.kt b/compiler/frontend/src/org/jetbrains/kotlin/script/scriptTemplateProviderExtensionPoint.kt index 2aaf6a9e71b..30975500741 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/script/scriptTemplateProviderExtensionPoint.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/script/scriptTemplateProviderExtensionPoint.kt @@ -27,7 +27,11 @@ interface ScriptTemplatesProvider { // for resolving ambiguities val id: String - val version: Int + + @Deprecated("Parameter isn't used for resolving priorities anymore. " + + "com.intellij.openapi.extensions.LoadingOrder constants can be used to order providers when registered from Intellij plugin.", + ReplaceWith("0")) + val version: Int get() = 0 val isValid: Boolean @@ -42,7 +46,8 @@ interface ScriptTemplatesProvider { val environment: Map? companion object { - val EP_NAME = ExtensionPointName.create("org.jetbrains.kotlin.scriptTemplatesProvider") + val EP_NAME: ExtensionPointName = + ExtensionPointName.create("org.jetbrains.kotlin.scriptTemplatesProvider") } } @@ -55,16 +60,13 @@ fun makeScriptDefsFromTemplatesProviderExtensions(project: Project, fun makeScriptDefsFromTemplatesProviders(providers: Iterable, errorsHandler: ((ScriptTemplatesProvider, Exception) -> Unit) = { ep, ex -> throw ex } ): List { - val idToVersion = hashMapOf() - return providers.filter { it.isValid }.sortedByDescending { it.version }.flatMap { provider -> + return providers.filter { it.isValid }.flatMap { provider -> try { - idToVersion.get(provider.id)?.let { ver -> errorsHandler(provider, RuntimeException("Conflicting scriptTemplatesProvider ${provider.id}, using one with version $ver")) } Logger.getInstance("makeScriptDefsFromTemplatesProviders") .info("[kts] loading script definitions ${provider.templateClassNames} using cp: ${provider.dependenciesClasspath.joinToString(File.pathSeparator)}") val loader = URLClassLoader(provider.dependenciesClasspath.map { File(it).toURI().toURL() }.toTypedArray(), ScriptTemplatesProvider::class.java.classLoader) provider.templateClassNames.map { val cl = loader.loadClass(it) - idToVersion.put(provider.id, provider.version) KotlinScriptDefinitionFromAnnotatedTemplate(cl.kotlin, provider.resolver, provider.filePattern, provider.environment) } } @@ -73,4 +75,4 @@ fun makeScriptDefsFromTemplatesProviders(providers: Iterable() } } -} +} \ No newline at end of file diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/gradleScriptTemplateProvider.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/gradleScriptTemplateProvider.kt index 227a4cbdb30..07bd1beaa28 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/gradleScriptTemplateProvider.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/gradleScriptTemplateProvider.kt @@ -55,7 +55,6 @@ class GradleScriptTemplatesProvider(project: Project): ScriptTemplatesProvider { } override val id: String = "Gradle" - override val version: Int = 1 override val isValid: Boolean get() = gradleExeSettings?.gradleHome != null override val templateClassNames: Iterable = listOf("org.gradle.script.lang.kotlin.KotlinBuildScript") diff --git a/idea/src/META-INF/extensions/ide.xml b/idea/src/META-INF/extensions/ide.xml index 228c42d5e73..26952482109 100644 --- a/idea/src/META-INF/extensions/ide.xml +++ b/idea/src/META-INF/extensions/ide.xml @@ -15,7 +15,12 @@ - - + + + diff --git a/idea/src/org/jetbrains/kotlin/idea/script/scriptTemplatesFromCompilerSettings.kt b/idea/src/org/jetbrains/kotlin/idea/script/scriptTemplatesFromCompilerSettings.kt index 79b57cc1a00..4e5fb3e7544 100644 --- a/idea/src/org/jetbrains/kotlin/idea/script/scriptTemplatesFromCompilerSettings.kt +++ b/idea/src/org/jetbrains/kotlin/idea/script/scriptTemplatesFromCompilerSettings.kt @@ -27,7 +27,6 @@ class ScriptTemplatesFromCompilerSettingsProvider(project: Project): ScriptTempl private val kotlinSettings = KotlinCompilerSettings.getInstance(project).settings override val id: String = "KotlinCompilerScriptTemplatesSettings" - override val version: Int = 1 override val isValid: Boolean = kotlinSettings.scriptTemplates.isNotBlank() override val templateClassNames: Iterable get() = kotlinSettings.scriptTemplates.split(',', ' ') diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt index 71dbe5e989a..2732bb2aa4e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt @@ -141,7 +141,6 @@ class TestScriptTemplateProvider( override val environment: Map ) : ScriptTemplatesProvider { override val id = "Test" - override val version = 0 override val isValid = true override val templateClassNames = listOf("custom.scriptDefinition.Template") override val dependenciesClasspath = listOf(compiledTemplateDir.canonicalPath)