Skip to content

Commit e93c919

Browse files
feat(amazonq): client emits copyCodeToClipboard for chat copy events (#5589)
* Set up Flare chat connection * Partial chat results * feedback * detekt * syntax error * detekt * detekt * Add quick actions to chat * adding commands from initialize result * added trace logging * emit copyCodeToClipboard for chat * feedback --------- Co-authored-by: Manodnya Bhoite <[email protected]> Co-authored-by: manodnyab <[email protected]>
1 parent 2c607f8 commit e93c919

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Butto
3434
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ButtonClickParams
3535
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ButtonClickResult
3636
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_BUTTON_CLICK
37+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_COPY_CODE_TO_CLIPBOARD
3738
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
3839
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
3940
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
@@ -49,6 +50,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatN
4950
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatParams
5051
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatPrompt
5152
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatReadyNotification
53+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyCodeToClipboardNotification
54+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyCodeToClipboardParams
5255
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CursorState
5356
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
5457
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
@@ -307,6 +310,11 @@ class BrowserConnector(
307310
}
308311
}
309312
}
313+
CHAT_COPY_CODE_TO_CLIPBOARD -> {
314+
handleChatNotification<CopyCodeToClipboardNotification, CopyCodeToClipboardParams>(node) { server, params ->
315+
server.copyCodeToClipboard(params)
316+
}
317+
}
310318
}
311319
}
312320

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.UpdateConf
1313
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ButtonClickParams
1414
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ButtonClickResult
1515
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_BUTTON_CLICK
16+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_COPY_CODE_TO_CLIPBOARD_NOTIFICATION
1617
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
1718
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
1819
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
@@ -23,6 +24,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_
2324
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_ADD
2425
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_CHANGE
2526
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_REMOVE
27+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyCodeToClipboardParams
2628
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
2729
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
2830
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackParams
@@ -61,6 +63,9 @@ interface AmazonQLanguageServer : LanguageServer {
6163
@JsonRequest(SEND_CHAT_COMMAND_PROMPT)
6264
fun sendChatPrompt(params: EncryptedChatParams): CompletableFuture<String>
6365

66+
@JsonNotification(CHAT_COPY_CODE_TO_CLIPBOARD_NOTIFICATION)
67+
fun copyCodeToClipboard(params: CopyCodeToClipboardParams): CompletableFuture<Unit>
68+
6469
@JsonNotification(CHAT_TAB_ADD)
6570
fun tabAdd(params: TabEventParams): CompletableFuture<Unit>
6671

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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 CopyCodeToClipboardNotification(
7+
override val command: String,
8+
override val params: CopyCodeToClipboardParams,
9+
) : ChatNotification<CopyCodeToClipboardParams>
10+
11+
data class CopyCodeToClipboardParams(
12+
val tabId: String,
13+
val messageId: String,
14+
val code: String? = null,
15+
val type: String? = null,
16+
val referenceTrackerInformation: List<ReferenceTrackerInformation>? = null,
17+
val eventId: String? = null,
18+
val codeBlockIndex: Int? = null,
19+
val totalCodeBlocks: Int? = null,
20+
)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,5 @@ const val CHAT_TAB_CHANGE = "aws/chat/tabChange"
1818
const val CHAT_TAB_REMOVE = "aws/chat/tabRemove"
1919
const val CHAT_OPEN_TAB = "aws/chat/openTab"
2020
const val CHAT_BUTTON_CLICK = "aws/chat/buttonClick"
21+
const val CHAT_COPY_CODE_TO_CLIPBOARD = "copyToClipboard"
22+
const val CHAT_COPY_CODE_TO_CLIPBOARD_NOTIFICATION = "aws/chat/copyCodeToClipboard"

0 commit comments

Comments
 (0)