Invalidate module source roots in create actual to fix exceptions
Related to KT-19586
This commit is contained in:
@@ -21,6 +21,7 @@ import org.jetbrains.jps.model.java.JavaSourceRootProperties
|
|||||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||||
import org.jetbrains.kotlin.idea.caches.PerModulePackageCacheService
|
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.rootManager
|
||||||
import org.jetbrains.kotlin.idea.util.sourceRoot
|
import org.jetbrains.kotlin.idea.util.sourceRoot
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -103,6 +104,7 @@ private fun Module.getOrConfigureKotlinSourceRoots(): List<VirtualFile> {
|
|||||||
return runWriteAction {
|
return runWriteAction {
|
||||||
val rootDir = rootManager.contentRoots.firstOrNull()
|
val rootDir = rootManager.contentRoots.firstOrNull()
|
||||||
rootDir?.createChildDirectory(project, "kotlin")
|
rootDir?.createChildDirectory(project, "kotlin")
|
||||||
|
project.invalidateProjectRoots()
|
||||||
getNonGeneratedKotlinSourceRoots()
|
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)
|
||||||
|
}
|
||||||
+2
-2
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.idea.PluginStartupComponent;
|
|||||||
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings;
|
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings;
|
||||||
import org.jetbrains.kotlin.idea.facet.DescriptionListCellRenderer;
|
import org.jetbrains.kotlin.idea.facet.DescriptionListCellRenderer;
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacet;
|
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.idea.util.application.ApplicationUtilsKt;
|
||||||
import org.jetbrains.kotlin.platform.IdePlatform;
|
import org.jetbrains.kotlin.platform.IdePlatform;
|
||||||
import org.jetbrains.kotlin.platform.IdePlatformKind;
|
import org.jetbrains.kotlin.platform.IdePlatformKind;
|
||||||
@@ -524,7 +524,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
new Function0<Object>() {
|
new Function0<Object>() {
|
||||||
@Override
|
@Override
|
||||||
public Object invoke() {
|
public Object invoke() {
|
||||||
ProjectRootUtilsKt.invalidateProjectRoots(project);
|
RootUtilsKt.invalidateProjectRoots(project);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.roots
|
package org.jetbrains.kotlin.idea.roots
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
|
||||||
import com.intellij.openapi.roots.ModifiableRootModel
|
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.JpsElement
|
||||||
import org.jetbrains.jps.model.ex.JpsElementBase
|
import org.jetbrains.jps.model.ex.JpsElementBase
|
||||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
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)
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user