diff --git a/.changes/next-release/bugfix-9e318f1e-baa7-4d10-98de-edfa70fcd7e0.json b/.changes/next-release/bugfix-9e318f1e-baa7-4d10-98de-edfa70fcd7e0.json new file mode 100644 index 00000000000..fab94b286b6 --- /dev/null +++ b/.changes/next-release/bugfix-9e318f1e-baa7-4d10-98de-edfa70fcd7e0.json @@ -0,0 +1,4 @@ +{ + "type" : "bugfix", + "description" : "`@workspace` cannot properly locate certain folders for certain project setup" +} \ No newline at end of file diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/editor/context/project/ProjectContextProvider.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/editor/context/project/ProjectContextProvider.kt index a31508f0b5e..1da61b93de2 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/editor/context/project/ProjectContextProvider.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/editor/context/project/ProjectContextProvider.kt @@ -8,8 +8,8 @@ import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import com.fasterxml.jackson.module.kotlin.readValue import com.intellij.openapi.Disposable +import com.intellij.openapi.project.BaseProjectDirectories.Companion.getBaseDirectories import com.intellij.openapi.project.Project -import com.intellij.openapi.project.guessProjectDir import com.intellij.openapi.vfs.VfsUtilCore import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFileVisitor @@ -130,7 +130,7 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En } private fun initEncryption(): Boolean { - logger.info { "project context: init key for ${project.guessProjectDir()} on port ${encoderServer.port}" } + logger.info { "project context: init key for ${project.name} on port ${encoderServer.port}" } val url = URL("http://localhost:${encoderServer.port}/initialize") val payload = encoderServer.getEncryptionRequest() val connection = url.openConnection() as HttpURLConnection @@ -148,7 +148,7 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En var duration = (System.currentTimeMillis() - indexStartTime).toDouble() logger.debug { "project context file collection time: ${duration}ms" } logger.debug { "list of files collected: ${filesResult.files.joinToString("\n")}" } - val projectRoot = project.guessProjectDir()?.path ?: return false + val projectRoot = project.basePath ?: return false val payload = IndexRequestPayload(filesResult.files, projectRoot, false) val payloadJson = mapper.writeValueAsString(payload) val encrypted = encoderServer.encrypt(payloadJson) @@ -275,7 +275,7 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En var currentTotalFileSize = 0L val featureDevSessionContext = FeatureDevSessionContext(project) val allFiles = mutableListOf() - project.guessProjectDir()?.let { + project.getBaseDirectories().forEach { VfsUtilCore.visitChildrenRecursively( it, object : VirtualFileVisitor(NO_FOLLOW_SYMLINKS) {