Skip to content

Commit 1881570

Browse files
committed
implement getConnectionMetadata
1 parent 660ee40 commit 1881570

File tree

2 files changed

+26
-7
lines changed

2 files changed

+26
-7
lines changed

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

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,17 @@
44
package software.aws.toolkits.jetbrains.services.amazonq.lsp
55

66
import com.intellij.notification.NotificationType
7+
import com.intellij.openapi.project.Project
78
import org.eclipse.lsp4j.ConfigurationParams
89
import org.eclipse.lsp4j.MessageActionItem
910
import org.eclipse.lsp4j.MessageParams
1011
import org.eclipse.lsp4j.MessageType
1112
import org.eclipse.lsp4j.PublishDiagnosticsParams
1213
import org.eclipse.lsp4j.ShowMessageRequestParams
14+
import software.aws.toolkits.core.TokenConnectionSettings
15+
import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection
16+
import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
17+
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
1318
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.ConnectionMetadata
1419
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.SsoProfileData
1520
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
@@ -18,7 +23,7 @@ import java.util.concurrent.CompletableFuture
1823
/**
1924
* Concrete implementation of [AmazonQLanguageClient] to handle messages sent from server
2025
*/
21-
class AmazonQLanguageClientImpl : AmazonQLanguageClient {
26+
class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageClient {
2227
override fun telemetryEvent(`object`: Any) {
2328
println(`object`)
2429
}
@@ -46,11 +51,25 @@ class AmazonQLanguageClientImpl : AmazonQLanguageClient {
4651
showMessage(message)
4752
}
4853

49-
override fun getConnectionMetadata() = CompletableFuture.completedFuture(
50-
ConnectionMetadata(
51-
SsoProfileData("TODO")
52-
)
53-
)
54+
override fun getConnectionMetadata(): CompletableFuture<ConnectionMetadata> =
55+
CompletableFuture.supplyAsync {
56+
val connection = ToolkitConnectionManager.getInstance(project)
57+
.activeConnectionForFeature(QConnection.getInstance())
58+
59+
when (connection) {
60+
is AwsBearerTokenConnection -> {
61+
ConnectionMetadata(
62+
SsoProfileData(connection.startUrl)
63+
)
64+
}
65+
else -> {
66+
// If no connection or not a bearer token connection
67+
ConnectionMetadata(
68+
SsoProfileData("")
69+
)
70+
}
71+
}
72+
}
5473

5574
override fun configuration(params: ConfigurationParams): CompletableFuture<List<Any>> {
5675
if (params.items.isEmpty()) {

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
@@ -264,7 +264,7 @@ private class AmazonQServerInstance(private val project: Project, private val cs
264264
launcherHandler.startNotify()
265265

266266
launcher = LSPLauncher.Builder<AmazonQLanguageServer>()
267-
.setLocalService(AmazonQLanguageClientImpl())
267+
.setLocalService(AmazonQLanguageClientImpl(project))
268268
.setRemoteInterface(AmazonQLanguageServer::class.java)
269269
.configureGson {
270270
// TODO: maybe need adapter for initialize:

0 commit comments

Comments
 (0)