From 3b8f47d34775f473fdb12825217bfa5d0d3f99cb Mon Sep 17 00:00:00 2001 From: Aydar Mukhametzyanov Date: Fri, 31 Oct 2025 14:03:55 +0100 Subject: [PATCH] Revert "[Kotlin] KTIJ-35916 Use WorkspaceModelChangeListener instead of WorkspaceModel.eventLog" This reverts commit d346f21edc8ee2a6f8e18cb4b2da441a28a09b90. GitOrigin-RevId: 22fbf73fd98219a43a6769fd411ed139081a0460 --- .../KotlinForwardDeclarationsModelChangeService.kt | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/base/projectStructure/forwardDeclarations/KotlinForwardDeclarationsModelChangeService.kt b/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/base/projectStructure/forwardDeclarations/KotlinForwardDeclarationsModelChangeService.kt index a2170390959b..14d95d97d94b 100644 --- a/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/base/projectStructure/forwardDeclarations/KotlinForwardDeclarationsModelChangeService.kt +++ b/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/base/projectStructure/forwardDeclarations/KotlinForwardDeclarationsModelChangeService.kt @@ -9,13 +9,10 @@ import com.intellij.openapi.roots.impl.libraries.LibraryEx import com.intellij.openapi.startup.ProjectActivity import com.intellij.openapi.vfs.VirtualFile import com.intellij.platform.backend.workspace.WorkspaceModel -import com.intellij.platform.backend.workspace.WorkspaceModelChangeListener -import com.intellij.platform.backend.workspace.WorkspaceModelTopics import com.intellij.platform.workspace.jps.entities.LibraryEntity import com.intellij.platform.workspace.jps.entities.modifyLibraryEntity import com.intellij.platform.workspace.storage.EntityChange import com.intellij.platform.workspace.storage.ImmutableEntityStorage -import com.intellij.platform.workspace.storage.VersionedStorageChange import com.intellij.platform.workspace.storage.impl.url.toVirtualFileUrl import com.intellij.util.PathUtil import com.intellij.workspaceModel.ide.impl.legacyBridge.library.findLibraryBridge @@ -39,16 +36,15 @@ import java.io.File @Service(Service.Level.PROJECT) internal class KotlinForwardDeclarationsModelChangeService(private val project: Project, cs: CoroutineScope) { init { - val busConnection = project.messageBus.connect() - busConnection.subscribe(WorkspaceModelTopics.CHANGED, object : WorkspaceModelChangeListener { - override fun changed(event: VersionedStorageChange) { + cs.launch { + WorkspaceModel.getInstance(project).eventLog.collect { event -> val fwdDeclarationChanges = event.getChanges() cleanUp(fwdDeclarationChanges) - val libraryChanges = event.getChanges().ifEmpty { return } + val libraryChanges = event.getChanges().ifEmpty { return@collect } val nativeKlibs: Map = - libraryChanges.toNativeKLibs(event.storageAfter).ifEmpty { return } + libraryChanges.toNativeKLibs(event.storageAfter).ifEmpty { return@collect } val workspaceModel = WorkspaceModel.getInstance(project) val createEntityStorageChanges = createEntityStorageChanges(workspaceModel, nativeKlibs) @@ -67,7 +63,7 @@ internal class KotlinForwardDeclarationsModelChangeService(private val project: } } } - }) + } } private fun cleanUp(fwdDeclarationChanges: List>) {