From f7b60e64c9edc120227b8024addad7f5e3d6a600 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 12 Dec 2016 19:31:03 +0300 Subject: [PATCH] Run invalidating script caches when reindexing is ready (KT-14538) Explanation why it leads to red code after new project opening 1. No script files are found after project initialization. 2. KotlinScriptDependenciesIndexableSetContributor triggers caching classpath via getAllScriptsClasspath(). Empty classpath is cached. 3. KotlinScriptDependenciesClassFinder.calcClassRoots() always get empty classpath. #KT-14538 In Progress --- .../idea/core/script/KotlinScriptConfigurationManager.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptConfigurationManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptConfigurationManager.kt index a184891640a..c416c931ec1 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptConfigurationManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptConfigurationManager.kt @@ -57,9 +57,11 @@ class KotlinScriptConfigurationManager( reloadScriptDefinitions() StartupManager.getInstance(project).runWhenProjectIsInitialized { - cacheAllScriptsExtraImports() - invalidateLocalCaches() - notifyRootsChanged() + DumbService.getInstance(project).smartInvokeLater { + cacheAllScriptsExtraImports() + invalidateLocalCaches() + notifyRootsChanged() + } } project.messageBus.connect().subscribe(VirtualFileManager.VFS_CHANGES, object : BulkFileListener.Adapter() {