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)
}
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.idea.PluginStartupComponent;
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings;
import org.jetbrains.kotlin.idea.facet.DescriptionListCellRenderer;
import org.jetbrains.kotlin.idea.facet.KotlinFacet;
import org.jetbrains.kotlin.idea.roots.ProjectRootUtilsKt;
import org.jetbrains.kotlin.idea.roots.RootUtilsKt;
import org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt;
import org.jetbrains.kotlin.platform.IdePlatform;
import org.jetbrains.kotlin.platform.IdePlatformKind;
@@ -524,7 +524,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
new Function0<Object>() {
@Override
public Object invoke() {
ProjectRootUtilsKt.invalidateProjectRoots(project);
RootUtilsKt.invalidateProjectRoots(project);
return null;
}
}
@@ -5,10 +5,7 @@
package org.jetbrains.kotlin.idea.roots
import com.intellij.openapi.project.Project
import com.intellij.openapi.roots.ModifiableRootModel
import com.intellij.openapi.roots.ex.ProjectRootManagerEx
import com.intellij.openapi.util.EmptyRunnable
import org.jetbrains.jps.model.JpsElement
import org.jetbrains.jps.model.ex.JpsElementBase
import org.jetbrains.jps.model.java.JavaResourceRootType
@@ -44,7 +41,3 @@ fun migrateNonJvmSourceFolders(modifiableRootModel: ModifiableRootModel) {
}
}
}
fun Project.invalidateProjectRoots() {
ProjectRootManagerEx.getInstanceEx(this).makeRootsChange(EmptyRunnable.INSTANCE, false, true)
}