Enumerate roots for script definitions only if project is initialized

fixes #KT-23805
This commit is contained in:
Ilya Chernikov
2018-05-14 14:22:26 +02:00
parent 4b949ef303
commit b2bda5c017
@@ -36,16 +36,18 @@ class ScriptTemplatesFromDependenciesProvider(private val project: Project) : Sc
val connection = project.messageBus.connect() val connection = project.messageBus.connect()
connection.subscribe(ProjectTopics.PROJECT_ROOTS, object : ModuleRootListener { connection.subscribe(ProjectTopics.PROJECT_ROOTS, object : ModuleRootListener {
override fun rootsChanged(event: ModuleRootEvent?) { override fun rootsChanged(event: ModuleRootEvent?) {
var templatesChanged = false if (project.isInitialized) {
lock.read { var templatesChanged = false
val newTemplates = getScriptTemplates() lock.read {
if (newTemplates != templates) lock.write { val newTemplates = getScriptTemplates()
templates = newTemplates if (newTemplates != templates) lock.write {
templatesChanged = true templates = newTemplates
templatesChanged = true
}
}
if (templatesChanged) {
ScriptDefinitionsManager.getInstance(project).reloadDefinitionsBy(this@ScriptTemplatesFromDependenciesProvider)
} }
}
if (templatesChanged) {
ScriptDefinitionsManager.getInstance(project).reloadDefinitionsBy(this@ScriptTemplatesFromDependenciesProvider)
} }
} }
}) })