diff --git a/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java b/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java index 8eff196eafb..797a865ee81 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java +++ b/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java @@ -21,11 +21,11 @@ import org.jetbrains.annotations.TestOnly; import java.util.List; public class IncrementalCompilation { - private static final String INCREMENTAL_COMPILATION_PROPERTY = "kotlin.incremental.compilation"; - private static final String INCREMENTAL_COMPILATION_JS_PROPERTY = "kotlin.incremental.compilation.js"; + public static final String INCREMENTAL_COMPILATION_JVM_PROPERTY = "kotlin.incremental.compilation"; + public static final String INCREMENTAL_COMPILATION_JS_PROPERTY = "kotlin.incremental.compilation.js"; public static boolean isEnabledForJvm() { - return "true".equals(System.getProperty(INCREMENTAL_COMPILATION_PROPERTY)); + return "true".equals(System.getProperty(INCREMENTAL_COMPILATION_JVM_PROPERTY)); } public static boolean isEnabledForJs() { @@ -34,7 +34,7 @@ public class IncrementalCompilation { @TestOnly public static void setIsEnabled(boolean value) { - System.setProperty(INCREMENTAL_COMPILATION_PROPERTY, String.valueOf(value)); + System.setProperty(INCREMENTAL_COMPILATION_JVM_PROPERTY, String.valueOf(value)); } @TestOnly @@ -43,7 +43,7 @@ public class IncrementalCompilation { } public static void toJvmArgs(List jvmArgs) { - if (isEnabledForJvm()) addJvmSystemFlag(jvmArgs, INCREMENTAL_COMPILATION_PROPERTY); + if (isEnabledForJvm()) addJvmSystemFlag(jvmArgs, INCREMENTAL_COMPILATION_JVM_PROPERTY); if (isEnabledForJs()) addJvmSystemFlag(jvmArgs, INCREMENTAL_COMPILATION_JS_PROPERTY); } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt index d2eab310c75..8e43765b0f9 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt @@ -23,12 +23,14 @@ import com.intellij.openapi.components.StoragePathMacros import com.intellij.util.xmlb.XmlSerializerUtil @State( - name = "KotlinCompilerWorkspaceSettings", - storages = arrayOf( - Storage(file = StoragePathMacros.WORKSPACE_FILE) - ) -) class KotlinCompilerWorkspaceSettings : PersistentStateComponent { + name = "KotlinCompilerWorkspaceSettings", + storages = arrayOf( + Storage(file = StoragePathMacros.WORKSPACE_FILE) + ) +) +class KotlinCompilerWorkspaceSettings : PersistentStateComponent { var preciseIncrementalEnabled: Boolean = true + var incrementalCompilationForJsEnabled: Boolean = false var enableDaemon: Boolean = true override fun getState(): KotlinCompilerWorkspaceSettings { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt index 188bea40f12..49342eaa0e8 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt @@ -17,15 +17,20 @@ package org.jetbrains.kotlin.idea.compiler.configuration import com.intellij.compiler.server.BuildProcessParametersProvider +import org.jetbrains.kotlin.config.IncrementalCompilation import org.jetbrains.kotlin.idea.PluginStartupComponent -class KotlinBuildProcessParametersProvider(private val compilerWorkspaceSettings: KotlinCompilerWorkspaceSettings, - private val kotlinPluginStartupComponent: PluginStartupComponent -): BuildProcessParametersProvider() { +class KotlinBuildProcessParametersProvider( + private val compilerWorkspaceSettings: KotlinCompilerWorkspaceSettings, + private val kotlinPluginStartupComponent: PluginStartupComponent +) : BuildProcessParametersProvider() { override fun getVMArguments(): MutableList { val res = arrayListOf() if (compilerWorkspaceSettings.preciseIncrementalEnabled) { - res.add("-Dkotlin.incremental.compilation=true") + res.add("-D" + IncrementalCompilation.INCREMENTAL_COMPILATION_JVM_PROPERTY + "=true") + } + if (compilerWorkspaceSettings.incrementalCompilationForJsEnabled) { + res.add("-D" + IncrementalCompilation.INCREMENTAL_COMPILATION_JS_PROPERTY + "=true") } if (compilerWorkspaceSettings.enableDaemon) { res.add("-Dkotlin.daemon.enabled") 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 ae3599781a4..b79037f4f26 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.form @@ -15,7 +15,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -38,13 +38,13 @@ - + - + @@ -52,13 +52,13 @@ - + - + @@ -66,7 +66,7 @@ - + @@ -76,7 +76,7 @@ - + @@ -85,7 +85,7 @@ - + @@ -94,7 +94,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -120,7 +120,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -136,10 +136,18 @@ - + + + + + + + + + @@ -247,12 +255,12 @@ - + - + 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 720d5f64857..d18575670e7 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java @@ -88,7 +88,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co private TextFieldWithBrowseButton outputDirectory; private ThreeStateCheckBox copyRuntimeFilesCheckBox; private ThreeStateCheckBox keepAliveCheckBox; - private JCheckBox enablePreciseIncrementalCheckBox; + private JCheckBox enableIncrementalCompilationForJvmCheckBox; + private JCheckBox enableIncrementalCompilationForJsCheckBox; private JComboBox moduleKindComboBox; private JCheckBox scriptDependenciesAutoReload; private JTextField scriptTemplatesField; @@ -438,7 +439,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co isModified(outputDirectory, compilerSettings.getOutputDirectoryForJsLibraryFiles()) || (compilerWorkspaceSettings != null && - (isModified(enablePreciseIncrementalCheckBox, compilerWorkspaceSettings.getPreciseIncrementalEnabled()) || + (isModified(enableIncrementalCompilationForJvmCheckBox, compilerWorkspaceSettings.getPreciseIncrementalEnabled()) || + isModified(enableIncrementalCompilationForJsCheckBox, compilerWorkspaceSettings.getIncrementalCompilationForJsEnabled()) || isModified(keepAliveCheckBox, compilerWorkspaceSettings.getEnableDaemon()))) || isModified(generateSourceMapsCheckBox, k2jsCompilerArguments.getSourceMap()) || @@ -528,7 +530,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co getScriptingSettings().setAutoReloadEnabled(scriptDependenciesAutoReload.isSelected()); if (compilerWorkspaceSettings != null) { - compilerWorkspaceSettings.setPreciseIncrementalEnabled(enablePreciseIncrementalCheckBox.isSelected()); + compilerWorkspaceSettings.setPreciseIncrementalEnabled(enableIncrementalCompilationForJvmCheckBox.isSelected()); + compilerWorkspaceSettings.setIncrementalCompilationForJsEnabled(enableIncrementalCompilationForJsCheckBox.isSelected()); boolean oldEnableDaemon = compilerWorkspaceSettings.getEnableDaemon(); compilerWorkspaceSettings.setEnableDaemon(keepAliveCheckBox.isSelected()); @@ -579,7 +582,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co outputDirectory.setText(compilerSettings.getOutputDirectoryForJsLibraryFiles()); if (compilerWorkspaceSettings != null) { - enablePreciseIncrementalCheckBox.setSelected(compilerWorkspaceSettings.getPreciseIncrementalEnabled()); + enableIncrementalCompilationForJvmCheckBox.setSelected(compilerWorkspaceSettings.getPreciseIncrementalEnabled()); + enableIncrementalCompilationForJsCheckBox.setSelected(compilerWorkspaceSettings.getIncrementalCompilationForJsEnabled()); keepAliveCheckBox.setSelected(compilerWorkspaceSettings.getEnableDaemon()); }