mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Revert "IJPL-339 [psi] send children-move events on moving file"
This reverts commit 3680be174243072188b696534941cffb1bce3396. GitOrigin-RevId: 0661fdb84b10b5f75897e349346e0998b52756f2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5c40728544
commit
ca0e6a3af9
@@ -451,38 +451,24 @@ private class PsiVFSListener(private val project: Project) {
|
||||
}
|
||||
|
||||
ApplicationManager.getApplication().runWriteAction(ExternalChangeActionUtil.externalChangeAction {
|
||||
val treeEvent = PsiTreeChangeEventImpl(manager)
|
||||
val isExcluded = vFile.isDirectory && Registry.`is`("ide.hide.excluded.files") && myProjectRootManager.fileIndex.isExcluded(vFile)
|
||||
if (oldParentDir != null && !isExcluded) {
|
||||
|
||||
// a list of:
|
||||
// - one or several not-null PsiFiles
|
||||
// - one not-null PsiDirectory
|
||||
// - single 'null' if corresponding PsiDirectory or PsiFile cannot be created
|
||||
val eventChildren: List<PsiFileSystemItem?> = if (vFile.isDirectory) {
|
||||
listOf(fileManager.findDirectory(vFile))
|
||||
val eventChild = if (vFile.isDirectory) fileManager.findDirectory(vFile) else fileManager.findFile(vFile)
|
||||
treeEvent.child = eventChild
|
||||
if (newParentDir != null) {
|
||||
treeEvent.oldParent = oldParentDir
|
||||
treeEvent.newParent = newParentDir
|
||||
manager.beforeChildMovement(treeEvent)
|
||||
}
|
||||
else {
|
||||
fileManager.getCachedPsiFiles(vFile).ifEmpty { listOf(fileManager.findFile(vFile)) }
|
||||
}
|
||||
|
||||
for (eventChild in eventChildren) {
|
||||
val treeEvent = PsiTreeChangeEventImpl(manager)
|
||||
treeEvent.child = eventChild
|
||||
if (newParentDir != null) {
|
||||
treeEvent.oldParent = oldParentDir
|
||||
treeEvent.newParent = newParentDir
|
||||
manager.beforeChildMovement(treeEvent)
|
||||
}
|
||||
else {
|
||||
treeEvent.parent = oldParentDir
|
||||
manager.beforeChildRemoval(treeEvent)
|
||||
}
|
||||
treeEvent.parent = oldParentDir
|
||||
manager.beforeChildRemoval(treeEvent)
|
||||
}
|
||||
}
|
||||
else {
|
||||
// checked above
|
||||
LOG.assertTrue(newParentDir != null)
|
||||
val treeEvent = PsiTreeChangeEventImpl(manager)
|
||||
treeEvent.parent = newParentDir
|
||||
manager.beforeChildAddition(treeEvent)
|
||||
}
|
||||
|
||||
-16
@@ -40,7 +40,6 @@ internal class MultiversePsiEventTest {
|
||||
private val module2 = projectFixture.moduleFixture("m2")
|
||||
|
||||
private val sourceRoot = sharedSourceRootFixture(module1, module2)
|
||||
private val sourceRoot2 = sharedSourceRootFixture(module1, module2)
|
||||
|
||||
@Suppress("unused")
|
||||
private val registerFakeLang = testFixture {
|
||||
@@ -267,21 +266,6 @@ internal class MultiversePsiEventTest {
|
||||
expectedEventNumber = 2
|
||||
)
|
||||
|
||||
@Test
|
||||
fun `test we receive 2 before-child-moved events on moving a file with 2 psi files`() = doChangeTest(
|
||||
listenerFactory = { counter ->
|
||||
object : PsiTreeChangeAdapter() {
|
||||
override fun beforeChildMovement(event: PsiTreeChangeEvent) {
|
||||
counter.incrementAndGet()
|
||||
}
|
||||
}
|
||||
},
|
||||
updateBlock = { file ->
|
||||
file.move(this, sourceRoot2.get().virtualFile)
|
||||
},
|
||||
expectedEventNumber = 2
|
||||
)
|
||||
|
||||
private fun doChangeTest(
|
||||
listenerFactory: (AtomicInteger) -> PsiTreeChangeListener,
|
||||
updateBlock: (file: VirtualFile) -> Unit,
|
||||
|
||||
Reference in New Issue
Block a user