Skip to content

Commit 7590e9f

Browse files
Merge branch 'feature/q-lsp-chat' into samgst/q-lsp-chat-sendChatUpdate
2 parents 628afd3 + 0aa199a commit 7590e9f

File tree

5 files changed

+68
-6
lines changed

5 files changed

+68
-6
lines changed

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

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Butto
3737
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ButtonClickResult
3838
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_BUTTON_CLICK
3939
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_COPY_CODE_TO_CLIPBOARD
40+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_CREATE_PROMPT
41+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_DISCLAIMER_ACKNOWLEDGED
4042
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
43+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FILE_CLICK
4144
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
4245
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
4346
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INSERT_TO_CURSOR
@@ -55,11 +58,15 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatP
5558
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatReadyNotification
5659
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyCodeToClipboardNotification
5760
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyCodeToClipboardParams
61+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CreatePromptNotification
62+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CreatePromptParams
5863
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CursorState
5964
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
6065
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
6166
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackNotification
6267
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackParams
68+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FileClickNotification
69+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FileClickParams
6370
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickNotification
6471
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickParams
6572
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickNotification
@@ -105,7 +112,7 @@ class BrowserConnector(
105112
.onEach { json ->
106113
val node = serializer.toNode(json)
107114
when (node.command) {
108-
"disclaimer-acknowledged" -> {
115+
CHAT_DISCLAIMER_ACKNOWLEDGED -> {
109116
MeetQSettings.getInstance().disclaimerAcknowledged = true
110117
}
111118

@@ -287,33 +294,33 @@ class BrowserConnector(
287294
server.linkClick(params)
288295
}
289296
}
290-
291297
CHAT_INFO_LINK_CLICK -> {
292298
handleChatNotification<InfoLinkClickNotification, InfoLinkClickParams>(node) { server, params ->
293299
server.infoLinkClick(params)
294300
}
295301
}
296-
297302
CHAT_SOURCE_LINK_CLICK -> {
298303
handleChatNotification<SourceLinkClickNotification, SourceLinkClickParams>(node) { server, params ->
299304
server.sourceLinkClick(params)
300305
}
301306
}
302-
307+
CHAT_FILE_CLICK -> {
308+
handleChatNotification<FileClickNotification, FileClickParams>(node) { server, params ->
309+
server.fileClick(params)
310+
}
311+
}
303312
PROMPT_INPUT_OPTIONS_CHANGE -> {
304313
handleChatNotification<PromptInputOptionChangeNotification, PromptInputOptionChangeParams>(node) {
305314
server, params ->
306315
server.promptInputOptionsChange(params)
307316
}
308317
}
309-
310318
CHAT_PROMPT_OPTION_ACKNOWLEDGED -> {
311319
val acknowledgedMessage = node.get("params").get("messageId")
312320
if (acknowledgedMessage.asText() == "programmerModeCardId") {
313321
MeetQSettings.getInstance().amazonQChatPairProgramming = false
314322
}
315323
}
316-
317324
CHAT_FOLLOW_UP_CLICK -> {
318325
handleChatNotification<FollowUpClickNotification, FollowUpClickParams>(node) { server, params ->
319326
server.followUpClick(params)
@@ -333,6 +340,13 @@ class BrowserConnector(
333340
server.copyCodeToClipboard(params)
334341
}
335342
}
343+
344+
CHAT_CREATE_PROMPT -> {
345+
handleChatNotification<CreatePromptNotification, CreatePromptParams>(node) {
346+
server, params ->
347+
server.createPrompt(params)
348+
}
349+
}
336350
}
337351
}
338352

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
@@ -14,7 +14,9 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Butto
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
1616
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_COPY_CODE_TO_CLIPBOARD_NOTIFICATION
17+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_CREATE_PROMPT
1718
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FEEDBACK
19+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FILE_CLICK
1820
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
1921
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
2022
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INSERT_TO_CURSOR_NOTIFICATION
@@ -26,9 +28,11 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_
2628
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_CHANGE
2729
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_TAB_REMOVE
2830
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyCodeToClipboardParams
31+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CreatePromptParams
2932
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
3033
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
3134
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackParams
35+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FileClickParams
3236
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickParams
3337
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickParams
3438
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InsertToCursorPositionParams
@@ -104,6 +108,12 @@ interface AmazonQLanguageServer : LanguageServer {
104108
@JsonNotification(CHAT_FOLLOW_UP_CLICK)
105109
fun followUpClick(params: FollowUpClickParams): CompletableFuture<Unit>
106110

111+
@JsonNotification(CHAT_FILE_CLICK)
112+
fun fileClick(params: FileClickParams): CompletableFuture<Unit>
113+
107114
@JsonRequest(CHAT_BUTTON_CLICK)
108115
fun buttonClick(params: ButtonClickParams): CompletableFuture<ButtonClickResult>
116+
117+
@JsonNotification(CHAT_CREATE_PROMPT)
118+
fun createPrompt(params: CreatePromptParams): CompletableFuture<Unit>
109119
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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 CreatePromptParams(
7+
val promptName: String,
8+
)
9+
10+
data class CreatePromptNotification(
11+
override val command: String,
12+
override val params: CreatePromptParams,
13+
) : ChatNotification<CreatePromptParams>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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 FileClickNotification(
7+
override val command: String,
8+
override val params: FileClickParams,
9+
) : ChatNotification<FileClickParams>
10+
11+
data class FileClickParams(
12+
val tabId: String,
13+
val filePath: String,
14+
val action: FileAction? = null,
15+
val messageId: String? = null,
16+
val fullPath: String? = null,
17+
)
18+
19+
enum class FileAction {
20+
ACCEPT_CHANGE,
21+
REJECT_CHANGE,
22+
}

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
@@ -13,13 +13,16 @@ const val PROMPT_INPUT_OPTIONS_CHANGE = "aws/chat/promptInputOptionChange"
1313
const val CHAT_PROMPT_OPTION_ACKNOWLEDGED = "chatPromptOptionAcknowledged"
1414
const val CHAT_FEEDBACK = "aws/chat/feedback"
1515
const val CHAT_FOLLOW_UP_CLICK = "aws/chat/followUpClick"
16+
const val CHAT_FILE_CLICK = "aws/chat/fileClick"
1617
const val CHAT_TAB_ADD = "aws/chat/tabAdd"
1718
const val CHAT_TAB_CHANGE = "aws/chat/tabChange"
1819
const val CHAT_TAB_REMOVE = "aws/chat/tabRemove"
1920
const val CHAT_OPEN_TAB = "aws/chat/openTab"
2021
const val CHAT_BUTTON_CLICK = "aws/chat/buttonClick"
22+
const val CHAT_DISCLAIMER_ACKNOWLEDGED = "disclaimerAcknowledged"
2123
const val CHAT_COPY_CODE_TO_CLIPBOARD = "copyToClipboard"
2224
const val CHAT_COPY_CODE_TO_CLIPBOARD_NOTIFICATION = "aws/chat/copyCodeToClipboard"
2325
const val CHAT_INSERT_TO_CURSOR = "insertToCursorPosition"
2426
const val CHAT_INSERT_TO_CURSOR_NOTIFICATION = "aws/chat/insertToCursorPosition"
2527
const val CHAT_SEND_UPDATE = "aws/chat/sendChatUpdate"
28+
const val CHAT_CREATE_PROMPT = "aws/chat/createPrompt"

0 commit comments

Comments
 (0)