From 2ad4ab52fb2e3a5dfed61e040f2ba72d49fa8e69 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Thu, 2 Nov 2017 15:36:12 +0100 Subject: [PATCH] =?UTF-8?q?External=20storage=20=E2=80=94=20do=20not=20sto?= =?UTF-8?q?re=20external=20modules=20in=20the=20.idea/modules.xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/impl/ExternalModuleListStorage.kt | 13 +++++++++++-- .../openapi/module/impl/ModuleManagerImpl.java | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ExternalModuleListStorage.kt b/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ExternalModuleListStorage.kt index c1a6d91c9f00..69b6a2cf0d71 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ExternalModuleListStorage.kt +++ b/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ExternalModuleListStorage.kt @@ -6,6 +6,7 @@ import com.intellij.openapi.components.State import com.intellij.openapi.components.Storage import com.intellij.openapi.module.Module import com.intellij.openapi.project.Project +import com.intellij.openapi.project.isExternalStorageEnabled import com.intellij.openapi.roots.ExternalProjectSystemRegistry import com.intellij.openapi.roots.ProjectModelElement import com.intellij.openapi.roots.ProjectModelExternalSource @@ -18,8 +19,12 @@ internal class ExternalModuleListStorage(private val project: Project) : Persist override fun getState(): Element { val e = Element("state") + if (!project.isExternalStorageEnabled) { + return e + } + val moduleManager = ModuleManagerImpl.getInstanceImpl(project) - moduleManager.writeExternal(e, getFilteredModuleList(moduleManager.modules, true)) + moduleManager.writeExternal(e, getFilteredModuleList(project, moduleManager.modules, true)) return e } @@ -38,7 +43,11 @@ internal class ExternalModuleListStorage(private val project: Project) : Persist } } -fun getFilteredModuleList(modules: Array, isExternal: Boolean): List { +fun getFilteredModuleList(project: Project, modules: Array, isExternal: Boolean): List { + if (!project.isExternalStorageEnabled) { + return modules.asList() + } + val externalProjectSystemRegistry = ExternalProjectSystemRegistry.getInstance() return modules.filter { (externalProjectSystemRegistry.getExternalSource(it) != null) == isExternal } } \ No newline at end of file diff --git a/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java index 9cd27283b902..03f40655d69a 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java @@ -120,7 +120,7 @@ public abstract class ModuleManagerImpl extends ModuleManager implements Disposa @Override public Element getState() { final Element e = new Element("state"); - writeExternal(e, getFilteredModuleList(getModules(), false)); + writeExternal(e, getFilteredModuleList(myProject, getModules(), false)); return e; }