Add debug logger to ScriptTemplatesFromDependenciesProvider
This will help with investigation of problems with script definition discovery
This commit is contained in:
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.scripting.gradle
|
|||||||
|
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.components.service
|
import com.intellij.openapi.components.service
|
||||||
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.util.registry.Registry
|
import com.intellij.openapi.util.registry.Registry
|
||||||
@@ -141,4 +142,12 @@ class RootsIndex<T : Any> {
|
|||||||
|
|
||||||
@Synchronized
|
@Synchronized
|
||||||
fun remove(prefix: String) = tree.remove(prefix)
|
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()}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.script
|
|||||||
import com.intellij.ProjectTopics
|
import com.intellij.ProjectTopics
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.application.ReadAction
|
import com.intellij.openapi.application.ReadAction
|
||||||
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.roots.ModuleRootEvent
|
import com.intellij.openapi.roots.ModuleRootEvent
|
||||||
import com.intellij.openapi.roots.ModuleRootListener
|
import com.intellij.openapi.roots.ModuleRootListener
|
||||||
@@ -32,6 +33,8 @@ import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
|||||||
|
|
||||||
|
|
||||||
class ScriptTemplatesFromDependenciesProvider(private val project: Project) : ScriptDefinitionSourceAsContributor {
|
class ScriptTemplatesFromDependenciesProvider(private val project: Project) : ScriptDefinitionSourceAsContributor {
|
||||||
|
private val logger = Logger.getInstance(ScriptTemplatesFromDependenciesProvider::class.java)
|
||||||
|
|
||||||
override val id = "ScriptTemplatesFromDependenciesProvider"
|
override val id = "ScriptTemplatesFromDependenciesProvider"
|
||||||
|
|
||||||
override fun isReady(): Boolean = _definitions != null
|
override fun isReady(): Boolean = _definitions != null
|
||||||
@@ -99,6 +102,10 @@ class ScriptTemplatesFromDependenciesProvider(private val project: Project) : Sc
|
|||||||
return onEarlyEnd()
|
return onEarlyEnd()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (logger.isDebugEnabled) {
|
||||||
|
logger.debug("async script definitions update started")
|
||||||
|
}
|
||||||
|
|
||||||
val templates = LinkedHashSet<String>()
|
val templates = LinkedHashSet<String>()
|
||||||
val classpath = LinkedHashSet<File>()
|
val classpath = LinkedHashSet<File>()
|
||||||
|
|
||||||
@@ -118,6 +125,10 @@ class ScriptTemplatesFromDependenciesProvider(private val project: Project) : Sc
|
|||||||
.onSuccess { roots ->
|
.onSuccess { roots ->
|
||||||
val jarFS = JarFileSystem.getInstance()
|
val jarFS = JarFileSystem.getInstance()
|
||||||
roots.forEach { root ->
|
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 ->
|
root.findFileByRelativePath(SCRIPT_DEFINITION_MARKERS_PATH)?.children?.forEach { resourceFile ->
|
||||||
if (resourceFile.isValid && !resourceFile.isDirectory) {
|
if (resourceFile.isValid && !resourceFile.isDirectory) {
|
||||||
templates.add(resourceFile.name.removeSuffix(SCRIPT_DEFINITION_MARKERS_EXTENSION_WITH_DOT))
|
templates.add(resourceFile.name.removeSuffix(SCRIPT_DEFINITION_MARKERS_EXTENSION_WITH_DOT))
|
||||||
@@ -151,6 +162,10 @@ class ScriptTemplatesFromDependenciesProvider(private val project: Project) : Sc
|
|||||||
return@onProcessed
|
return@onProcessed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (logger.isDebugEnabled) {
|
||||||
|
logger.debug("script templates found: $newTemplates")
|
||||||
|
}
|
||||||
|
|
||||||
oldTemplates = newTemplates
|
oldTemplates = newTemplates
|
||||||
|
|
||||||
val hostConfiguration = ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) {
|
val hostConfiguration = ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) {
|
||||||
@@ -167,6 +182,10 @@ class ScriptTemplatesFromDependenciesProvider(private val project: Project) : Sc
|
|||||||
baseHostConfiguration = hostConfiguration,
|
baseHostConfiguration = hostConfiguration,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (logger.isDebugEnabled) {
|
||||||
|
logger.debug("script definitions found: ${newDefinitions.joinToString()}")
|
||||||
|
}
|
||||||
|
|
||||||
val needReload = definitionsLock.withLock {
|
val needReload = definitionsLock.withLock {
|
||||||
if (newDefinitions != _definitions) {
|
if (newDefinitions != _definitions) {
|
||||||
_definitions = newDefinitions
|
_definitions = newDefinitions
|
||||||
|
|||||||
Reference in New Issue
Block a user