From 6aa3c26f78f840c6afc331d38035ffc060589e59 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 16 Feb 2017 14:32:35 +0100 Subject: [PATCH] Disable facet detection; force detection of API/language level from dependencies on project opening --- .../ui/KotlinConfigurationCheckerComponent.kt | 12 ++++++++++-- .../jetbrains/kotlin/idea/facet/FacetConfigurator.kt | 11 ++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/KotlinConfigurationCheckerComponent.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/KotlinConfigurationCheckerComponent.kt index 28557f6973d..d71f5e22aea 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/ui/KotlinConfigurationCheckerComponent.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ui/KotlinConfigurationCheckerComponent.kt @@ -22,8 +22,12 @@ import com.intellij.openapi.components.AbstractProjectComponent import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.Project import com.intellij.openapi.startup.StartupManager -import org.jetbrains.kotlin.idea.configuration.* -import org.jetbrains.kotlin.idea.versions.* +import org.jetbrains.kotlin.idea.configuration.getModulesWithKotlinFiles +import org.jetbrains.kotlin.idea.configuration.showConfigureKotlinNotificationIfNeeded +import org.jetbrains.kotlin.idea.project.getAndCacheLanguageLevelByDependencies +import org.jetbrains.kotlin.idea.versions.collectModulesWithOutdatedRuntime +import org.jetbrains.kotlin.idea.versions.findOutdatedKotlinLibraries +import org.jetbrains.kotlin.idea.versions.notifyOutdatedKotlinRuntime import java.util.concurrent.atomic.AtomicInteger class KotlinConfigurationCheckerComponent protected constructor(project: Project) : AbstractProjectComponent(project) { @@ -38,6 +42,10 @@ class KotlinConfigurationCheckerComponent protected constructor(project: Project StartupManager.getInstance(myProject).registerPostStartupActivity { DumbService.getInstance(myProject).smartInvokeLater { + for (module in getModulesWithKotlinFiles(myProject)) { + module.getAndCacheLanguageLevelByDependencies() + } + val libraries = findOutdatedKotlinLibraries(myProject) if (!libraries.isEmpty()) { notifyOutdatedKotlinRuntime(myProject, libraries) diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/FacetConfigurator.kt b/idea/src/org/jetbrains/kotlin/idea/facet/FacetConfigurator.kt index 939db23d6f5..a2144daa1bb 100644 --- a/idea/src/org/jetbrains/kotlin/idea/facet/FacetConfigurator.kt +++ b/idea/src/org/jetbrains/kotlin/idea/facet/FacetConfigurator.kt @@ -29,8 +29,6 @@ import com.intellij.openapi.editor.Editor import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.Project -import com.intellij.openapi.roots.PlatformModifiableModelsProvider -import com.intellij.openapi.roots.ui.configuration.DefaultModulesProvider import com.intellij.openapi.startup.StartupManager import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiFile @@ -38,7 +36,6 @@ import com.intellij.psi.search.GlobalSearchScope import com.intellij.util.indexing.FileBasedIndex import com.intellij.util.ui.update.MergingUpdateQueue import com.intellij.util.ui.update.Update -import org.jetbrains.kotlin.utils.ifEmpty import java.util.* // Based on com.intellij.framework.detection.impl.FrameworkDetectionManager @@ -124,6 +121,7 @@ class FacetConfigurator( if (!shouldDetect) return shouldDetect = false + /* val index = FileBasedIndex.getInstance() val newDescriptions = ArrayList() val oldDescriptions = ArrayList() @@ -139,10 +137,17 @@ class FacetConfigurator( if (FrameworkDetectionUtil.removeDisabled(newDescriptions, oldDescriptions).isEmpty()) return val validFrameworks = getValidDetectedFrameworks().ifEmpty { return } + for (validFramework in validFrameworks) { + if (validFramework is FacetBasedDetectedFrameworkDescription<*, *>) { + val module = ModuleManager.getInstance(myProject).findModuleByName(validFramework.get) + } + + } FrameworkDetectionUtil.setupFrameworks(frameworks, PlatformModifiableModelsProvider(), DefaultModulesProvider(myProject)) for (framework in validFrameworks) { myDetectedFrameworksData!!.putExistentFrameworkFiles(id, framework.relatedFiles) } + */ } private fun runDetector(detectorId: Int?,