Skip to content

Commit 8fc2023

Browse files
Merge branch 'feature/q-lsp-chat' into samsgt/q-lsp-chat-openTab-impl
2 parents 11efa24 + 2982393 commit 8fc2023

File tree

4 files changed

+32
-0
lines changed

4 files changed

+32
-0
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33

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

6+
import org.eclipse.lsp4j.jsonrpc.services.JsonNotification
67
import org.eclipse.lsp4j.jsonrpc.services.JsonRequest
78
import org.eclipse.lsp4j.services.LanguageClient
9+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_UPDATE
10+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatUpdateParams
811
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabParams
912
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabResult
1013
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.ConnectionMetadata
@@ -20,4 +23,7 @@ interface AmazonQLanguageClient : LanguageClient {
2023

2124
@JsonRequest("aws/chat/openTab")
2225
fun openTab(params: OpenTabParams): CompletableFuture<OpenTabResult>
26+
27+
@JsonNotification(CHAT_SEND_UPDATE)
28+
fun sendChatUpdate(params: ChatUpdateParams): CompletableFuture<Unit>
2329
}

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
2828
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AsyncChatUiListener
2929
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatCommunicationManager
3030
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_OPEN_TAB
31+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_SEND_UPDATE
32+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatUpdateParams
3133
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabParams
3234
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabResult
3335
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.ConnectionMetadata
@@ -181,6 +183,19 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
181183
}
182184
}
183185

186+
override fun sendChatUpdate(params: ChatUpdateParams): CompletableFuture<Unit> {
187+
val uiMessage = """
188+
{
189+
"command":"$CHAT_SEND_UPDATE",
190+
"params":${Gson().toJson(params)}
191+
}
192+
""".trimIndent()
193+
194+
AsyncChatUiListener.notifyPartialMessageUpdate(uiMessage)
195+
196+
return CompletableFuture.completedFuture(Unit)
197+
}
198+
184199
companion object {
185200
private val LOG = getLogger<AmazonQLanguageClientImpl>()
186201
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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 ChatUpdateParams(
7+
val tabId: String,
8+
val state: TabState? = null,
9+
val data: TabData? = null,
10+
)

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ const val CHAT_COPY_CODE_TO_CLIPBOARD = "copyToClipboard"
2424
const val CHAT_COPY_CODE_TO_CLIPBOARD_NOTIFICATION = "aws/chat/copyCodeToClipboard"
2525
const val CHAT_INSERT_TO_CURSOR = "insertToCursorPosition"
2626
const val CHAT_INSERT_TO_CURSOR_NOTIFICATION = "aws/chat/insertToCursorPosition"
27+
const val CHAT_SEND_UPDATE = "aws/chat/sendChatUpdate"
2728
const val CHAT_CREATE_PROMPT = "aws/chat/createPrompt"

0 commit comments

Comments
 (0)