Configuration: Invalidate caches when changing compiler options
#KT-25515 Fixed
This commit is contained in:
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.idea.configuration.BuildSystemType
|
|||||||
import org.jetbrains.kotlin.idea.configuration.findApplicableConfigurator
|
import org.jetbrains.kotlin.idea.configuration.findApplicableConfigurator
|
||||||
import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
|
import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
||||||
|
import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
|
||||||
sealed class ChangeCoroutineSupportFix(
|
sealed class ChangeCoroutineSupportFix(
|
||||||
@@ -54,7 +55,7 @@ sealed class ChangeCoroutineSupportFix(
|
|||||||
LanguageFeature.State.ENABLED_WITH_ERROR, LanguageFeature.State.DISABLED -> CommonCompilerArguments.ERROR
|
LanguageFeature.State.ENABLED_WITH_ERROR, LanguageFeature.State.DISABLED -> CommonCompilerArguments.ERROR
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ProjectRootManagerEx.getInstanceEx(project).makeRootsChange({}, false, true)
|
project.invalidateProjectRoots()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import com.intellij.openapi.module.Module
|
|||||||
import com.intellij.openapi.module.ModuleUtilCore
|
import com.intellij.openapi.module.ModuleUtilCore
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.roots.ModuleRootManager
|
import com.intellij.openapi.roots.ModuleRootManager
|
||||||
import com.intellij.openapi.roots.ex.ProjectRootManagerEx
|
|
||||||
import com.intellij.openapi.roots.libraries.Library
|
import com.intellij.openapi.roots.libraries.Library
|
||||||
import com.intellij.openapi.ui.Messages
|
import com.intellij.openapi.ui.Messages
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
@@ -27,6 +26,7 @@ import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
|
|||||||
import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware
|
import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
||||||
import org.jetbrains.kotlin.idea.facet.getRuntimeLibraryVersion
|
import org.jetbrains.kotlin.idea.facet.getRuntimeLibraryVersion
|
||||||
|
import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots
|
||||||
import org.jetbrains.kotlin.idea.util.projectStructure.allModules
|
import org.jetbrains.kotlin.idea.util.projectStructure.allModules
|
||||||
import org.jetbrains.kotlin.idea.versions.findKotlinRuntimeLibrary
|
import org.jetbrains.kotlin.idea.versions.findKotlinRuntimeLibrary
|
||||||
import org.jetbrains.kotlin.idea.versions.updateLibraries
|
import org.jetbrains.kotlin.idea.versions.updateLibraries
|
||||||
@@ -91,7 +91,7 @@ sealed class EnableUnsupportedFeatureFix(
|
|||||||
languageVersion = targetVersion.versionString
|
languageVersion = targetVersion.versionString
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ProjectRootManagerEx.getInstanceEx(project).makeRootsChange({}, false, true)
|
project.invalidateProjectRoots()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -42,6 +42,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.util.application.ApplicationUtilsKt;
|
import org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
@@ -489,14 +490,15 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
boolean shouldInvalidateCaches =
|
boolean shouldInvalidateCaches =
|
||||||
!getSelectedLanguageVersionView().equals(KotlinFacetSettingsKt.getLanguageVersionView(commonCompilerArguments)) ||
|
!getSelectedLanguageVersionView().equals(KotlinFacetSettingsKt.getLanguageVersionView(commonCompilerArguments)) ||
|
||||||
!getSelectedAPIVersionView().equals(KotlinFacetSettingsKt.getApiVersionView(commonCompilerArguments)) ||
|
!getSelectedAPIVersionView().equals(KotlinFacetSettingsKt.getApiVersionView(commonCompilerArguments)) ||
|
||||||
!coroutineSupportComboBox.getSelectedItem().equals(CoroutineSupport.byCompilerArguments(commonCompilerArguments));
|
!coroutineSupportComboBox.getSelectedItem().equals(CoroutineSupport.byCompilerArguments(commonCompilerArguments)) ||
|
||||||
|
!additionalArgsOptionsField.getText().equals(compilerSettings.getAdditionalArguments());
|
||||||
|
|
||||||
if (shouldInvalidateCaches) {
|
if (shouldInvalidateCaches) {
|
||||||
ApplicationUtilsKt.runWriteAction(
|
ApplicationUtilsKt.runWriteAction(
|
||||||
new Function0<Object>() {
|
new Function0<Object>() {
|
||||||
@Override
|
@Override
|
||||||
public Object invoke() {
|
public Object invoke() {
|
||||||
ProjectRootManagerEx.getInstanceEx(project).makeRootsChange(EmptyRunnable.INSTANCE, false, true);
|
ProjectRootUtilsKt.invalidateProjectRoots(project);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.configuration.BuildSystemType
|
|||||||
import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
|
import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
||||||
import org.jetbrains.kotlin.idea.facet.getOrCreateFacet
|
import org.jetbrains.kotlin.idea.facet.getOrCreateFacet
|
||||||
|
import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots
|
||||||
import org.jetbrains.kotlin.idea.util.projectStructure.module
|
import org.jetbrains.kotlin.idea.util.projectStructure.module
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -44,6 +45,7 @@ class MakeModuleExperimentalFix(
|
|||||||
|
|
||||||
compilerSettings.additionalArguments += " $compilerArgument"
|
compilerSettings.additionalArguments += " $compilerArgument"
|
||||||
facetSettings.updateMergedArguments()
|
facetSettings.updateMergedArguments()
|
||||||
|
project.invalidateProjectRoots()
|
||||||
} finally {
|
} finally {
|
||||||
modelsProvider.dispose()
|
modelsProvider.dispose()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,10 @@
|
|||||||
|
|
||||||
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
|
||||||
@@ -50,4 +53,8 @@ fun TargetPlatformKind<*>.asTargetPlatform() = when (this) {
|
|||||||
is TargetPlatformKind.Jvm -> JvmPlatform
|
is TargetPlatformKind.Jvm -> JvmPlatform
|
||||||
is TargetPlatformKind.JavaScript -> JsPlatform
|
is TargetPlatformKind.JavaScript -> JsPlatform
|
||||||
is TargetPlatformKind.Common -> TargetPlatform.Common
|
is TargetPlatformKind.Common -> TargetPlatform.Common
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Project.invalidateProjectRoots() {
|
||||||
|
ProjectRootManagerEx.getInstanceEx(this).makeRootsChange(EmptyRunnable.INSTANCE, false, true)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user