Skip to content

Commit 3652c52

Browse files
Merge branch 'feature/q-lsp-chat' into samgst/q-lsp-telemetry
2 parents ff7f920 + 67bd41c commit 3652c52

File tree

9 files changed

+52
-40
lines changed

9 files changed

+52
-40
lines changed

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ data class AmazonQTheme(
3737
val warning: Color,
3838
val error: Color,
3939

40-
val cardBackground: Color,
41-
4240
val editorFont: Font,
4341
val editorBackground: Color,
4442
val editorForeground: Color,
@@ -49,5 +47,5 @@ data class AmazonQTheme(
4947
val editorKeyword: Color,
5048
val editorString: Color,
5149
val editorProperty: Color,
52-
50+
val editorClassName: Color,
5351
)

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ enum class CssVariable(
1313
FontFamily("--mynah-font-family"),
1414

1515
TextColorDefault("--mynah-color-text-default"),
16+
TextColorAlt("--mynah-color-text-alternate"),
1617
TextColorStrong("--mynah-color-text-strong"),
1718
TextColorWeak("--mynah-color-text-weak"),
1819
TextColorLink("--mynah-color-text-link"),
@@ -25,7 +26,7 @@ enum class CssVariable(
2526
ColorDeep("--mynah-color-deep"),
2627
ColorDeepReverse("--mynah-color-deep-reverse"),
2728
BorderDefault("--mynah-color-border-default"),
28-
InputBackground("--mynah-color-input-bg"),
29+
InputBackground("--mynah-input-bg"),
2930

3031
SyntaxBackground("--mynah-color-syntax-bg"),
3132
SyntaxVariable("--mynah-color-syntax-variable"),
@@ -36,6 +37,9 @@ enum class CssVariable(
3637
SyntaxProperty("--mynah-color-syntax-property"),
3738
SyntaxComment("--mynah-color-syntax-comment"),
3839
SyntaxCode("--mynah-color-syntax-code"),
40+
SyntaxKeyword("--mynah-color-syntax-keyword"),
41+
SyntaxString("--mynah-color-syntax-string"),
42+
SyntaxClassName("--mynah-color-syntax-class-name"),
3943
SyntaxCodeFontFamily("--mynah-syntax-code-font-family"),
4044
SyntaxCodeFontSize("--mynah-syntax-code-font-size"),
4145

@@ -50,10 +54,9 @@ enum class CssVariable(
5054
SecondaryButtonBackground("--mynah-color-alternate"),
5155
SecondaryButtonForeground("--mynah-color-alternate-reverse"),
5256

53-
CodeText("--mynah-color-code-text"),
54-
5557
MainBackground("--mynah-color-main"),
5658
MainForeground("--mynah-color-main-reverse"),
5759

5860
CardBackground("--mynah-card-bg"),
61+
CardBackgroundAlt("--mynah-card-bg-alternate"),
5962
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,18 +113,17 @@ class EditorThemeAdapter {
113113
warning = themeColor("Component.warningFocusColor", default = 0xE2A53A),
114114
error = themeColor("ProgressBar.failedColor", default = 0xD64F4F, darkDefault = 0xE74848),
115115

116-
cardBackground = cardBackground,
117-
118116
editorFont = currentScheme.getFont(EditorFontType.PLAIN),
119-
editorBackground = chatBackground,
120-
editorForeground = text,
117+
editorBackground = currentScheme.defaultBackground,
118+
editorForeground = currentScheme.defaultForeground,
121119
editorVariable = currentScheme.foregroundColor(DefaultLanguageHighlighterColors.LOCAL_VARIABLE),
122120
editorOperator = currentScheme.foregroundColor(DefaultLanguageHighlighterColors.OPERATION_SIGN),
123121
editorFunction = currentScheme.foregroundColor(DefaultLanguageHighlighterColors.FUNCTION_DECLARATION),
124122
editorComment = currentScheme.foregroundColor(DefaultLanguageHighlighterColors.LINE_COMMENT),
125123
editorKeyword = currentScheme.foregroundColor(DefaultLanguageHighlighterColors.KEYWORD),
126124
editorString = currentScheme.foregroundColor(DefaultLanguageHighlighterColors.STRING),
127125
editorProperty = currentScheme.foregroundColor(DefaultLanguageHighlighterColors.INSTANCE_FIELD),
126+
editorClassName = currentScheme.foregroundColor(DefaultLanguageHighlighterColors.CLASS_NAME),
128127
)
129128
}
130129

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,16 @@ class ThemeBrowserAdapter {
3535
append(CssVariable.FontFamily, theme.font.toCssFontFamily())
3636

3737
append(CssVariable.TextColorDefault, theme.defaultText)
38+
append(CssVariable.TextColorAlt, theme.defaultText)
3839
append(CssVariable.TextColorStrong, theme.textFieldForeground)
3940
append(CssVariable.TextColorInput, theme.textFieldForeground)
4041
append(CssVariable.TextColorLink, theme.linkText)
4142
append(CssVariable.TextColorWeak, theme.inactiveText)
4243

4344
append(CssVariable.Background, theme.background)
4445
append(CssVariable.BackgroundAlt, theme.background)
45-
append(CssVariable.CardBackground, theme.cardBackground)
46+
append(CssVariable.CardBackground, theme.editorBackground)
47+
append(CssVariable.CardBackgroundAlt, theme.editorBackground)
4648
append(CssVariable.BorderDefault, theme.border)
4749
append(CssVariable.TabActive, theme.activeTab)
4850

@@ -63,6 +65,7 @@ class ThemeBrowserAdapter {
6365

6466
append(CssVariable.SyntaxCodeFontFamily, theme.editorFont.toCssFontFamily("monospace"))
6567
append(CssVariable.SyntaxCodeFontSize, theme.editorFont.toCssSize())
68+
append(CssVariable.SyntaxCode, theme.editorForeground)
6669
append(CssVariable.SyntaxBackground, theme.editorBackground)
6770
append(CssVariable.SyntaxVariable, theme.editorVariable)
6871
append(CssVariable.SyntaxOperator, theme.editorOperator)
@@ -71,7 +74,9 @@ class ThemeBrowserAdapter {
7174
append(CssVariable.SyntaxAttributeValue, theme.editorKeyword)
7275
append(CssVariable.SyntaxAttribute, theme.editorString)
7376
append(CssVariable.SyntaxProperty, theme.editorProperty)
74-
append(CssVariable.SyntaxCode, theme.editorForeground)
77+
append(CssVariable.SyntaxKeyword, theme.editorKeyword)
78+
append(CssVariable.SyntaxString, theme.editorString)
79+
append(CssVariable.SyntaxClassName, theme.editorClassName)
7580

7681
append(CssVariable.MainBackground, theme.buttonBackground)
7782
append(CssVariable.MainForeground, theme.buttonForeground)

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqCodeTest/controller/CodeTestChatController.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitConte
5656
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthController
5757
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionReference
5858
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionReferencePosition
59+
import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage
5960
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager
6061
import software.aws.toolkits.jetbrains.services.amazonq.project.RelevantDocument
6162
import software.aws.toolkits.jetbrains.services.amazonqCodeTest.CodeWhispererUTGChatManager
@@ -110,6 +111,12 @@ import java.util.UUID
110111
import software.amazon.awssdk.services.codewhispererstreaming.model.Position as StreamingPosition
111112
import software.amazon.awssdk.services.codewhispererstreaming.model.Range as StreamingRange
112113

114+
data class TestCommandMessage(
115+
val sender: String = "codetest",
116+
val command: String = "test",
117+
val type: String = "addAnswer",
118+
) : AmazonQMessage
119+
113120
class CodeTestChatController(
114121
private val context: AmazonQAppInitContext,
115122
private val chatSessionStorage: ChatSessionStorage,

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/ActionRegistrar.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
3-
3+
@file:Suppress("BannedImports")
44
package software.aws.toolkits.jetbrains.services.cwc.commands
55

6+
import com.google.gson.Gson
67
import com.intellij.openapi.application.ApplicationManager
78
import com.intellij.openapi.project.Project
89
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -14,6 +15,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.Gener
1415
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SendToPromptParams
1516
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TriggerType
1617
import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage
18+
import software.aws.toolkits.jetbrains.services.amazonqCodeTest.controller.TestCommandMessage
1719
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ActiveFileContextExtractor
1820
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ExtractionTriggerType
1921

@@ -25,8 +27,7 @@ class ActionRegistrar {
2527

2628
fun reportMessageClick(command: EditorContextCommand, project: Project) {
2729
if (command == EditorContextCommand.GenerateUnitTests) {
28-
// pre-existing old chat code path
29-
_messages.tryEmit(ContextMenuActionMessage(command, project))
30+
AsyncChatUiListener.notifyPartialMessageUpdate(Gson().toJson(TestCommandMessage()))
3031
} else {
3132
// new agentic chat route
3233
ApplicationManager.getApplication().executeOnPooledThread {

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import software.aws.toolkits.jetbrains.core.coroutines.EDT
3838
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
3939
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthController
4040
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthNeededState
41-
import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage
4241
import software.aws.toolkits.jetbrains.services.amazonq.messages.MessagePublisher
4342
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteraction
4443
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType
@@ -52,7 +51,6 @@ import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.TriggerTy
5251
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.v1.ChatSessionFactoryV1
5352
import software.aws.toolkits.jetbrains.services.cwc.commands.CodeScanIssueActionMessage
5453
import software.aws.toolkits.jetbrains.services.cwc.commands.ContextMenuActionMessage
55-
import software.aws.toolkits.jetbrains.services.cwc.commands.EditorContextCommand
5654
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.StaticPrompt
5755
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.StaticTextResponse
5856
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.messenger.ChatPromptHandler
@@ -76,12 +74,6 @@ import software.aws.toolkits.jetbrains.services.cwc.storage.ChatSessionStorage
7674
import software.aws.toolkits.telemetry.CwsprChatCommandType
7775
import java.util.UUID
7876

79-
data class TestCommandMessage(
80-
val sender: String = "codetest",
81-
val command: String = "test",
82-
val type: String = "addAnswer",
83-
) : AmazonQMessage
84-
8577
class ChatController private constructor(
8678
private val context: AmazonQAppInitContext,
8779
private val chatSessionStorage: ChatSessionStorage,
@@ -285,16 +277,7 @@ class ChatController private constructor(
285277

286278
// JB specific (not in vscode)
287279
override suspend fun processContextMenuCommand(message: ContextMenuActionMessage) {
288-
// Extract context
289-
if (message.project != context.project) {
290-
return
291-
}
292-
293-
if (message.command == EditorContextCommand.GenerateUnitTests) {
294-
// Publish an event to "codetest" tab with command as "test" and type as "addAnswer"
295-
val messageToPublish = TestCommandMessage()
296-
context.messagesFromAppToUi.publish(messageToPublish)
297-
}
280+
// No-op since context commands are handled elsewhere. This function will be deprecated once we remove this class
298281
}
299282

300283
private suspend fun processPromptActions(

plugins/amazonq/mynah-ui/src/mynah-ui/ui/quickActions/handler.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ private handleDocCommand(chatPrompt: ChatPrompt, tabID: string, taskName: string
331331
this.showScanInTab(affectedTabId)
332332
}
333333

334-
private handleCodeTestCommand(chatPrompt: ChatPrompt, tabID: string, eventId: string | undefined) {
334+
private handleCodeTestCommand(chatPrompt: ChatPrompt, tabID: string | undefined, eventId: string | undefined) {
335335
if (!this.isCodeTestEnabled) {
336336
return
337337
}
@@ -343,10 +343,17 @@ private handleDocCommand(chatPrompt: ChatPrompt, tabID: string, taskName: string
343343
this.connector.startTestGen(testTabId, realPromptText)
344344
return
345345
}
346+
/**
347+
* right click -> generate test has no tab id
348+
* we have to manually create one if a testgen tab
349+
* wasn't previously created
350+
*/
351+
if (!tabID) {
352+
tabID = this.mynahUI?.updateStore('', {})
353+
}
346354
const affectedTabId: string | undefined = this.addTab(tabID)
347355

348356
// if there is no test tab, open a new one
349-
350357
if (affectedTabId === undefined) {
351358
this.mynahUI?.notify({
352359
content: uiComponentsTexts.noMoreTabsTooltip,

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLanguageClientImpl.kt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import com.intellij.diff.DiffContentFactory
77
import com.intellij.diff.DiffManager
88
import com.intellij.diff.DiffManagerEx
99
import com.intellij.diff.requests.SimpleDiffRequest
10-
import com.intellij.notification.NotificationType
1110
import com.intellij.openapi.application.ApplicationManager
1211
import com.intellij.openapi.fileChooser.FileChooserFactory
1312
import com.intellij.openapi.fileChooser.FileSaverDescriptor
@@ -25,8 +24,10 @@ import org.eclipse.lsp4j.PublishDiagnosticsParams
2524
import org.eclipse.lsp4j.ShowDocumentParams
2625
import org.eclipse.lsp4j.ShowDocumentResult
2726
import org.eclipse.lsp4j.ShowMessageRequestParams
27+
import org.slf4j.event.Level
2828
import software.aws.toolkits.core.utils.error
2929
import software.aws.toolkits.core.utils.getLogger
30+
import software.aws.toolkits.core.utils.info
3031
import software.aws.toolkits.core.utils.warn
3132
import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection
3233
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
@@ -103,11 +104,19 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
103104

104105
override fun showMessage(messageParams: MessageParams) {
105106
val type = when (messageParams.type) {
106-
MessageType.Error -> NotificationType.ERROR
107-
MessageType.Warning -> NotificationType.WARNING
108-
MessageType.Info, MessageType.Log -> NotificationType.INFORMATION
107+
MessageType.Error -> Level.ERROR
108+
MessageType.Warning -> Level.WARN
109+
MessageType.Info, MessageType.Log -> Level.INFO
109110
}
110-
println("$type: ${messageParams.message}")
111+
112+
if (type == Level.ERROR &&
113+
messageParams.message.lineSequence().firstOrNull()?.contains("NOTE: The AWS SDK for JavaScript (v2) is in maintenance mode.") == true
114+
) {
115+
LOG.info { "Suppressed Flare AWS JS SDK v2 EoL error message" }
116+
return
117+
}
118+
119+
LOG.atLevel(type).log(messageParams.message)
111120
}
112121

113122
override fun showMessageRequest(requestParams: ShowMessageRequestParams): CompletableFuture<MessageActionItem?>? {

0 commit comments

Comments
 (0)