mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-01 11:20:44 +07:00
[kotlin] scripting: remove deprecated ScriptDefinitionContributor.kt and ScriptDefinitionSourceAsContributor.kt
* remove deprecated ScriptDefinitionSourceFromContributor * remove deprecated ScriptTemplatesProvider ^KTIJ-31294 GitOrigin-RevId: 96d64b637847cf65213f100535ca8ecf4f434ddd
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5c335c80c6
commit
c5bc4de51f
@@ -192,6 +192,7 @@ private val K2_ALLOWED_PLUGIN_IDS = Java11Shim.INSTANCE.copyOf(KNOWN_KOTLIN_PLUG
|
||||
"org.jetbrains.plugins.kotlin.jupyter",
|
||||
"com.intellij.kmm",
|
||||
"com.jetbrains.kotlin.ocswift",
|
||||
"kotlin.gradle.gradle-java"
|
||||
))
|
||||
|
||||
private fun readRootElementChild(
|
||||
|
||||
-34
@@ -1,34 +0,0 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.core.script
|
||||
|
||||
import com.intellij.openapi.extensions.ProjectExtensionPointName
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: use ScriptDefinitionsSource internally and kotlin.script.experimental.intellij.ScriptDefinitionsProvider as a providing extension point")
|
||||
interface ScriptDefinitionContributor {
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: drop usages")
|
||||
val id: String
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: use ScriptDefinitionsSource instead")
|
||||
fun getDefinitions(): List<KotlinScriptDefinition>
|
||||
|
||||
@ApiStatus.ScheduledForRemoval
|
||||
@Deprecated("migrating to new configuration refinement: drop usages")
|
||||
fun isReady() = true
|
||||
|
||||
companion object {
|
||||
val EP_NAME: ProjectExtensionPointName<ScriptDefinitionContributor> =
|
||||
ProjectExtensionPointName("org.jetbrains.kotlin.scriptDefinitionContributor")
|
||||
|
||||
inline fun <reified T> find(project: Project) =
|
||||
EP_NAME.getPoint(project).extensionList.filterIsInstance<T>().firstOrNull()
|
||||
}
|
||||
}
|
||||
|
||||
fun ScriptDefinitionContributor.asSource(): ScriptDefinitionsSource =
|
||||
if (this is ScriptDefinitionsSource) this
|
||||
else ScriptDefinitionSourceFromContributor(this)
|
||||
-13
@@ -1,13 +0,0 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.core.script
|
||||
|
||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: use ScriptDefinitionsSource directly instead")
|
||||
interface ScriptDefinitionSourceAsContributor : ScriptDefinitionContributor, ScriptDefinitionsSource {
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("migrating to new configuration refinement: use ScriptDefinitionsSource instead")
|
||||
override fun getDefinitions(): List<KotlinScriptDefinition> = definitions.map { it.legacyDefinition }.toList()
|
||||
}
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.core.script
|
||||
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: convert all contributors to ScriptDefinitionsSource/ScriptDefinitionsProvider")
|
||||
class ScriptDefinitionSourceFromContributor(
|
||||
val contributor: ScriptDefinitionContributor,
|
||||
private val hostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingHostConfiguration
|
||||
) : ScriptDefinitionsSource {
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() =
|
||||
if (contributor is ScriptDefinitionsSource) contributor.definitions
|
||||
else contributor.getDefinitions().asSequence().map { ScriptDefinition.FromLegacy(hostConfiguration, it) }
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
return contributor.id == (other as? ScriptDefinitionSourceFromContributor)?.contributor?.id
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
return contributor.id.hashCode()
|
||||
}
|
||||
}
|
||||
+4
-10
@@ -15,7 +15,6 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vfs.VirtualFileManager
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings
|
||||
import org.jetbrains.kotlin.script.ScriptTemplatesProvider
|
||||
import org.jetbrains.kotlin.scripting.definitions.*
|
||||
import org.jetbrains.kotlin.scripting.resolve.VirtualFileScriptSource
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.flattenTo
|
||||
@@ -38,7 +37,6 @@ import kotlin.script.experimental.host.toScriptSource
|
||||
* provides its own definitions list, the resulting one is partitioned. Partitions in their turn are sorted.
|
||||
* E.g. if definition sources are ordered as (A, B, C), their definitions might look as ((A-def-1, A-def-2), (B-def), (C-def)).
|
||||
*
|
||||
* [ScriptDefinitionsSource]s are registered via extension points either as [ScriptTemplatesProviderAdapter] or [ScriptDefinitionContributor].
|
||||
* Their order is crucial because it affects definition search algo.
|
||||
*
|
||||
* In rare exceptional cases, the resulting definitions' order might be inaccurate and doesn't accommodate the user's needs.
|
||||
@@ -171,7 +169,7 @@ open class ScriptDefinitionsManager(private val project: Project) : LazyScriptDe
|
||||
override fun getDefaultDefinition(): ScriptDefinition {
|
||||
val bundledScriptDefinitionContributor = getBundledScriptDefinitionContributor()
|
||||
?: error("BundledScriptDefinitionContributor must be registered in plugin.xml")
|
||||
return ScriptDefinition.FromLegacy(getScriptingHostConfiguration(), bundledScriptDefinitionContributor.getDefinitions().last())
|
||||
return bundledScriptDefinitionContributor.definitions.last()
|
||||
}
|
||||
|
||||
// This function is aimed to fix locks acquisition order.
|
||||
@@ -287,12 +285,8 @@ open class ScriptDefinitionsManager(private val project: Project) : LazyScriptDe
|
||||
// FOR TESTS ONLY: we introduce a possibility to cut dependencies over inheritance
|
||||
|
||||
protected open fun getSources(): List<ScriptDefinitionsSource> {
|
||||
@Suppress("DEPRECATION")
|
||||
val fromDeprecatedEP = project.extensionArea.getExtensionPoint(ScriptTemplatesProvider.EP_NAME).extensionList
|
||||
.map { ScriptTemplatesProviderAdapter(it).asSource() }
|
||||
val fromNewEp = ScriptDefinitionContributor.EP_NAME.getPoint(project).extensionList
|
||||
.map { it.asSource() }
|
||||
return fromNewEp.dropLast(1) + fromDeprecatedEP + fromNewEp.last()
|
||||
val fromNewEp = SCRIPT_DEFINITIONS_SOURCES.getExtensions(project)
|
||||
return fromNewEp.dropLast(1) + fromNewEp.last()
|
||||
}
|
||||
|
||||
protected open fun getKotlinScriptingSettings(): KotlinScriptingSettings = KotlinScriptingSettings.getInstance(project)
|
||||
@@ -315,7 +309,7 @@ open class ScriptDefinitionsManager(private val project: Project) : LazyScriptDe
|
||||
}
|
||||
|
||||
protected open fun getBundledScriptDefinitionContributor() =
|
||||
ScriptDefinitionContributor.find<BundledScriptDefinitionContributor>(project)
|
||||
SCRIPT_DEFINITIONS_SOURCES.findExtension(BundledScriptDefinitionSource::class.java, project)
|
||||
|
||||
protected open fun executeUnderReadLock(block: () -> Unit) = runReadAction { block() }
|
||||
|
||||
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
|
||||
@file:Suppress("PackageDirectoryMismatch")
|
||||
package org.jetbrains.kotlin.script
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import java.io.File
|
||||
import kotlin.script.experimental.dependencies.DependenciesResolver
|
||||
|
||||
@ApiStatus.ScheduledForRemoval
|
||||
@Deprecated("Use ScriptDefinitionContributor EP and loadDefinitionsFromTemplates top level function")
|
||||
internal interface ScriptTemplatesProvider {
|
||||
|
||||
// for resolving ambiguities
|
||||
val id: String
|
||||
|
||||
@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
|
||||
|
||||
val templateClassNames: Iterable<String>
|
||||
|
||||
val resolver: DependenciesResolver? get() = null
|
||||
|
||||
val filePattern: String? get() = null
|
||||
|
||||
val templateClasspath: List<File>
|
||||
|
||||
// TODO: need to provide a way to specify this in compiler/repl .. etc
|
||||
/*
|
||||
* Allows to specify additional jars needed for DependenciesResolver (and not script template).
|
||||
* Script template dependencies naturally become (part of) dependencies of the script which is not always desired for resolver dependencies.
|
||||
* i.e. gradle resolver may depend on some jars that 'built.gradle.kts' files should not depend on.
|
||||
*/
|
||||
val additionalResolverClasspath: List<File> get() = emptyList()
|
||||
|
||||
val environment: Map<String, Any?>?
|
||||
|
||||
companion object {
|
||||
val EP_NAME: ExtensionPointName<ScriptTemplatesProvider> =
|
||||
ExtensionPointName.create("org.jetbrains.kotlin.scriptTemplatesProvider")
|
||||
}
|
||||
}
|
||||
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
|
||||
package org.jetbrains.kotlin.idea.core.script
|
||||
|
||||
import org.jetbrains.kotlin.script.ScriptTemplatesProvider
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.getEnvironment
|
||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
internal class ScriptTemplatesProviderAdapter(private val templatesProvider: ScriptTemplatesProvider) : ScriptDefinitionSourceAsContributor {
|
||||
override val id: String
|
||||
get() = templatesProvider.id
|
||||
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() {
|
||||
return loadDefinitionsFromTemplates(
|
||||
templatesProvider.templateClassNames.toList(), templatesProvider.templateClasspath,
|
||||
ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) {
|
||||
getEnvironment {
|
||||
templatesProvider.environment
|
||||
}
|
||||
},
|
||||
templatesProvider.additionalResolverClasspath
|
||||
).asSequence()
|
||||
}
|
||||
}
|
||||
+3
-7
@@ -28,15 +28,11 @@ import kotlin.script.experimental.jvm.util.scriptCompilationClasspathFromContext
|
||||
import kotlin.script.templates.standard.ScriptTemplateWithArgs
|
||||
|
||||
|
||||
class BundledScriptDefinitionContributor(val project: Project) : ScriptDefinitionContributor {
|
||||
class BundledScriptDefinitionSource(val project: Project) : ScriptDefinitionsSource {
|
||||
private val myLegacyBundledIdeScriptDefinition = LegacyBundledIdeScriptDefinition(project)
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: use ScriptDefinitionsSource instead")
|
||||
override fun getDefinitions() = listOf(myLegacyBundledIdeScriptDefinition)
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: drop usages")
|
||||
override val id: String
|
||||
get() = "StandardKotlinScript"
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() = sequenceOf(myLegacyBundledIdeScriptDefinition).map { ScriptDefinition.FromLegacy(defaultJvmScriptingHostConfiguration, it) }
|
||||
}
|
||||
|
||||
class LegacyBundledIdeScriptDefinition internal constructor(project: Project) : KotlinScriptDefinition(ScriptTemplateWithArgs::class) {
|
||||
|
||||
+2
-1
@@ -13,6 +13,7 @@ import com.intellij.util.ExceptionUtil
|
||||
import com.intellij.util.PathUtil
|
||||
import com.intellij.util.lang.UrlClassLoader
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
@@ -62,7 +63,7 @@ fun loadDefinitionsFromTemplatesByPaths(
|
||||
val classpath = adjustClasspath(templateClasspath + additionalResolverClasspath)
|
||||
scriptingInfoLog("Loading script definitions: classes = $templateClassNames, classpath = ${classpath}")
|
||||
|
||||
val baseLoader = ScriptDefinitionContributor::class.java.classLoader
|
||||
val baseLoader = ScriptDefinitionsSource::class.java.classLoader
|
||||
val loader = if (classpath.isEmpty())
|
||||
baseLoader
|
||||
else
|
||||
|
||||
+2
-2
@@ -324,8 +324,8 @@ private class ScriptDefinitionsManagerUnderTest(val project: Project) : ScriptDe
|
||||
|
||||
override fun isScratchFile(script: SourceCode): Boolean = false
|
||||
|
||||
override fun getBundledScriptDefinitionContributor(): BundledScriptDefinitionContributor =
|
||||
BundledScriptDefinitionContributor(project)
|
||||
override fun getBundledScriptDefinitionContributor(): BundledScriptDefinitionSource =
|
||||
BundledScriptDefinitionSource(project)
|
||||
|
||||
override fun executeUnderReadLock(block: () -> Unit) = block()
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
||||
<scriptDefinitionsSource implementation="org.jetbrains.kotlin.idea.gradleJava.scripting.GradleScriptDefinitionsContributor"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -0,0 +1,5 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
||||
<scriptDefinitionsSource implementation="org.jetbrains.kotlin.idea.gradleJava.scripting.GradleScriptDefinitionsSource"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -1,4 +1,7 @@
|
||||
<idea-plugin package="org.jetbrains.kotlin.idea.gradleJava">
|
||||
<idea-plugin package="org.jetbrains.kotlin.idea.gradleJava" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<id>kotlin.gradle.gradle-java</id>
|
||||
<vendor>JetBrains</vendor>
|
||||
|
||||
<dependencies>
|
||||
<plugin id="org.jetbrains.plugins.gradle"/>
|
||||
<module name="kotlin.gradle.gradle-tooling"/>
|
||||
@@ -8,13 +11,15 @@
|
||||
<module name="kotlin.base.external-build-system"/>
|
||||
</dependencies>
|
||||
|
||||
<xi:include href="kotlin.gradle.gradle-java.k1.xml" includeUnless="idea.kotlin.plugin.use.k2"/>
|
||||
<xi:include href="kotlin.gradle.gradle-java.k2.xml" includeIf="idea.kotlin.plugin.use.k2"/>
|
||||
|
||||
<projectListeners>
|
||||
<listener
|
||||
class="org.jetbrains.kotlin.idea.gradleJava.scripting.ProjectGradleSettingsListener"
|
||||
topic="org.jetbrains.plugins.gradle.settings.GradleSettingsListener"/>
|
||||
</projectListeners>
|
||||
|
||||
|
||||
<extensionPoints>
|
||||
<extensionPoint
|
||||
qualifiedName="org.jetbrains.kotlin.gradleProjectImportHandler" area="IDEA_PROJECT"
|
||||
@@ -121,9 +126,6 @@
|
||||
|
||||
<gradleModelFacade implementation="org.jetbrains.kotlin.idea.gradleJava.inspections.DefaultGradleModelFacade"/>
|
||||
|
||||
<scriptDefinitionContributor implementation="org.jetbrains.kotlin.idea.gradleJava.scripting.GradleScriptDefinitionsContributor" order="first"/>
|
||||
|
||||
<scriptDefinitionsSource implementation="org.jetbrains.kotlin.idea.gradleJava.scripting.GradleScriptDefinitionsSource"/>
|
||||
<scriptDependenciesSource implementation="org.jetbrains.kotlin.idea.gradleJava.scripting.GradleScriptDependenciesSource"/>
|
||||
<scriptReloadActionAvailability implementation="org.jetbrains.kotlin.idea.gradleJava.scripting.GradleScriptReloadActionAvailability"/>
|
||||
|
||||
|
||||
+9
-12
@@ -4,36 +4,36 @@ package org.jetbrains.kotlin.idea.gradleJava.scripting
|
||||
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.SCRIPT_DEFINITIONS_SOURCES
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingInfoLog
|
||||
import org.jetbrains.kotlin.idea.gradle.KotlinIdeaGradleBundle
|
||||
import org.jetbrains.kotlin.idea.gradleJava.ErrorGradleScriptDefinition
|
||||
import org.jetbrains.kotlin.idea.gradleJava.getFullDefinitionsClasspath
|
||||
import org.jetbrains.kotlin.idea.gradleJava.loadGradleDefinitions
|
||||
import org.jetbrains.kotlin.idea.gradleJava.scripting.roots.GradleBuildRoot
|
||||
import org.jetbrains.kotlin.idea.gradleJava.scripting.roots.GradleBuildRootsManager
|
||||
import org.jetbrains.kotlin.idea.gradleJava.scripting.roots.Imported
|
||||
import org.jetbrains.kotlin.idea.gradleJava.scripting.roots.WithoutScriptModels
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import org.jetbrains.plugins.gradle.settings.DistributionType
|
||||
import org.jetbrains.plugins.gradle.settings.GradleExecutionSettings
|
||||
import org.jetbrains.plugins.gradle.settings.GradleSettingsListener
|
||||
import org.jetbrains.plugins.gradle.util.GradleConstants
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
import kotlin.io.path.invariantSeparatorsPathString
|
||||
|
||||
class GradleScriptDefinitionsContributor(private val project: Project) : ScriptDefinitionSourceAsContributor {
|
||||
class GradleScriptDefinitionsContributor(private val project: Project) : ScriptDefinitionsSource {
|
||||
companion object {
|
||||
fun getDefinitions(project: Project, workingDir: String, gradleHome: String?, javaHome: String?): List<ScriptDefinition>? {
|
||||
val contributor = ScriptDefinitionContributor.EP_NAME.getExtensions(project)
|
||||
fun getInstance(project: Project): GradleScriptDefinitionsContributor? =
|
||||
SCRIPT_DEFINITIONS_SOURCES.getExtensions(project)
|
||||
.filterIsInstance<GradleScriptDefinitionsContributor>()
|
||||
.singleOrNull()
|
||||
|
||||
fun getDefinitions(project: Project, workingDir: String, gradleHome: String?, javaHome: String?): List<ScriptDefinition>? {
|
||||
val contributor = getInstance(project)
|
||||
|
||||
if (contributor == null) {
|
||||
scriptingInfoLog(
|
||||
"cannot find gradle script definitions contributor in ScriptDefinitionContributor.EP_NAME list: " +
|
||||
"cannot find gradle script definitions contributor in SCRIPT_DEFINITIONS_SOURCES list: " +
|
||||
"workingDir=$workingDir gradleHome=$gradleHome"
|
||||
)
|
||||
return null
|
||||
@@ -67,9 +67,6 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD
|
||||
subscribeToGradleSettingChanges()
|
||||
}
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: drop usages")
|
||||
override val id: String = "Gradle Kotlin DSL"
|
||||
|
||||
internal data class LightGradleBuildRoot(val workingDir: String, val gradleHome: String?, val javaHome: String?)
|
||||
|
||||
private val definitionsByRoots = ConcurrentHashMap<LightGradleBuildRoot, List<ScriptDefinition>>()
|
||||
|
||||
+1
-2
@@ -9,7 +9,6 @@ import com.intellij.openapi.externalSystem.service.execution.ExternalSystemJdkUt
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||
import com.intellij.openapi.projectRoots.JdkUtil
|
||||
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginModeProvider
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor
|
||||
import org.jetbrains.kotlin.idea.gradleJava.scripting.GradleScriptDefinitionsContributor
|
||||
import org.jetbrains.kotlin.idea.gradleJava.scripting.roots.GradleBuildRootsManager
|
||||
import org.jetbrains.plugins.gradle.service.GradleInstallationManager
|
||||
@@ -77,7 +76,7 @@ class KotlinDslSyncListener : ExternalSystemTaskNotificationListener {
|
||||
|
||||
if (KotlinPluginModeProvider.isK1Mode()) {
|
||||
@Suppress("DEPRECATION")
|
||||
ScriptDefinitionContributor.find<GradleScriptDefinitionsContributor>(project)?.reloadIfNeeded(
|
||||
GradleScriptDefinitionsContributor.getInstance(project)?.reloadIfNeeded(
|
||||
sync.workingDir, sync.gradleHome, sync.javaHome
|
||||
)
|
||||
}
|
||||
|
||||
+2
-4
@@ -4,18 +4,16 @@ package org.jetbrains.kotlin.idea.script
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import kotlin.script.experimental.api.ScriptDiagnostic
|
||||
import kotlin.script.experimental.api.ScriptEvaluationConfiguration
|
||||
import kotlin.script.experimental.intellij.ScriptDefinitionsProvider
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
class BridgeScriptDefinitionsContributor(private val project: Project) : ScriptDefinitionSourceAsContributor {
|
||||
override val id: String = "BridgeScriptDefinitionsContributor"
|
||||
|
||||
class BridgeScriptDefinitionsContributor(private val project: Project) : ScriptDefinitionsSource {
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() = ScriptDefinitionsProvider.EP_NAME.getExtensionList(project).asSequence().flatMap { provider ->
|
||||
val explicitClasses = provider.getDefinitionClasses().toList()
|
||||
|
||||
+9
-8
@@ -12,12 +12,13 @@ import com.intellij.psi.search.FilenameIndex
|
||||
import com.intellij.util.concurrency.annotations.RequiresBlockingContext
|
||||
import org.jetbrains.kotlin.idea.base.util.allScope
|
||||
import org.jetbrains.kotlin.idea.core.KotlinPluginDisposable
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.SCRIPT_DEFINITIONS_SOURCES
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
|
||||
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplatesByPaths
|
||||
import org.jetbrains.kotlin.idea.core.script.scriptingDebugLog
|
||||
import org.jetbrains.kotlin.scripting.definitions.SCRIPT_DEFINITION_MARKERS_EXTENSION_WITH_DOT
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import org.jetbrains.kotlin.scripting.definitions.getEnvironment
|
||||
import java.io.File
|
||||
import java.nio.file.Path
|
||||
@@ -28,13 +29,13 @@ import kotlin.concurrent.withLock
|
||||
import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
class ScriptTemplatesFromDependenciesProvider(private val project: Project) : ScriptDefinitionSourceAsContributor {
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: drop usages")
|
||||
override val id = "ScriptTemplatesFromDependenciesProvider"
|
||||
|
||||
@Deprecated("migrating to new configuration refinement: drop usages")
|
||||
override fun isReady(): Boolean = _definitions != null
|
||||
class ScriptTemplatesFromDependenciesProvider(private val project: Project) : ScriptDefinitionsSource {
|
||||
companion object {
|
||||
fun getInstance(project: Project): ScriptTemplatesFromDependenciesProvider? =
|
||||
SCRIPT_DEFINITIONS_SOURCES.getExtensions(project)
|
||||
.filterIsInstance<ScriptTemplatesFromDependenciesProvider>()
|
||||
.singleOrNull()
|
||||
}
|
||||
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() {
|
||||
|
||||
+2
-4
@@ -7,11 +7,11 @@ import org.jetbrains.kotlin.config.CompilerSettings
|
||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings
|
||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettingsListener
|
||||
import org.jetbrains.kotlin.idea.core.KotlinPluginDisposable
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
|
||||
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplatesByPaths
|
||||
import org.jetbrains.kotlin.idea.util.application.executeOnPooledThread
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import org.jetbrains.kotlin.scripting.definitions.getEnvironment
|
||||
import java.io.File
|
||||
import kotlin.io.path.Path
|
||||
@@ -20,7 +20,7 @@ import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
class ScriptTemplatesFromCompilerSettingsProvider(
|
||||
private val project: Project
|
||||
) : ScriptDefinitionSourceAsContributor {
|
||||
) : ScriptDefinitionsSource {
|
||||
|
||||
init {
|
||||
project.messageBus.connect(KotlinPluginDisposable.getInstance(project))
|
||||
@@ -54,7 +54,5 @@ class ScriptTemplatesFromCompilerSettingsProvider(
|
||||
).asSequence()
|
||||
}
|
||||
}
|
||||
|
||||
override val id: String = "KotlinCompilerScriptTemplatesSettings"
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -12,9 +12,9 @@ import com.intellij.openapi.roots.ProjectRootManager
|
||||
import com.intellij.openapi.vfs.LocalFileSystem
|
||||
import com.intellij.openapi.vfs.VfsUtil
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.testFramework.HeavyPlatformTestCase
|
||||
import com.intellij.testFramework.IdeaTestUtil
|
||||
import com.intellij.testFramework.IndexingTestUtil
|
||||
import com.intellij.testFramework.HeavyPlatformTestCase
|
||||
import com.intellij.testFramework.PsiTestUtil
|
||||
import com.intellij.util.ThrowableRunnable
|
||||
import com.intellij.util.ui.UIUtil
|
||||
@@ -23,8 +23,8 @@ import org.jetbrains.kotlin.idea.base.highlighting.shouldHighlightFile
|
||||
import org.jetbrains.kotlin.idea.base.plugin.artifacts.TestKotlinArtifacts
|
||||
import org.jetbrains.kotlin.idea.completion.test.KotlinCompletionTestCase
|
||||
import org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink
|
||||
import org.jetbrains.kotlin.idea.core.script.SCRIPT_DEFINITIONS_SOURCES
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager.Companion.updateScriptDependenciesSynchronously
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
|
||||
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings
|
||||
import org.jetbrains.kotlin.idea.script.AbstractScriptConfigurationTest.Companion.useDefaultTemplate
|
||||
@@ -354,7 +354,7 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() {
|
||||
}
|
||||
|
||||
addExtensionPointInTest(
|
||||
ScriptDefinitionContributor.EP_NAME,
|
||||
SCRIPT_DEFINITIONS_SOURCES,
|
||||
project,
|
||||
provider,
|
||||
testRootDisposable
|
||||
|
||||
+3
-8
@@ -2,9 +2,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.script
|
||||
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.loadDefinitionsFromTemplates
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import org.jetbrains.kotlin.scripting.definitions.getEnvironment
|
||||
import java.io.File
|
||||
import kotlin.script.dependencies.Environment
|
||||
@@ -12,9 +12,7 @@ import kotlin.script.experimental.host.ScriptingHostConfiguration
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
|
||||
class CustomScriptTemplateProvider(val environment: Environment) : ScriptDefinitionSourceAsContributor {
|
||||
|
||||
override val id = "Test"
|
||||
class CustomScriptTemplateProvider(val environment: Environment) : ScriptDefinitionsSource {
|
||||
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() = loadDefinitionsFromTemplates(
|
||||
@@ -27,10 +25,7 @@ class CustomScriptTemplateProvider(val environment: Environment) : ScriptDefinit
|
||||
|
||||
}
|
||||
|
||||
class FromTextTemplateProvider(val environment: Environment) : ScriptDefinitionSourceAsContributor {
|
||||
|
||||
override val id = "Test"
|
||||
|
||||
class FromTextTemplateProvider(val environment: Environment) : ScriptDefinitionsSource {
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() = loadDefinitionsFromTemplates(
|
||||
templateClassNames = listOf("org.jetbrains.kotlin.idea.script.Template"),
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ package org.jetbrains.kotlin.idea.script
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.idea.base.plugin.artifacts.TestKotlinArtifacts
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.SCRIPT_DEFINITIONS_SOURCES
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
|
||||
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings
|
||||
import org.jetbrains.kotlin.idea.test.KotlinCompilerStandalone
|
||||
@@ -57,7 +57,7 @@ private fun compileLibToDir(testName: String, srcDir: File): File {
|
||||
private fun registerScriptDefinitionsProvider(project: Project, testRootDisposable: Disposable, environment: Environment) {
|
||||
val provider = CustomScriptTemplateProvider(environment)
|
||||
|
||||
addExtensionPointInTest(ScriptDefinitionContributor.EP_NAME, project, provider, testRootDisposable)
|
||||
addExtensionPointInTest(SCRIPT_DEFINITIONS_SOURCES, project, provider, testRootDisposable)
|
||||
|
||||
ScriptDefinitionsManager.getInstance(project).reloadDefinitions()
|
||||
|
||||
|
||||
@@ -31,17 +31,6 @@
|
||||
interface="org.jetbrains.kotlin.idea.core.script.configuration.listener.ScriptChangeListener"
|
||||
area="IDEA_PROJECT" dynamic="true"/>
|
||||
|
||||
<extensionPoint
|
||||
qualifiedName="org.jetbrains.kotlin.scriptDefinitionContributor"
|
||||
interface="org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor"
|
||||
area="IDEA_PROJECT"
|
||||
dynamic="true"/>
|
||||
|
||||
<extensionPoint
|
||||
qualifiedName="org.jetbrains.kotlin.scriptTemplatesProvider"
|
||||
interface="org.jetbrains.kotlin.script.ScriptTemplatesProvider"
|
||||
area="IDEA_PROJECT"/>
|
||||
|
||||
<extensionPoint
|
||||
qualifiedName="org.jetbrains.kotlin.ideScriptConfigurationControlFacade"
|
||||
interface="kotlin.script.experimental.intellij.IdeScriptConfigurationControlFacade"
|
||||
@@ -113,9 +102,9 @@
|
||||
|
||||
<idea.base.projectStructure.moduleInfoProviderExtension implementation="org.jetbrains.kotlin.idea.base.scripting.ScriptingModuleInfoProviderExtension"/>
|
||||
|
||||
<scriptDefinitionContributor
|
||||
<scriptDefinitionsSource
|
||||
id="StandardScriptDefinitionContributor"
|
||||
order="last"
|
||||
implementation="org.jetbrains.kotlin.idea.core.script.BundledScriptDefinitionContributor"/>
|
||||
implementation="org.jetbrains.kotlin.idea.core.script.BundledScriptDefinitionSource"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -1,5 +1,11 @@
|
||||
<idea-plugin>
|
||||
<extensionPoints>
|
||||
<extensionPoint
|
||||
qualifiedName="org.jetbrains.kotlin.scriptDefinitionsSource"
|
||||
interface="org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource"
|
||||
area="IDEA_PROJECT"
|
||||
dynamic="true"/>
|
||||
|
||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.scratchFileLanguageProvider" beanClass="com.intellij.lang.LanguageExtensionPoint" dynamic="true">
|
||||
<with attribute="implementationClass" implements="org.jetbrains.kotlin.idea.scratch.ScratchFileLanguageProvider"/>
|
||||
</extensionPoint>
|
||||
@@ -34,22 +40,22 @@
|
||||
<syntheticResolveExtension implementation="org.jetbrains.kotlin.scripting.extensions.ScriptingResolveExtension"/>
|
||||
<extraImportsProviderExtension implementation="org.jetbrains.kotlin.scripting.extensions.ScriptExtraImportsProviderExtension"/>
|
||||
|
||||
<scriptDefinitionContributor
|
||||
<scriptDefinitionsSource
|
||||
id="ScriptTemplatesFromCompilerSettingsProvider"
|
||||
implementation="org.jetbrains.kotlin.idea.script.ScriptTemplatesFromCompilerSettingsProvider"/>
|
||||
|
||||
<scriptDefinitionContributor
|
||||
<scriptDefinitionsSource
|
||||
id="BridgeScriptDefinitionsContributor"
|
||||
implementation="org.jetbrains.kotlin.idea.script.BridgeScriptDefinitionsContributor"/>
|
||||
|
||||
<scriptDefinitionContributor
|
||||
<scriptDefinitionsSource
|
||||
id="ScriptTemplatesFromDependenciesProvider"
|
||||
implementation="org.jetbrains.kotlin.idea.script.ScriptTemplatesFromDependenciesProvider"/>
|
||||
|
||||
<scriptDefinitionContributor id="ConsoleScriptDefinitionContributor"
|
||||
implementation="org.jetbrains.kotlin.console.ConsoleScriptDefinitionContributor"/>
|
||||
<scriptDefinitionsSource id="ConsoleScriptDefinitionContributor"
|
||||
implementation="org.jetbrains.kotlin.console.ConsoleScriptDefinitionSource"/>
|
||||
|
||||
<scriptDefinitionContributor id="ScriptDefinitionForExtensionAndIdeConsoleRootsSource"
|
||||
<scriptDefinitionsSource id="ScriptDefinitionForExtensionAndIdeConsoleRootsSource"
|
||||
implementation="org.jetbrains.kotlin.jsr223.ScriptDefinitionForExtensionAndIdeConsoleRootsSource"/>
|
||||
|
||||
<scriptDefinitionsProvider id="MainKtsScriptDefinitionProvider"
|
||||
|
||||
@@ -50,17 +50,6 @@
|
||||
interface="org.jetbrains.kotlin.idea.core.script.configuration.listener.ScriptChangeListener"
|
||||
area="IDEA_PROJECT" dynamic="true"/>
|
||||
|
||||
<extensionPoint
|
||||
qualifiedName="org.jetbrains.kotlin.scriptDefinitionContributor"
|
||||
interface="org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor"
|
||||
area="IDEA_PROJECT"
|
||||
dynamic="true"/>
|
||||
|
||||
<extensionPoint
|
||||
qualifiedName="org.jetbrains.kotlin.scriptTemplatesProvider"
|
||||
interface="org.jetbrains.kotlin.script.ScriptTemplatesProvider"
|
||||
area="IDEA_PROJECT"/>
|
||||
|
||||
<extensionPoint
|
||||
qualifiedName="org.jetbrains.kotlin.ideScriptConfigurationControlFacade"
|
||||
interface="kotlin.script.experimental.intellij.IdeScriptConfigurationControlFacade"
|
||||
|
||||
@@ -56,24 +56,22 @@ import org.jetbrains.kotlin.idea.base.projectStructure.testSourceInfo
|
||||
import org.jetbrains.kotlin.idea.base.util.runReadActionInSmartMode
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.unsafeResolveToDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.trackers.KOTLIN_CONSOLE_KEY
|
||||
import org.jetbrains.kotlin.idea.core.script.SCRIPT_DEFINITIONS_SOURCES
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
|
||||
import org.jetbrains.kotlin.idea.util.application.isUnitTestMode
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtScript
|
||||
import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil
|
||||
import org.jetbrains.kotlin.resolve.repl.ReplState
|
||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import java.awt.Color
|
||||
import java.awt.Font
|
||||
import java.util.concurrent.CountDownLatch
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.properties.Delegates
|
||||
import kotlin.script.experimental.api.*
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
private const val KOTLIN_SHELL_EXECUTE_ACTION_ID = "KotlinShellExecute"
|
||||
@@ -94,7 +92,7 @@ class KotlinConsoleRunner(
|
||||
|
||||
override fun finishConsole() {
|
||||
KotlinConsoleKeeper.getInstance(project).removeConsole(consoleView.virtualFile)
|
||||
val consoleContributor = ScriptDefinitionContributor.find<ConsoleScriptDefinitionContributor>(project)!!
|
||||
val consoleContributor = ConsoleScriptDefinitionSource.getInstance(project)!!
|
||||
consoleContributor.unregisterDefinition(consoleScriptDefinition)
|
||||
ScriptDefinitionsManager.getInstance(project).reloadDefinitionsBy(consoleContributor)
|
||||
|
||||
@@ -129,10 +127,16 @@ class KotlinConsoleRunner(
|
||||
val executor = CommandExecutor(this)
|
||||
var compilerHelper: ConsoleCompilerHelper by Delegates.notNull()
|
||||
|
||||
private val consoleScriptDefinition = object : KotlinScriptDefinition(Any::class) {
|
||||
override val name get() = KotlinIdeaReplBundle.message("name.kotlin.repl")
|
||||
override fun isScript(fileName: String): Boolean = fileName.startsWith(consoleView.virtualFile.name)
|
||||
override fun getScriptName(script: KtScript) = Name.identifier("REPL")
|
||||
val consoleScriptDefinition = object : ScriptDefinition.FromConfigurations(
|
||||
defaultJvmScriptingHostConfiguration,
|
||||
ScriptCompilationConfiguration {
|
||||
displayName(KotlinIdeaReplBundle.message("name.kotlin.repl"))
|
||||
},
|
||||
ScriptEvaluationConfiguration({
|
||||
hostConfiguration(defaultJvmScriptingHostConfiguration)
|
||||
})
|
||||
) {
|
||||
override fun isScript(script: SourceCode): Boolean = script.name?.startsWith(consoleView.virtualFile.name) == true
|
||||
}
|
||||
|
||||
override fun createProcess(): Process {
|
||||
@@ -163,7 +167,7 @@ class KotlinConsoleRunner(
|
||||
val executeAction = KtExecuteCommandAction(consoleView.virtualFile)
|
||||
executeAction.registerCustomShortcutSet(CommonShortcuts.getCtrlEnter(), consoleView.consoleEditor.component)
|
||||
|
||||
val consoleContributor = ScriptDefinitionContributor.find<ConsoleScriptDefinitionContributor>(project)!!
|
||||
val consoleContributor = ConsoleScriptDefinitionSource.getInstance(project)!!
|
||||
consoleContributor.registerDefinition(consoleScriptDefinition)
|
||||
ScriptDefinitionsManager.getInstance(project).reloadDefinitionsBy(consoleContributor)
|
||||
|
||||
@@ -320,21 +324,25 @@ class KotlinConsoleRunner(
|
||||
}
|
||||
}
|
||||
|
||||
class ConsoleScriptDefinitionContributor : ScriptDefinitionSourceAsContributor {
|
||||
class ConsoleScriptDefinitionSource : ScriptDefinitionsSource {
|
||||
|
||||
private val definitionsSet = ConcurrentCollectionFactory.createConcurrentSet<ScriptDefinition>()
|
||||
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() = definitionsSet.asSequence()
|
||||
|
||||
override val id: String = "IDEA Console"
|
||||
|
||||
// TODO: rewrite to ScriptDefinition
|
||||
fun registerDefinition(definition: KotlinScriptDefinition) {
|
||||
definitionsSet.add(ScriptDefinition.FromLegacy(defaultJvmScriptingHostConfiguration, definition))
|
||||
fun registerDefinition(definition: ScriptDefinition) {
|
||||
definitionsSet.add(definition)
|
||||
}
|
||||
|
||||
fun unregisterDefinition(definition: KotlinScriptDefinition) {
|
||||
definitionsSet.removeIf { it.asLegacyOrNull<KotlinScriptDefinition>() == definition }
|
||||
fun unregisterDefinition(definition: ScriptDefinition) {
|
||||
definitionsSet.remove(definition)
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun getInstance(project: Project): ConsoleScriptDefinitionSource? =
|
||||
SCRIPT_DEFINITIONS_SOURCES.getExtensions(project)
|
||||
.filterIsInstance<ConsoleScriptDefinitionSource>()
|
||||
.singleOrNull()
|
||||
}
|
||||
}
|
||||
+2
-6
@@ -6,8 +6,8 @@ import com.intellij.ide.extensionResources.ExtensionsRootType
|
||||
import com.intellij.ide.scratch.RootType
|
||||
import com.intellij.ide.script.IdeConsoleRootType
|
||||
import com.intellij.openapi.application.PathManager
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionSourceAsContributor
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsSource
|
||||
import org.jetbrains.kotlin.scripting.resolve.VirtualFileScriptSource
|
||||
import kotlin.io.path.nameWithoutExtension
|
||||
import kotlin.script.experimental.api.*
|
||||
@@ -32,11 +32,7 @@ object ScriptDefinitionForExtensionAndIdeConsoleRoots : ScriptDefinition.FromCon
|
||||
|
||||
private const val SCRIPT_DEFINITION_NAME = "Script definition for extension scripts and IDE console"
|
||||
|
||||
// Deprecated API is used because actual one doesn't support this way of identifying scripts. Will be fixed eventually.
|
||||
@Suppress("DEPRECATION")
|
||||
class ScriptDefinitionForExtensionAndIdeConsoleRootsSource : ScriptDefinitionSourceAsContributor {
|
||||
override val id: String = SCRIPT_DEFINITION_NAME
|
||||
|
||||
class ScriptDefinitionForExtensionAndIdeConsoleRootsSource : ScriptDefinitionsSource {
|
||||
override val definitions: Sequence<ScriptDefinition>
|
||||
get() = sequenceOf(ScriptDefinitionForExtensionAndIdeConsoleRoots)
|
||||
}
|
||||
|
||||
+2
-7
@@ -19,12 +19,7 @@ import com.intellij.testFramework.PsiTestUtil
|
||||
import com.intellij.util.io.ZipUtil
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||
import org.jetbrains.kotlin.idea.base.test.InTextDirectivesUtils
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor
|
||||
import org.jetbrains.kotlin.idea.test.ExpectedPluginModeProvider
|
||||
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners
|
||||
import org.jetbrains.kotlin.idea.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.idea.test.addDependency
|
||||
import org.jetbrains.kotlin.idea.test.setUpWithKotlinPlugin
|
||||
import org.jetbrains.kotlin.idea.test.*
|
||||
import org.jetbrains.kotlin.test.util.jarRoot
|
||||
import org.jetbrains.kotlin.test.util.projectLibrary
|
||||
import org.junit.runner.RunWith
|
||||
@@ -91,7 +86,7 @@ abstract class AbstractScriptTemplatesFromDependenciesTest : HeavyPlatformTestCa
|
||||
|
||||
checkRoots(fileText, roots)
|
||||
|
||||
val provider = ScriptDefinitionContributor.find<ScriptTemplatesFromDependenciesProvider>(project)
|
||||
val provider = ScriptTemplatesFromDependenciesProvider.getInstance(project)
|
||||
?: error("Cannot find ScriptTemplatesFromDependenciesProvider")
|
||||
|
||||
val (templates, classpath) = provider.getTemplateClassPath(roots.toList())
|
||||
|
||||
Reference in New Issue
Block a user