Skip to content

Commit 8e1355f

Browse files
fix(amazonq): didRename emits full oldUri path (#5487)
* fix oldUri for FileRename param * unused function
1 parent c0de224 commit 8e1355f

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandler.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,12 @@ class WorkspaceServiceHandler(
128128
val validRenames = events
129129
.filter { it.propertyName == VirtualFile.PROP_NAME }
130130
.mapNotNull { event ->
131-
val file = event.file.takeIf { shouldHandleFile(it) } ?: return@mapNotNull null
132-
if (event.newValue !is String) return@mapNotNull null
131+
val renamedFile = event.file.takeIf { shouldHandleFile(it) } ?: return@mapNotNull null
132+
val oldFileName = event.oldValue as? String ?: return@mapNotNull null
133+
val parentFile = renamedFile.parent ?: return@mapNotNull null
133134

134-
// Construct old and new URIs
135-
val parentFile = file.parent ?: return@mapNotNull null
136-
val oldUri = toUriString(parentFile)
137-
val newUri = toUriString(file)
135+
val oldUri = toUriString(parentFile)?.let { parentUri -> "$parentUri/$oldFileName" }
136+
val newUri = toUriString(renamedFile)
138137

139138
FileRename().apply {
140139
this.oldUri = oldUri

plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/workspace/WorkspaceServiceHandlerTest.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,8 @@ class WorkspaceServiceHandlerTest {
393393
val paramsSlot = slot<RenameFilesParams>()
394394
verify { mockWorkspaceService.didRenameFiles(capture(paramsSlot)) }
395395
with(paramsSlot.captured.files[0]) {
396-
assertEquals(normalizeFileUri("file:///test/$oldName"), oldUri)
397-
assertEquals(normalizeFileUri("file:///test/$newName"), newUri)
396+
assertEquals(normalizeFileUri("file:///testDir/$oldName"), oldUri)
397+
assertEquals(normalizeFileUri("file:///testDir/$newName"), newUri)
398398
}
399399
}
400400

@@ -430,8 +430,8 @@ class WorkspaceServiceHandlerTest {
430430
val paramsSlot = slot<RenameFilesParams>()
431431
verify { mockWorkspaceService.didRenameFiles(capture(paramsSlot)) }
432432
with(paramsSlot.captured.files[0]) {
433-
assertEquals(normalizeFileUri("file:///test/oldDir"), oldUri)
434-
assertEquals(normalizeFileUri("file:///test/newDir"), newUri)
433+
assertEquals(normalizeFileUri("file:///testDir/oldDir"), oldUri)
434+
assertEquals(normalizeFileUri("file:///testDir/newDir"), newUri)
435435
}
436436
}
437437

@@ -648,10 +648,10 @@ class WorkspaceServiceHandlerTest {
648648
newName: String,
649649
isDirectory: Boolean = false,
650650
): VFilePropertyChangeEvent {
651-
val oldUri = URI("file:///test/$oldName")
652-
val newUri = URI("file:///test/$newName")
651+
val parent = createMockVirtualFile(URI("file:///testDir/"), "testDir", true)
652+
val newUri = URI("file:///testDir/$newName")
653653
val file = createMockVirtualFile(newUri, newName, isDirectory)
654-
every { file.parent } returns createMockVirtualFile(oldUri, oldName, isDirectory)
654+
every { file.parent } returns parent
655655

656656
return mockk<VFilePropertyChangeEvent>().apply {
657657
every { propertyName } returns VirtualFile.PROP_NAME

0 commit comments

Comments
 (0)