From 8f749d452470ec638a1374c23a8ef836666958d5 Mon Sep 17 00:00:00 2001 From: samgst-amazon Date: Wed, 19 Mar 2025 19:35:37 -0700 Subject: [PATCH 1/2] fix oldUri for FileRename param --- .../lsp/workspace/WorkspaceServiceHandler.kt | 27 ++++++++++++++----- .../workspace/WorkspaceServiceHandlerTest.kt | 14 +++++----- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandler.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandler.kt index 25fee69adc6..8b95f96ed09 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandler.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandler.kt @@ -128,13 +128,12 @@ class WorkspaceServiceHandler( val validRenames = events .filter { it.propertyName == VirtualFile.PROP_NAME } .mapNotNull { event -> - val file = event.file.takeIf { shouldHandleFile(it) } ?: return@mapNotNull null - if (event.newValue !is String) return@mapNotNull null + val renamedFile = event.file.takeIf { shouldHandleFile(it) } ?: return@mapNotNull null + val oldFileName = event.oldValue as? String ?: return@mapNotNull null + val parentFile = renamedFile.parent ?: return@mapNotNull null - // Construct old and new URIs - val parentFile = file.parent ?: return@mapNotNull null - val oldUri = toUriString(parentFile) - val newUri = toUriString(file) + val oldUri = toUriString(parentFile)?.let { parentUri -> "$parentUri/$oldFileName" } + val newUri = toUriString(renamedFile) FileRename().apply { this.oldUri = oldUri @@ -248,6 +247,22 @@ class WorkspaceServiceHandler( } } + private fun createFileRename( + parentFile: VirtualFile, + oldFileName: String, + newFile: VirtualFile + ): FileRename? { + val oldUri = toUriString(parentFile)?.let { parentUri -> "$parentUri/$oldFileName" } + val newUri = toUriString(newFile) + + if (oldUri == null || newUri == null) return null + + return FileRename().apply { + this.oldUri = oldUri + this.newUri = newUri + } + } + private fun shouldHandleFile(file: VirtualFile): Boolean { if (file.isDirectory) { return true // Matches "**/*" with matches: "folder" diff --git a/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandlerTest.kt b/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandlerTest.kt index d12527ff790..0435a5c167d 100644 --- a/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandlerTest.kt +++ b/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandlerTest.kt @@ -393,8 +393,8 @@ class WorkspaceServiceHandlerTest { val paramsSlot = slot() verify { mockWorkspaceService.didRenameFiles(capture(paramsSlot)) } with(paramsSlot.captured.files[0]) { - assertEquals(normalizeFileUri("file:///test/$oldName"), oldUri) - assertEquals(normalizeFileUri("file:///test/$newName"), newUri) + assertEquals(normalizeFileUri("file:///testDir/$oldName"), oldUri) + assertEquals(normalizeFileUri("file:///testDir/$newName"), newUri) } } @@ -430,8 +430,8 @@ class WorkspaceServiceHandlerTest { val paramsSlot = slot() verify { mockWorkspaceService.didRenameFiles(capture(paramsSlot)) } with(paramsSlot.captured.files[0]) { - assertEquals(normalizeFileUri("file:///test/oldDir"), oldUri) - assertEquals(normalizeFileUri("file:///test/newDir"), newUri) + assertEquals(normalizeFileUri("file:///testDir/oldDir"), oldUri) + assertEquals(normalizeFileUri("file:///testDir/newDir"), newUri) } } @@ -648,10 +648,10 @@ class WorkspaceServiceHandlerTest { newName: String, isDirectory: Boolean = false, ): VFilePropertyChangeEvent { - val oldUri = URI("file:///test/$oldName") - val newUri = URI("file:///test/$newName") + val parent = createMockVirtualFile(URI("file:///testDir/"), "testDir", true) + val newUri = URI("file:///testDir/$newName") val file = createMockVirtualFile(newUri, newName, isDirectory) - every { file.parent } returns createMockVirtualFile(oldUri, oldName, isDirectory) + every { file.parent } returns parent return mockk().apply { every { propertyName } returns VirtualFile.PROP_NAME From d4dea79e574d6cc78d911e0af3909f295b3210ae Mon Sep 17 00:00:00 2001 From: samgst-amazon Date: Wed, 19 Mar 2025 19:38:52 -0700 Subject: [PATCH 2/2] unused function --- .../lsp/workspace/WorkspaceServiceHandler.kt | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandler.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandler.kt index 8b95f96ed09..1cba809683d 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandler.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandler.kt @@ -247,22 +247,6 @@ class WorkspaceServiceHandler( } } - private fun createFileRename( - parentFile: VirtualFile, - oldFileName: String, - newFile: VirtualFile - ): FileRename? { - val oldUri = toUriString(parentFile)?.let { parentUri -> "$parentUri/$oldFileName" } - val newUri = toUriString(newFile) - - if (oldUri == null || newUri == null) return null - - return FileRename().apply { - this.oldUri = oldUri - this.newUri = newUri - } - } - private fun shouldHandleFile(file: VirtualFile): Boolean { if (file.isDirectory) { return true // Matches "**/*" with matches: "folder"