Skip to content

Commit d06c867

Browse files
authored
Merge branch 'feature/q-lsp' into rli/resolve-artifact-with-override
2 parents b855364 + b179b37 commit d06c867

File tree

14 files changed

+156
-11
lines changed

14 files changed

+156
-11
lines changed

.changes/3.58.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"date" : "2025-03-06",
3+
"version" : "3.58",
4+
"entries" : [ {
5+
"type" : "bugfix",
6+
"description" : "Amazon Q: Fix data isolation between tabs to prevent interference when using /doc in multiple tabs"
7+
}, {
8+
"type" : "removal",
9+
"description" : "The Amazon Q inline suggestion popup goes back to being under the suggestions and is always showing."
10+
} ]
11+
}

.changes/next-release/bugfix-79596dfc-37a0-44c8-adf2-a6c87ba806ac.json

Lines changed: 0 additions & 4 deletions
This file was deleted.

.changes/next-release/removal-5b5b9cf3-701c-48b5-b232-96e726a9a860.json

Lines changed: 0 additions & 4 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# _3.58_ (2025-03-06)
2+
- **(Bug Fix)** Amazon Q: Fix data isolation between tabs to prevent interference when using /doc in multiple tabs
3+
- **(Removal)** The Amazon Q inline suggestion popup goes back to being under the suggestions and is always showing.
4+
15
# _3.57_ (2025-02-28)
26
- **(Bug Fix)** Fix suggestion not visible in remote for 2024.3
37
- **(Bug Fix)** /test: update capability card text

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
# Toolkit Version
5-
toolkitVersion=3.58-SNAPSHOT
5+
toolkitVersion=3.59-SNAPSHOT
66

77
# Publish Settings
88
publishToken=

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ mockitoKotlin = "5.4.0"
2727
mockk = "1.13.10"
2828
nimbus-jose-jwt = "9.40"
2929
node-gradle = "7.0.2"
30-
telemetryGenerator = "1.0.301"
30+
telemetryGenerator = "1.0.307"
3131
testLogger = "4.0.0"
3232
testRetry = "1.5.10"
3333
# test-only; platform provides slf4j transitively at runtime

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class BrowserConnector(
6767
it.elementId(source.asText())
6868
}
6969
} else if (module != null && trigger != null) {
70-
Telemetry.toolkit.openModule.use {
70+
Telemetry.toolkit.willOpenModule.use {
7171
it.module(module.asText())
7272
it.source(trigger.asText())
7373
}

plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererSettingsTest.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,22 @@ import com.intellij.openapi.wm.impl.status.widget.StatusBarWidgetsManager
1313
import com.intellij.testFramework.replaceService
1414
import com.intellij.testFramework.runInEdtAndWait
1515
import com.intellij.util.xmlb.XmlSerializer
16+
import io.mockk.every
17+
import io.mockk.junit4.MockKRule
18+
import io.mockk.mockkObject
1619
import org.assertj.core.api.Assertions.assertThat
1720
import org.jdom.output.XMLOutputter
1821
import org.junit.Before
1922
import org.junit.Ignore
23+
import org.junit.Rule
2024
import org.junit.Test
2125
import org.mockito.kotlin.any
2226
import org.mockito.kotlin.never
2327
import org.mockito.kotlin.spy
2428
import org.mockito.kotlin.verify
2529
import org.mockito.kotlin.whenever
2630
import software.aws.toolkits.jetbrains.core.ToolWindowHeadlessManagerImpl
31+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService
2732
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererLoginType
2833
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExploreActionState
2934
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
@@ -40,6 +45,9 @@ class CodeWhispererSettingsTest : CodeWhispererTestBase() {
4045
private lateinit var codewhispererServiceSpy: CodeWhispererService
4146
private lateinit var toolWindowHeadlessManager: ToolWindowHeadlessManagerImpl
4247

48+
@get:Rule
49+
val mockkRule = MockKRule(this)
50+
4351
@Before
4452
override fun setUp() {
4553
super.setUp()
@@ -212,6 +220,18 @@ class CodeWhispererSettingsTest : CodeWhispererTestBase() {
212220
assertThat(actual.autoBuildSetting).hasSize(1)
213221
assertThat(actual.autoBuildSetting["project1"]).isTrue()
214222
}
223+
224+
@Test
225+
fun `toggleMetricOptIn should trigger LSP didChangeConfiguration`() {
226+
mockkObject(AmazonQLspService)
227+
every { AmazonQLspService.didChangeConfiguration(any()) } returns Unit
228+
settingsManager.toggleMetricOptIn(true)
229+
settingsManager.toggleMetricOptIn(false)
230+
231+
io.mockk.verify(atLeast = 2) {
232+
AmazonQLspService.didChangeConfiguration(any())
233+
}
234+
}
215235
}
216236

217237
class CodeWhispererSettingUnitTest {

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import org.eclipse.lsp4j.PublishDiagnosticsParams
1212
import org.eclipse.lsp4j.ShowMessageRequestParams
1313
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.ConnectionMetadata
1414
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.SsoProfileData
15+
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
1516
import java.util.concurrent.CompletableFuture
1617

1718
/**
@@ -58,6 +59,17 @@ class AmazonQLanguageClientImpl : AmazonQLanguageClient {
5859

5960
return CompletableFuture.completedFuture(
6061
buildList {
62+
params.items.forEach {
63+
when (it.section) {
64+
AmazonQLspConstants.LSP_CW_CONFIGURATION_KEY -> {
65+
add(
66+
CodeWhispererLspConfiguration(
67+
shouldShareData = CodeWhispererSettings.getInstance().isMetricOptIn()
68+
)
69+
)
70+
}
71+
}
72+
}
6173
}
6274
)
6375
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
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
5+
6+
object AmazonQLspConstants {
7+
const val LSP_CW_CONFIGURATION_KEY = "aws.codeWhisperer"
8+
const val LSP_CW_OPT_OUT_KEY = "shareCodeWhispererContentWithAWS"
9+
}

0 commit comments

Comments
 (0)