Skip to content

feat(amazonq): client emits insertToCursorPosition when user selects option from chat #5590

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 28 commits into from
Apr 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
fe7738d
Set up Flare chat connection
manodnyab Apr 9, 2025
c09368c
Merge branch 'feature/q-lsp' into manodnyb/setupChatComponentsWithFlare
manodnyab Apr 9, 2025
9d037cf
Partial chat results
manodnyab Apr 9, 2025
e259071
Merge remote-tracking branch 'origin/manodnyb/setupChatComponentsWith…
manodnyab Apr 9, 2025
bc6823b
feedback
manodnyab Apr 10, 2025
b833b6c
resolved merge conflict
manodnyab Apr 10, 2025
fb9fd25
detekt
manodnyab Apr 10, 2025
46b9a82
Merge branch 'feature/q-lsp-chat' into manodnyb/setupChatComponentsWi…
manodnyab Apr 10, 2025
06dc03d
syntax error
manodnyab Apr 10, 2025
0f16cd4
Merge remote-tracking branch 'origin/manodnyb/setupChatComponentsWith…
manodnyab Apr 11, 2025
21e4885
detekt
manodnyab Apr 11, 2025
06e0966
detekt
manodnyab Apr 11, 2025
8640432
Add quick actions to chat
manodnyab Apr 11, 2025
930fff6
merge conflicts resolved
manodnyab Apr 14, 2025
28a199e
adding commands from initialize result
manodnyab Apr 14, 2025
98a43b5
added trace logging
manodnyab Apr 14, 2025
a7cc967
emit copyCodeToClipboard for chat
samgst-amazon Apr 16, 2025
0ad53e6
emit insertToCursorPosition for chat
samgst-amazon Apr 16, 2025
69e05e2
Merge remote-tracking branch 'origin/feature/q-lsp-chat' into samgst/…
samgst-amazon Apr 21, 2025
a2b80df
feedback
samgst-amazon Apr 21, 2025
ab2100c
Merge remote-tracking branch 'origin/feature/q-lsp-chat' into samgst/…
samgst-amazon Apr 21, 2025
46c12b6
feedback
samgst-amazon Apr 21, 2025
3a1d52d
Merge remote-tracking branch 'origin/feature/q-lsp-chat' into samgst/…
samgst-amazon Apr 22, 2025
18f1567
Merge remote-tracking branch 'origin/feature/q-lsp-chat' into samgst/…
samgst-amazon Apr 22, 2025
418ad45
Merge branch 'feature/q-lsp-chat' into samgst/q-chat-copy-to-clipboard
samgst-amazon Apr 25, 2025
df033c2
Merge branch 'samgst/q-chat-copy-to-clipboard' into samgst/q-chat-ins…
samgst-amazon Apr 25, 2025
e654064
Merge branch 'feature/q-lsp-chat' into samgst/q-chat-insertToCursorPo…
samgst-amazon Apr 25, 2025
9793814
Merge branch 'feature/q-lsp-chat' into samgst/q-chat-insertToCursorPo…
samgst-amazon Apr 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INSERT_TO_CURSOR
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_PROMPT_OPTION_ACKNOWLEDGED
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
Expand All @@ -61,6 +62,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Follo
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickNotification
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InsertToCursorPositionNotification
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InsertToCursorPositionParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickNotification
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PROMPT_INPUT_OPTIONS_CHANGE
Expand Down Expand Up @@ -264,6 +267,11 @@ class BrowserConnector(
server.tabChange(params)
}
}
CHAT_INSERT_TO_CURSOR -> {
handleChatNotification<InsertToCursorPositionNotification, InsertToCursorPositionParams>(node) { server, params ->
server.insertToCursorPosition(params)
}
}
CHAT_LINK_CLICK -> {
handleChatNotification<LinkClickNotification, LinkClickParams>(node) { server, params ->
server.linkClick(params)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INSERT_TO_CURSOR_NOTIFICATION
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_LINK_CLICK
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_QUICK_ACTION
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_READY
Expand All @@ -30,6 +31,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Encry
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InsertToCursorPositionParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PROMPT_INPUT_OPTIONS_CHANGE
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeParams
Expand Down Expand Up @@ -78,6 +80,9 @@ interface AmazonQLanguageServer : LanguageServer {
@JsonRequest(CHAT_QUICK_ACTION)
fun sendQuickAction(params: EncryptedQuickActionChatParams): CompletableFuture<String>

@JsonNotification(CHAT_INSERT_TO_CURSOR_NOTIFICATION)
fun insertToCursorPosition(params: InsertToCursorPositionParams): CompletableFuture<Unit>

@JsonNotification(CHAT_FEEDBACK)
fun feedback(params: FeedbackParams): CompletableFuture<Unit>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@ const val CHAT_OPEN_TAB = "aws/chat/openTab"
const val CHAT_BUTTON_CLICK = "aws/chat/buttonClick"
const val CHAT_COPY_CODE_TO_CLIPBOARD = "copyToClipboard"
const val CHAT_COPY_CODE_TO_CLIPBOARD_NOTIFICATION = "aws/chat/copyCodeToClipboard"
const val CHAT_INSERT_TO_CURSOR = "insertToCursorPosition"
const val CHAT_INSERT_TO_CURSOR_NOTIFICATION = "aws/chat/insertToCursorPosition"
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat

import org.eclipse.lsp4j.Position
import org.eclipse.lsp4j.TextDocumentIdentifier

data class InsertToCursorPositionNotification(
override val command: String,
override val params: InsertToCursorPositionParams,
) : ChatNotification<InsertToCursorPositionParams>

data class InsertToCursorPositionParams(
val tabId: String,
val messageId: String,
val cursorPosition: Position? = null,
val textDocument: TextDocumentIdentifier? = null,
val code: String? = null,
val type: String? = null,
val referenceTrackerInformation: List<ReferenceTrackerInformation>? = null,
val eventId: String? = null,
val codeBlockIndex: Int? = null,
val totalCodeBlocks: Int? = null,
)
Loading