diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt index b95a9d45b20..67de35abe76 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.scripting.gradle import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.components.service +import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil import com.intellij.openapi.project.Project import com.intellij.openapi.util.registry.Registry @@ -141,4 +142,12 @@ class RootsIndex { @Synchronized fun remove(prefix: String) = tree.remove(prefix) +} + +private val logger = Logger.getInstance("#org.jetbrains.kotlin.idea.scripting.gradle") + +fun scriptingDebugLog(message: () -> String) { + if (logger.isDebugEnabled) { + logger.debug("[KOTLIN_GRADLE_DSL] ${message()}") + } } \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/script/ScriptTemplatesFromDependenciesProvider.kt b/idea/src/org/jetbrains/kotlin/idea/script/ScriptTemplatesFromDependenciesProvider.kt index 28686c2a9f4..1ac3ce5c197 100644 --- a/idea/src/org/jetbrains/kotlin/idea/script/ScriptTemplatesFromDependenciesProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/script/ScriptTemplatesFromDependenciesProvider.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.script import com.intellij.ProjectTopics import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ReadAction +import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ModuleRootEvent import com.intellij.openapi.roots.ModuleRootListener @@ -32,6 +33,8 @@ import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration class ScriptTemplatesFromDependenciesProvider(private val project: Project) : ScriptDefinitionSourceAsContributor { + private val logger = Logger.getInstance(ScriptTemplatesFromDependenciesProvider::class.java) + override val id = "ScriptTemplatesFromDependenciesProvider" override fun isReady(): Boolean = _definitions != null @@ -99,6 +102,10 @@ class ScriptTemplatesFromDependenciesProvider(private val project: Project) : Sc return onEarlyEnd() } + if (logger.isDebugEnabled) { + logger.debug("async script definitions update started") + } + val templates = LinkedHashSet() val classpath = LinkedHashSet() @@ -118,6 +125,10 @@ class ScriptTemplatesFromDependenciesProvider(private val project: Project) : Sc .onSuccess { roots -> val jarFS = JarFileSystem.getInstance() roots.forEach { root -> + if (logger.isDebugEnabled) { + logger.debug("root matching SCRIPT_DEFINITION_MARKERS_PATH found: ${root.path}") + } + root.findFileByRelativePath(SCRIPT_DEFINITION_MARKERS_PATH)?.children?.forEach { resourceFile -> if (resourceFile.isValid && !resourceFile.isDirectory) { templates.add(resourceFile.name.removeSuffix(SCRIPT_DEFINITION_MARKERS_EXTENSION_WITH_DOT)) @@ -151,6 +162,10 @@ class ScriptTemplatesFromDependenciesProvider(private val project: Project) : Sc return@onProcessed } + if (logger.isDebugEnabled) { + logger.debug("script templates found: $newTemplates") + } + oldTemplates = newTemplates val hostConfiguration = ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) { @@ -167,6 +182,10 @@ class ScriptTemplatesFromDependenciesProvider(private val project: Project) : Sc baseHostConfiguration = hostConfiguration, ) + if (logger.isDebugEnabled) { + logger.debug("script definitions found: ${newDefinitions.joinToString()}") + } + val needReload = definitionsLock.withLock { if (newDefinitions != _definitions) { _definitions = newDefinitions