Invalidate module source roots in create actual to fix exceptions

Related to KT-19586
This commit is contained in:
Mikhail Glukhikh
2018-09-05 17:03:18 +03:00
parent fe9f655c26
commit ef4053d5c3
4 changed files with 18 additions and 9 deletions
@@ -21,6 +21,7 @@ import org.jetbrains.jps.model.java.JavaSourceRootProperties
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
import org.jetbrains.kotlin.config.KotlinSourceRootType
import org.jetbrains.kotlin.idea.caches.PerModulePackageCacheService
import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots
import org.jetbrains.kotlin.idea.util.rootManager
import org.jetbrains.kotlin.idea.util.sourceRoot
import org.jetbrains.kotlin.name.FqName
@@ -103,6 +104,7 @@ private fun Module.getOrConfigureKotlinSourceRoots(): List<VirtualFile> {
return runWriteAction {
val rootDir = rootManager.contentRoots.firstOrNull()
rootDir?.createChildDirectory(project, "kotlin")
project.invalidateProjectRoots()
getNonGeneratedKotlinSourceRoots()
}
}
@@ -0,0 +1,14 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.idea.roots
import com.intellij.openapi.project.Project
import com.intellij.openapi.roots.ex.ProjectRootManagerEx
import com.intellij.openapi.util.EmptyRunnable
fun Project.invalidateProjectRoots() {
ProjectRootManagerEx.getInstanceEx(this).makeRootsChange(EmptyRunnable.INSTANCE, false, true)
}