Skip to content

Commit e163691

Browse files
authored
feat(amazonq): add OpenSettings params and notification models (#5682)
Add data classes for handling settings-related operations: - OpenSettingsParams for settings key parameters - OpenSettingsNotification for chat notifications - Add constant for workspace settings key
1 parent d46f890 commit e163691

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import com.fasterxml.jackson.databind.JsonNode
77
import com.google.gson.Gson
88
import com.intellij.ide.BrowserUtil
99
import com.intellij.ide.util.RunOnceUtil
10+
import com.intellij.openapi.application.runInEdt
11+
import com.intellij.openapi.options.ShowSettingsUtil
1012
import com.intellij.openapi.project.Project
1113
import com.intellij.ui.jcef.JBCefJSQuery.Response
1214
import kotlinx.coroutines.CompletableDeferred
@@ -85,6 +87,9 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Inser
8587
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickNotification
8688
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.LinkClickParams
8789
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ListConversationsRequest
90+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OPEN_SETTINGS
91+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OPEN_WORKSPACE_SETTINGS_KEY
92+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenSettingsNotification
8893
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.OpenTabResponse
8994
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PROMPT_INPUT_OPTIONS_CHANGE
9095
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.PromptInputOptionChangeNotification
@@ -104,6 +109,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.util.command
104109
import software.aws.toolkits.jetbrains.services.amazonq.util.tabType
105110
import software.aws.toolkits.jetbrains.services.amazonq.webview.theme.AmazonQTheme
106111
import software.aws.toolkits.jetbrains.services.amazonq.webview.theme.ThemeBrowserAdapter
112+
import software.aws.toolkits.jetbrains.services.codewhisperer.settings.CodeWhispererConfigurable
107113
import software.aws.toolkits.jetbrains.settings.MeetQSettings
108114
import software.aws.toolkits.resources.AwsCoreBundle
109115
import software.aws.toolkits.telemetry.MetricResult
@@ -470,6 +476,13 @@ class BrowserConnector(
470476
)
471477
browser.postChat(uiMessage)
472478
}
479+
OPEN_SETTINGS -> {
480+
val openSettingsNotification = serializer.deserializeChatMessages<OpenSettingsNotification>(node)
481+
if (openSettingsNotification.params.settingKey != OPEN_WORKSPACE_SETTINGS_KEY) return
482+
runInEdt {
483+
ShowSettingsUtil.getInstance().showSettingsDialog(browser.project, CodeWhispererConfigurable::class.java)
484+
}
485+
}
473486
}
474487
}
475488

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ const val GET_SERIALIZED_CHAT_REQUEST_METHOD = "aws/chat/getSerializedChat"
3434
const val OPEN_FILE_DIFF = "aws/openFileDiff"
3535
const val CHAT_ERROR_PARAMS = "errorMessage"
3636
const val STOP_CHAT_RESPONSE = "stopChatResponse"
37+
const val OPEN_SETTINGS = "openSettings"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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 OpenSettingsParams(
7+
val settingKey: String,
8+
)
9+
10+
data class OpenSettingsNotification(
11+
override val command: String,
12+
override val params: OpenSettingsParams,
13+
) : ChatNotification<OpenSettingsParams>
14+
15+
const val OPEN_WORKSPACE_SETTINGS_KEY = "amazonQ.workspaceIndex"

0 commit comments

Comments
 (0)