diff --git a/base/src/com/google/idea/blaze/base/qsync/QuerySync.java b/base/src/com/google/idea/blaze/base/qsync/QuerySync.java index e203b938629..2655b805a6c 100644 --- a/base/src/com/google/idea/blaze/base/qsync/QuerySync.java +++ b/base/src/com/google/idea/blaze/base/qsync/QuerySync.java @@ -33,6 +33,10 @@ public class QuerySync { private static final Supplier COMPOSE_ENABLED = Suppliers.memoize(new BoolExperiment("aswb.query.sync.enable.compose", false)::getValue); + /** Enabled sync before build for Query Sync. */ + private static final Supplier SYNC_BEFORE_BUILD_ENABLED = + Suppliers.memoize(new BoolExperiment("query.sync.before.build", false)::getValue); + private QuerySync() {} public static boolean isEnabled() { @@ -43,6 +47,10 @@ public static boolean isComposeEnabled() { return isEnabled() && COMPOSE_ENABLED.get(); } + public static boolean isSyncBeforeBuildEnabled() { + return SYNC_BEFORE_BUILD_ENABLED.get(); + } + public static void assertNotEnabled(String reason) { if (isEnabled()) { NotSupportedWithQuerySyncException e = new NotSupportedWithQuerySyncException(reason); diff --git a/base/src/com/google/idea/blaze/base/qsync/settings/QuerySyncConfigurable.java b/base/src/com/google/idea/blaze/base/qsync/settings/QuerySyncConfigurable.java index b37bf9eb0f8..12430080129 100644 --- a/base/src/com/google/idea/blaze/base/qsync/settings/QuerySyncConfigurable.java +++ b/base/src/com/google/idea/blaze/base/qsync/settings/QuerySyncConfigurable.java @@ -15,6 +15,7 @@ */ package com.google.idea.blaze.base.qsync.settings; +import com.google.idea.blaze.base.qsync.QuerySync; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.util.NlsContexts.ConfigurableName; @@ -41,7 +42,12 @@ public QuerySyncConfigurable() { panel.add(displayDetailsText); syncBeforeBuild = new JBCheckBox("Sync automatically before building dependencies"); - panel.add(syncBeforeBuild); + if (QuerySync.isSyncBeforeBuildEnabled()) { + panel.add(syncBeforeBuild); + } else { + // Disable sync before build if the experiment is disabled + syncBeforeBuild.setSelected(false); + } } @Override diff --git a/base/src/com/google/idea/blaze/base/qsync/settings/QuerySyncSettings.java b/base/src/com/google/idea/blaze/base/qsync/settings/QuerySyncSettings.java index a8e87ff9377..b1b764bc724 100644 --- a/base/src/com/google/idea/blaze/base/qsync/settings/QuerySyncSettings.java +++ b/base/src/com/google/idea/blaze/base/qsync/settings/QuerySyncSettings.java @@ -15,6 +15,7 @@ */ package com.google.idea.blaze.base.qsync.settings; +import com.google.idea.blaze.base.qsync.QuerySync; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.components.State; @@ -30,7 +31,7 @@ public class QuerySyncSettings implements PersistentStateComponent