diff --git a/platform/lang-impl/testSources/com/intellij/openapi/roots/ContentEntriesInRootModelTest.kt b/platform/lang-impl/testSources/com/intellij/openapi/roots/ContentEntriesInRootModelTest.kt index a774e35a29df..3e42ad128eb8 100644 --- a/platform/lang-impl/testSources/com/intellij/openapi/roots/ContentEntriesInRootModelTest.kt +++ b/platform/lang-impl/testSources/com/intellij/openapi/roots/ContentEntriesInRootModelTest.kt @@ -73,6 +73,19 @@ class ContentEntriesInRootModelTest { checkContentEntryConsistency(committedEntry) } + run { + val model = createModifiableModel(module) + model.removeContentEntry(model.contentEntries.single()) + val committed = commitModifiableRootModel(model) + assertThat(committed.contentEntries).isEmpty() + } + } + + @Test + fun `add remove excluded pattern`() { + val contentRoot = projectModel.baseProjectDir.newVirtualDirectory("content") + ModuleRootModificationUtil.addContentRoot(module, contentRoot) + run { val model = createModifiableModel(module) val entry = model.contentEntries.single() @@ -84,12 +97,24 @@ class ContentEntriesInRootModelTest { assertThat(committedEntry.file).isEqualTo(contentRoot) assertThat(committedEntry.excludePatterns).containsExactly("*.txt") } + + run { + val model = createModifiableModel(module) + val entry = model.contentEntries.single() + entry.addExcludePattern("*.xml") + entry.removeExcludePattern("*.txt") + assertThat(entry.excludePatterns).containsExactly("*.xml") + val committed = commitModifiableRootModel(model) + assertThat(committed.contentEntries.single().excludePatterns).containsExactly("*.xml") + } run { val model = createModifiableModel(module) - model.removeContentEntry(model.contentEntries.single()) + val entry = model.contentEntries.single() + entry.excludePatterns = listOf("*.js", "*.ts") + assertThat(entry.excludePatterns).containsExactly("*.js", "*.ts") val committed = commitModifiableRootModel(model) - assertThat(committed.contentEntries).isEmpty() + assertThat(committed.contentEntries.single().excludePatterns).containsExactly("*.js", "*.ts") } } diff --git a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/roots/ModifiableContentEntryBridge.kt b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/roots/ModifiableContentEntryBridge.kt index 1dd62bd0b5f4..cd420f1a8fe4 100644 --- a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/roots/ModifiableContentEntryBridge.kt +++ b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/roots/ModifiableContentEntryBridge.kt @@ -177,7 +177,7 @@ internal class ModifiableContentEntryBridge( override fun removeExcludePattern(pattern: String) { updateContentEntry { - excludedPatterns = mutableListOf() + excludedPatterns.remove(pattern) } }