From 249e5da53bdf29d5c324c12d3242599b5fdbdbca Mon Sep 17 00:00:00 2001 From: Dmitry Savvinov Date: Tue, 27 Aug 2019 16:14:30 +0300 Subject: [PATCH] Add internal action to toggle analysis mode ^KT-32562 Fixed --- idea/resources/META-INF/plugin-common.xml | 3 +++ ...atformCompositeAnalysisModeToggleAction.kt | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 idea/src/org/jetbrains/kotlin/idea/actions/internal/MultiplatformCompositeAnalysisModeToggleAction.kt diff --git a/idea/resources/META-INF/plugin-common.xml b/idea/resources/META-INF/plugin-common.xml index d2dd9536656..dd25f626673 100644 --- a/idea/resources/META-INF/plugin-common.xml +++ b/idea/resources/META-INF/plugin-common.xml @@ -149,6 +149,9 @@ + + diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/internal/MultiplatformCompositeAnalysisModeToggleAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/internal/MultiplatformCompositeAnalysisModeToggleAction.kt new file mode 100644 index 00000000000..b9e2a4d6e05 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/actions/internal/MultiplatformCompositeAnalysisModeToggleAction.kt @@ -0,0 +1,25 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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.actions.internal + +import com.intellij.openapi.actionSystem.AnActionEvent +import com.intellij.openapi.actionSystem.ToggleAction +import org.jetbrains.kotlin.idea.project.KotlinMultiplatformAnalysisModeComponent +import org.jetbrains.kotlin.idea.project.KotlinMultiplatformAnalysisModeComponent.Mode +import org.jetbrains.kotlin.idea.project.useCompositeAnalysis + +class MultiplatformCompositeAnalysisToggleAction : + ToggleAction("Toggle composite analysis mode for multiplatform", "Analyse modules with different platforms together", null) { + + override fun isSelected(e: AnActionEvent): Boolean = e.project?.useCompositeAnalysis == true + + override fun setSelected(e: AnActionEvent, state: Boolean) { + KotlinMultiplatformAnalysisModeComponent.setMode( + e.project ?: return, + if (state) Mode.COMPOSITE else Mode.SEPARATE + ) + } +} \ No newline at end of file