Skip to content

Commit 3c07c5b

Browse files
authored
feat(amazonq): pass workspaceIdentifier when initializing AmazonQLanguageServer (#5725)
AmazonQ LSP needs an identifier for the IDE workspace, which should be stable and unique for each workspace, regardless of IDE restarts or system reboots. Related `aws/language-server-runtimes` change: - aws/language-server-runtimes#497 Use `Project.getBasePath()` as such an identifier and pass it when initializing AmazonQ language server. Similar change on `aws/aws-toolkit-vscode` side: - aws/aws-toolkit-vscode#7291
1 parent de9b460 commit 3c07c5b

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ private class AmazonQServerInstance(private val project: Project, private val cs
244244
capabilities = createClientCapabilities()
245245
clientInfo = createClientInfo()
246246
workspaceFolders = createWorkspaceFolders(project)
247-
initializationOptions = createExtendedClientMetadata()
247+
initializationOptions = createExtendedClientMetadata(project)
248248
}
249249

250250
init {

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/ExtendedClientMetadata.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
package software.aws.toolkits.jetbrains.services.amazonq.lsp.model
55

6+
import com.intellij.openapi.project.Project
67
import software.aws.toolkits.jetbrains.services.telemetry.ClientMetadata
78

89
data class ExtendedClientMetadata(
@@ -12,6 +13,7 @@ data class ExtendedClientMetadata(
1213
data class AwsMetadata(
1314
val clientInfo: ClientInfoMetadata,
1415
val awsClientCapabilities: AwsClientCapabilities,
16+
val contextConfiguration: ContextConfiguration?,
1517
)
1618

1719
data class AwsClientCapabilities(
@@ -34,7 +36,11 @@ data class ExtensionMetadata(
3436
val version: String,
3537
)
3638

37-
fun createExtendedClientMetadata(): ExtendedClientMetadata {
39+
data class ContextConfiguration(
40+
val workspaceIdentifier: String?,
41+
)
42+
43+
fun createExtendedClientMetadata(project: Project): ExtendedClientMetadata {
3844
val metadata = ClientMetadata.getDefault()
3945
return ExtendedClientMetadata(
4046
aws = AwsMetadata(
@@ -51,6 +57,9 @@ fun createExtendedClientMetadata(): ExtendedClientMetadata {
5157
q = DeveloperProfiles(
5258
developerProfiles = true
5359
)
60+
),
61+
contextConfiguration = ContextConfiguration(
62+
workspaceIdentifier = project.getBasePath()
5463
)
5564
)
5665
)

0 commit comments

Comments
 (0)