Skip to content

Commit 2fc63c1

Browse files
Merge branch 'feature/q-lsp-chat' into samsgt/q-lsp-chat-openTab-impl
2 parents ca8decb + 2bd4ccb commit 2fc63c1

File tree

5 files changed

+65
-5
lines changed

5 files changed

+65
-5
lines changed

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

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Butto
3838
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ButtonClickResult
3939
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_BUTTON_CLICK
4040
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_COPY_CODE_TO_CLIPBOARD
41+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_CREATE_PROMPT
4142
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
4244
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_FOLLOW_UP_CLICK
4345
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INFO_LINK_CLICK
4446
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CHAT_INSERT_TO_CURSOR
@@ -57,11 +59,15 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatP
5759
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatReadyNotification
5860
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyCodeToClipboardNotification
5961
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyCodeToClipboardParams
62+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CreatePromptNotification
63+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CreatePromptParams
6064
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CursorState
6165
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
6266
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
6367
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackNotification
6468
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackParams
69+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FileClickNotification
70+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FileClickParams
6571
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickNotification
6672
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FollowUpClickParams
6773
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.InfoLinkClickNotification
@@ -297,33 +303,33 @@ class BrowserConnector(
297303
server.linkClick(params)
298304
}
299305
}
300-
301306
CHAT_INFO_LINK_CLICK -> {
302307
handleChatNotification<InfoLinkClickNotification, InfoLinkClickParams>(node) { server, params ->
303308
server.infoLinkClick(params)
304309
}
305310
}
306-
307311
CHAT_SOURCE_LINK_CLICK -> {
308312
handleChatNotification<SourceLinkClickNotification, SourceLinkClickParams>(node) { server, params ->
309313
server.sourceLinkClick(params)
310314
}
311315
}
312-
316+
CHAT_FILE_CLICK -> {
317+
handleChatNotification<FileClickNotification, FileClickParams>(node) { server, params ->
318+
server.fileClick(params)
319+
}
320+
}
313321
PROMPT_INPUT_OPTIONS_CHANGE -> {
314322
handleChatNotification<PromptInputOptionChangeNotification, PromptInputOptionChangeParams>(node) {
315323
server, params ->
316324
server.promptInputOptionsChange(params)
317325
}
318326
}
319-
320327
CHAT_PROMPT_OPTION_ACKNOWLEDGED -> {
321328
val acknowledgedMessage = node.get("params").get("messageId")
322329
if (acknowledgedMessage.asText() == "programmerModeCardId") {
323330
MeetQSettings.getInstance().amazonQChatPairProgramming = false
324331
}
325332
}
326-
327333
CHAT_FOLLOW_UP_CLICK -> {
328334
handleChatNotification<FollowUpClickNotification, FollowUpClickParams>(node) { server, params ->
329335
server.followUpClick(params)
@@ -343,6 +349,13 @@ class BrowserConnector(
343349
server.copyCodeToClipboard(params)
344350
}
345351
}
352+
353+
CHAT_CREATE_PROMPT -> {
354+
handleChatNotification<CreatePromptNotification, CreatePromptParams>(node) {
355+
server, params ->
356+
server.createPrompt(params)
357+
}
358+
}
346359
}
347360
}
348361

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: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ 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"
@@ -22,3 +23,4 @@ const val CHAT_COPY_CODE_TO_CLIPBOARD = "copyToClipboard"
2223
const val CHAT_COPY_CODE_TO_CLIPBOARD_NOTIFICATION = "aws/chat/copyCodeToClipboard"
2324
const val CHAT_INSERT_TO_CURSOR = "insertToCursorPosition"
2425
const val CHAT_INSERT_TO_CURSOR_NOTIFICATION = "aws/chat/insertToCursorPosition"
26+
const val CHAT_CREATE_PROMPT = "aws/chat/createPrompt"

0 commit comments

Comments
 (0)