From 040f5f88f2540cac9f98c23308952d86cb56c262 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 14 Mar 2017 14:54:44 +0300 Subject: [PATCH] Configuration: Show warning in project settings if they'are overridden in some modules(s) --- .../KotlinCompilerConfigurableTab.form | 63 ++++++++++++++----- .../KotlinCompilerConfigurableTab.java | 24 +++++++ 2 files changed, 70 insertions(+), 17 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form index 704f6b2d12a..011708c90ae 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form @@ -1,24 +1,24 @@
- + - + - + - + - + - + @@ -37,7 +37,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -57,7 +57,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -134,7 +134,7 @@ - + @@ -147,7 +147,7 @@ - + @@ -186,7 +186,7 @@ - + @@ -239,10 +239,10 @@ - + - + @@ -286,7 +286,7 @@ - + @@ -336,6 +336,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java index eff453d49d8..5ee01dff486 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java @@ -20,6 +20,8 @@ import com.intellij.compiler.options.ComparingUtils; import com.intellij.compiler.server.BuildManager; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.fileChooser.FileChooserDescriptor; +import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SearchableConfigurable; @@ -48,6 +50,7 @@ import org.jetbrains.kotlin.config.*; import org.jetbrains.kotlin.idea.KotlinBundle; import org.jetbrains.kotlin.idea.PluginStartupComponent; import org.jetbrains.kotlin.idea.facet.DescriptionListCellRenderer; +import org.jetbrains.kotlin.idea.facet.KotlinFacet; import org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt; import javax.swing.*; @@ -109,6 +112,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co private JPanel scriptPanel; private JLabel labelForOutputPrefixFile; private JLabel labelForOutputPostfixFile; + private JLabel warningLabel; private boolean isEnabled = true; @@ -183,6 +187,26 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co generateSourceMapsCheckBox.setThirdStateEnabled(isMultiEditor); copyRuntimeFilesCheckBox.setThirdStateEnabled(isMultiEditor); keepAliveCheckBox.setThirdStateEnabled(isMultiEditor); + + if (isProjectSettings) { + List modulesOverridingProjectSettings = ArraysKt.mapNotNull( + ModuleManager.getInstance(project).getModules(), + new Function1() { + @Override + public String invoke(Module module) { + KotlinFacet facet = KotlinFacet.Companion.get(module); + if (facet == null) return null; + KotlinFacetSettings facetSettings = facet.getConfiguration().getSettings(); + if (facetSettings.getUseProjectSettings()) return null; + return "" + module.getName() + ""; + } + } + ); + if (!modulesOverridingProjectSettings.isEmpty()) { + warningLabel.setVisible(true); + warningLabel.setText("Following modules override project settings: " + StringUtil.join(modulesOverridingProjectSettings, ", ")); + } + } } @SuppressWarnings("unused")