Skip to content

Commit 29c7b1b

Browse files
committed
send openTab to browser
1 parent 81b4d79 commit 29c7b1b

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

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

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

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

6+
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
67
import com.intellij.notification.NotificationType
78
import com.intellij.openapi.project.Project
89
import migration.software.aws.toolkits.jetbrains.settings.AwsSettings
@@ -16,9 +17,11 @@ import org.eclipse.lsp4j.ShowMessageRequestParams
1617
import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection
1718
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
1819
import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
20+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AsyncChatUiListener
1921
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatCommunicationManager
2022
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabParams
2123
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabResult
24+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_OPEN_TAB
2225
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.ConnectionMetadata
2326
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.SsoProfileData
2427
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
@@ -76,9 +79,24 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
7679
}
7780
}
7881

79-
override fun openTab(params: OpenTabParams): CompletableFuture<OpenTabResult> =
80-
// TODO implement chat history, this is here to unblock chat functionality
81-
CompletableFuture.completedFuture(OpenTabResult(""))
82+
override fun openTab(params: OpenTabParams): CompletableFuture<OpenTabResult> {
83+
val tabId = params.tabId.orEmpty()
84+
85+
// Convert params to JSON to send to the UI
86+
val paramsJson = jacksonObjectMapper().writeValueAsString(params)
87+
88+
val uiMessage = ChatCommunicationManager.convertToJsonToSendToChat(
89+
command = CHAT_OPEN_TAB,
90+
tabId = tabId,
91+
params = paramsJson,
92+
isPartialResult = false
93+
)
94+
95+
AsyncChatUiListener.notifyPartialMessageUpdate(uiMessage)
96+
97+
// Return the tabId (either existing or newly created)
98+
return CompletableFuture.completedFuture(OpenTabResult(tabId))
99+
}
82100

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

0 commit comments

Comments
 (0)