diff --git a/platform/configuration-store-impl/src/SchemeManagerFactoryImpl.kt b/platform/configuration-store-impl/src/SchemeManagerFactoryImpl.kt index 5282da4dd23d..03147608c7f1 100644 --- a/platform/configuration-store-impl/src/SchemeManagerFactoryImpl.kt +++ b/platform/configuration-store-impl/src/SchemeManagerFactoryImpl.kt @@ -13,6 +13,7 @@ import com.intellij.openapi.options.SchemeManagerFactory import com.intellij.openapi.options.SchemeProcessor import com.intellij.openapi.project.Project import com.intellij.util.SmartList +import com.intellij.util.ThreeState import com.intellij.util.containers.ContainerUtil import com.intellij.util.lang.CompoundRuntimeException import org.jetbrains.annotations.TestOnly @@ -36,9 +37,10 @@ sealed class SchemeManagerFactoryBase : SchemeManagerFactory(), SettingsSavingCo streamProvider: StreamProvider?, directoryPath: Path?, isAutoSave: Boolean, - isUseVfs: Boolean): SchemeManager { + isUseVfs: ThreeState): SchemeManager { val path = checkPath(directoryName) val messageBus = componentManager?.messageBus + val isUseVfsEffective = if (isUseVfs == ThreeState.UNSURE) this.isUseVfs else isUseVfs.toBoolean() val manager = SchemeManagerImpl(path, processor, streamProvider ?: (componentManager?.stateStore?.storageManager as? StateStorageManagerImpl)?.compoundStreamProvider, @@ -46,7 +48,7 @@ sealed class SchemeManagerFactoryBase : SchemeManagerFactory(), SettingsSavingCo roamingType, presentableName, schemeNameToFileName, - if (isUseVfs && messageBus != null && (streamProvider == null || !streamProvider.isApplicable(path, roamingType))) messageBus else null) + if (isUseVfsEffective && messageBus != null && (streamProvider == null || !streamProvider.isApplicable(path, roamingType))) messageBus else null) if (isAutoSave) { @Suppress("UNCHECKED_CAST") managers.add(manager as SchemeManagerImpl) diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt index 2687d9ae104d..559e298f60f3 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.kt @@ -107,7 +107,7 @@ open class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persi isShared = false, isWrapSchemeIntoComponentElement = false), streamProvider = workspaceSchemeManagerProvider, - isAutoSave = false, isUseVfs = false) + isAutoSave = false, isUseVfs = ThreeState.NO) @Suppress("LeakingThis") private var projectSchemeManager = SchemeManagerFactory.getInstance(project).create("runConfigurations", diff --git a/platform/projectModel-impl/src/com/intellij/openapi/options/scheme.kt b/platform/projectModel-impl/src/com/intellij/openapi/options/scheme.kt index 38070f9d9138..1a6e0b8694f4 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/options/scheme.kt +++ b/platform/projectModel-impl/src/com/intellij/openapi/options/scheme.kt @@ -7,6 +7,7 @@ import com.intellij.configurationStore.StreamProvider import com.intellij.openapi.components.RoamingType import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.project.Project +import com.intellij.util.ThreeState import org.jdom.Parent import java.nio.file.Path @@ -42,7 +43,7 @@ abstract class SchemeManagerFactory { streamProvider: StreamProvider? = null, directoryPath: Path? = null, isAutoSave: Boolean = true, - isUseVfs: Boolean = true): SchemeManager + isUseVfs: ThreeState = ThreeState.UNSURE): SchemeManager open fun dispose(schemeManager: SchemeManager<*>) { } diff --git a/platform/testFramework/src/com/intellij/testFramework/MockSchemeManagerFactory.kt b/platform/testFramework/src/com/intellij/testFramework/MockSchemeManagerFactory.kt index cf854e2d9f33..8f5cc034bb03 100644 --- a/platform/testFramework/src/com/intellij/testFramework/MockSchemeManagerFactory.kt +++ b/platform/testFramework/src/com/intellij/testFramework/MockSchemeManagerFactory.kt @@ -8,6 +8,7 @@ import com.intellij.openapi.options.EmptySchemesManager import com.intellij.openapi.options.SchemeManager import com.intellij.openapi.options.SchemeManagerFactory import com.intellij.openapi.options.SchemeProcessor +import com.intellij.util.ThreeState import java.nio.file.Path private val EMPTY = EmptySchemesManager() @@ -21,7 +22,7 @@ class MockSchemeManagerFactory : SchemeManagerFactory() { streamProvider: StreamProvider?, directoryPath: Path?, isAutoSave: Boolean, - isUseVfs: Boolean): SchemeManager { + isUseVfs: ThreeState): SchemeManager { @Suppress("UNCHECKED_CAST") return EMPTY as SchemeManager }