Skip to content

Commit 6846d85

Browse files
feat(amazonq): client emits insertToCursorPosition when user selects option from chat (#5590)
* 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 * emit insertToCursorPosition for chat * feedback * feedback --------- Co-authored-by: Manodnya Bhoite <[email protected]> Co-authored-by: manodnyab <[email protected]>
1 parent e93c919 commit 6846d85

File tree

4 files changed

+40
-0
lines changed

4 files changed

+40
-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
@@ -38,6 +38,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_
3838
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
3939
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
4040
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
41+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INSERT_TO_CURSOR
4142
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
4243
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_PROMPT_OPTION_ACKNOWLEDGED
4344
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
@@ -61,6 +62,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Follo
6162
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickParams
6263
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickNotification
6364
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
65+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InsertToCursorPositionNotification
66+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InsertToCursorPositionParams
6467
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickNotification
6568
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
6669
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PROMPT_INPUT_OPTIONS_CHANGE
@@ -264,6 +267,11 @@ class BrowserConnector(
264267
server.tabChange(params)
265268
}
266269
}
270+
CHAT_INSERT_TO_CURSOR -> {
271+
handleChatNotification<InsertToCursorPositionNotification, InsertToCursorPositionParams>(node) { server, params ->
272+
server.insertToCursorPosition(params)
273+
}
274+
}
267275
CHAT_LINK_CLICK -> {
268276
handleChatNotification<LinkClickNotification, LinkClickParams>(node) { server, params ->
269277
server.linkClick(params)

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
@@ -17,6 +17,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_
1717
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
1818
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
1919
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
20+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INSERT_TO_CURSOR_NOTIFICATION
2021
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
2122
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
2223
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_READY
@@ -30,6 +31,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Encry
3031
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackParams
3132
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickParams
3233
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
34+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InsertToCursorPositionParams
3335
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
3436
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PROMPT_INPUT_OPTIONS_CHANGE
3537
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeParams
@@ -78,6 +80,9 @@ interface AmazonQLanguageServer : LanguageServer {
7880
@JsonRequest(CHAT_QUICK_ACTION)
7981
fun sendQuickAction(params: EncryptedQuickActionChatParams): CompletableFuture<String>
8082

83+
@JsonNotification(CHAT_INSERT_TO_CURSOR_NOTIFICATION)
84+
fun insertToCursorPosition(params: InsertToCursorPositionParams): CompletableFuture<Unit>
85+
8186
@JsonNotification(CHAT_FEEDBACK)
8287
fun feedback(params: FeedbackParams): CompletableFuture<Unit>
8388

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
@@ -20,3 +20,5 @@ const val CHAT_OPEN_TAB = "aws/chat/openTab"
2020
const val CHAT_BUTTON_CLICK = "aws/chat/buttonClick"
2121
const val CHAT_COPY_CODE_TO_CLIPBOARD = "copyToClipboard"
2222
const val CHAT_COPY_CODE_TO_CLIPBOARD_NOTIFICATION = "aws/chat/copyCodeToClipboard"
23+
const val CHAT_INSERT_TO_CURSOR = "insertToCursorPosition"
24+
const val CHAT_INSERT_TO_CURSOR_NOTIFICATION = "aws/chat/insertToCursorPosition"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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+
import org.eclipse.lsp4j.Position
7+
import org.eclipse.lsp4j.TextDocumentIdentifier
8+
9+
data class InsertToCursorPositionNotification(
10+
override val command: String,
11+
override val params: InsertToCursorPositionParams,
12+
) : ChatNotification<InsertToCursorPositionParams>
13+
14+
data class InsertToCursorPositionParams(
15+
val tabId: String,
16+
val messageId: String,
17+
val cursorPosition: Position? = null,
18+
val textDocument: TextDocumentIdentifier? = null,
19+
val code: String? = null,
20+
val type: String? = null,
21+
val referenceTrackerInformation: List<ReferenceTrackerInformation>? = null,
22+
val eventId: String? = null,
23+
val codeBlockIndex: Int? = null,
24+
val totalCodeBlocks: Int? = null,
25+
)

0 commit comments

Comments
 (0)