Skip to content

Commit 8558948

Browse files
committed
add tabEvent message handling
1 parent 28a199e commit 8558948

File tree

4 files changed

+45
-0
lines changed

4 files changed

+45
-0
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.encryption.JwtEncryp
2929
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatCommunicationManager
3030
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.getTextDocumentIdentifier
3131
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
32+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_REMOVE
33+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_ADD
34+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_CHANGE
3235
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatParams
3336
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatPrompt
3437
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CursorState
@@ -37,6 +40,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Encry
3740
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.QuickChatActionRequest
3841
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SEND_CHAT_COMMAND_PROMPT
3942
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SendChatPromptRequest
43+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabEventParams
4044
import software.aws.toolkits.jetbrains.services.amazonq.util.command
4145
import software.aws.toolkits.jetbrains.services.amazonq.util.tabType
4246
import software.aws.toolkits.jetbrains.services.amazonq.webview.theme.AmazonQTheme
@@ -205,6 +209,26 @@ class BrowserConnector(
205209

206210
showResult(result, partialResultToken, tabId, encryptionManager, browser)
207211
}
212+
CHAT_TAB_ADD -> {
213+
val requestFromUi = serializer.deserializeChatMessages(node, TabEventParams::class.java)
214+
AmazonQLspService.executeIfRunning(project) { server ->
215+
server.tabAdd(requestFromUi)
216+
} ?: CompletableFuture.failedFuture<Unit>(IllegalStateException("LSP Server not running"))
217+
}
218+
CHAT_TAB_REMOVE -> {
219+
val requestFromUi = serializer.deserializeChatMessages(node, TabEventParams::class.java)
220+
AmazonQLspService.executeIfRunning(project) { server ->
221+
server.tabRemove(requestFromUi).thenRun {
222+
chatCommunicationManager.removePartialChatMessage(requestFromUi.tabId)
223+
}
224+
} ?: CompletableFuture.failedFuture<Unit>(IllegalStateException("LSP Server not running"))
225+
}
226+
CHAT_TAB_CHANGE -> {
227+
val requestFromUi = serializer.deserializeChatMessages(node, TabEventParams::class.java)
228+
AmazonQLspService.executeIfRunning(project) { server ->
229+
server.tabChange(requestFromUi)
230+
} ?: CompletableFuture.failedFuture<Unit>(IllegalStateException("LSP Server not running"))
231+
}
208232
}
209233
}
210234

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.GetConfigu
1111
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.LspServerConfigurations
1212
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
1313
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
14+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabEventParams
1415
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.UpdateCredentialsPayload
1516
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams
1617
import java.util.concurrent.CompletableFuture
@@ -37,4 +38,13 @@ interface AmazonQLanguageServer : LanguageServer {
3738

3839
@JsonRequest("aws/chat/sendChatQuickAction")
3940
fun sendQuickAction(params: EncryptedQuickActionChatParams): CompletableFuture<String>
41+
42+
@JsonNotification("aws/chat/tabAdd")
43+
fun tabAdd(params: TabEventParams): CompletableFuture<Unit>
44+
45+
@JsonNotification("aws/chat/tabRemove")
46+
fun tabRemove(params: TabEventParams): CompletableFuture<Unit>
47+
48+
@JsonNotification("aws/chat/tabChange")
49+
fun tabChange(params: TabEventParams): CompletableFuture<Unit>
4050
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,6 @@ package software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat
55

66
const val SEND_CHAT_COMMAND_PROMPT = "aws/chat/sendChatPrompt"
77
const val CHAT_QUICK_ACTION = "aws/chat/sendChatQuickAction"
8+
const val CHAT_TAB_ADD = "aws/chat/tabAdd"
9+
const val CHAT_TAB_CHANGE = "aws/chat/tabChange"
10+
const val CHAT_TAB_REMOVE = "aws/chat/tabRemove"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat
5+
6+
data class TabEventParams(
7+
val tabId: String
8+
)

0 commit comments

Comments
 (0)