Skip to content

Commit f388807

Browse files
Merge branch 'main' into samgst/inline-completion-e2e
2 parents 7d6906f + 4685aa0 commit f388807

File tree

51 files changed

+237
-1203
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+237
-1203
lines changed

.changes/3.71.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"date" : "2025-05-15",
3+
"version" : "3.71",
4+
"entries" : [ {
5+
"type" : "feature",
6+
"description" : "Add inline completion support for abap language"
7+
}, {
8+
"type" : "bugfix",
9+
"description" : "Fix UI freezes that may occur when interacting with large files in the editor"
10+
} ]
11+
}

.changes/next-release/bugfix-1d632e06-24fa-40f1-a8ae-33cca0d86ec4.json

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "removal",
3+
"description" : "/transform: remove option to receive multiple diffs"
4+
}

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# _3.71_ (2025-05-15)
2+
- **(Feature)** Add inline completion support for abap language
3+
- **(Bug Fix)** Fix UI freezes that may occur when interacting with large files in the editor
4+
15
# _3.70_ (2025-05-08)
26
- **(Feature)** Amazon Q: Support selecting customizations across all Q profiles with automatic profile switching for enterprise users
37
- **(Bug Fix)** Do not always show 'Amazon Q Code Issues' tab when switching to the 'Problems' tool window

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.71-SNAPSHOT
5+
toolkitVersion=3.72-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
@@ -28,7 +28,7 @@ mockitoKotlin = "5.4.0"
2828
mockk = "1.13.17"
2929
nimbus-jose-jwt = "9.40"
3030
node-gradle = "7.0.2"
31-
telemetryGenerator = "1.0.310"
31+
telemetryGenerator = "1.0.322"
3232
testLogger = "4.0.0"
3333
testRetry = "1.5.10"
3434
# test-only; platform provides slf4j transitively at runtime

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/ArtifactHandler.kt

Lines changed: 10 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.CODE_TRANSFORM_TROUBLESH
3030
import software.aws.toolkits.jetbrains.services.amazonq.CODE_TRANSFORM_TROUBLESHOOT_DOC_DOWNLOAD_EXPIRED
3131
import software.aws.toolkits.jetbrains.services.codemodernizer.client.GumbyClient
3232
import software.aws.toolkits.jetbrains.services.codemodernizer.commands.CodeTransformMessageListener
33-
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.createViewDiffButton
3433
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.getDownloadedArtifactTextFromType
35-
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.viewSummaryButton
3634
import software.aws.toolkits.jetbrains.services.codemodernizer.controller.CodeTransformChatHelper
3735
import software.aws.toolkits.jetbrains.services.codemodernizer.messages.CodeTransformChatMessageContent
3836
import software.aws.toolkits.jetbrains.services.codemodernizer.messages.CodeTransformChatMessageType
@@ -43,14 +41,12 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.model.DownloadArt
4341
import software.aws.toolkits.jetbrains.services.codemodernizer.model.DownloadFailureReason
4442
import software.aws.toolkits.jetbrains.services.codemodernizer.model.JobId
4543
import software.aws.toolkits.jetbrains.services.codemodernizer.model.ParseZipFailureReason
46-
import software.aws.toolkits.jetbrains.services.codemodernizer.model.PatchInfo
4744
import software.aws.toolkits.jetbrains.services.codemodernizer.model.UnzipFailureReason
4845
import software.aws.toolkits.jetbrains.services.codemodernizer.state.CodeModernizerSessionState
4946
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getPathToHilArtifactDir
5047
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.isValidCodeTransformConnection
5148
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.openTroubleshootingGuideNotificationAction
5249
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.zipToPath
53-
import software.aws.toolkits.jetbrains.utils.notifyInfo
5450
import software.aws.toolkits.jetbrains.utils.notifyStickyInfo
5551
import software.aws.toolkits.jetbrains.utils.notifyStickyWarn
5652
import software.aws.toolkits.resources.message
@@ -63,20 +59,6 @@ import java.util.concurrent.atomic.AtomicBoolean
6359
const val DOWNLOAD_PROXY_WILDCARD_ERROR: String = "Dangling meta character '*' near index 0"
6460
const val DOWNLOAD_SSL_HANDSHAKE_ERROR: String = "Unable to execute HTTP request: javax.net.ssl.SSLHandshakeException"
6561
const val INVALID_ARTIFACT_ERROR: String = "Invalid artifact"
66-
val patchDescriptions = mapOf(
67-
"Prepare minimal upgrade to Java 17" to "This diff patch covers the set of upgrades for Springboot, JUnit, and PowerMockito frameworks in Java 17.",
68-
"Prepare minimal upgrade to Java 21" to "This diff patch covers the set of upgrades for Springboot, JUnit, and PowerMockito frameworks in Java 21.",
69-
"Popular Enterprise Specifications and Application Frameworks upgrade" to "This diff patch covers the set of upgrades for Jakarta EE 10, Hibernate 6.2, " +
70-
"and Micronaut 3.",
71-
"HTTP Client Utilities, Apache Commons Utilities, and Web Frameworks" to "This diff patch covers the set of upgrades for Apache HTTP Client 5, Apache " +
72-
"Commons utilities (Collections, IO, Lang, Math), and Struts 6.0.",
73-
"Testing Tools and Frameworks upgrade" to "This diff patch covers the set of upgrades for ArchUnit, Mockito, TestContainers, and Cucumber, in addition " +
74-
"to the Jenkins plugins and the Maven Wrapper.",
75-
"Miscellaneous Processing Documentation upgrade" to "This diff patch covers a diverse set of upgrades spanning ORMs, XML processing, API documentation, " +
76-
"and more.",
77-
"Deprecated API replacement, dependency upgrades, and formatting" to "This diff patch replaces deprecated APIs, makes additional dependency version " +
78-
"upgrades, and formats code changes."
79-
)
8062

8163
class ArtifactHandler(
8264
private val project: Project,
@@ -88,21 +70,13 @@ class ArtifactHandler(
8870
private val downloadedSummaries = mutableMapOf<JobId, TransformationSummary>()
8971
private val downloadedBuildLogPath = mutableMapOf<JobId, Path>()
9072
private var isCurrentlyDownloading = AtomicBoolean(false)
91-
private var totalPatchFiles: Int = 0
92-
private var sharedPatchIndex: Int = 0
9373

9474
internal suspend fun displayDiff(job: JobId) {
9575
if (isCurrentlyDownloading.get()) return
9676
when (val result = downloadArtifact(job, TransformationDownloadArtifactType.CLIENT_INSTRUCTIONS)) {
9777
is DownloadArtifactResult.Success -> {
9878
if (result.artifact !is CodeModernizerArtifact) return notifyUnableToApplyPatch("")
99-
totalPatchFiles = result.artifact.patches.size
100-
if (result.artifact.description == null) {
101-
displayDiffUsingPatch(result.artifact.patches.first(), totalPatchFiles, null, job)
102-
} else {
103-
val diffDescription = result.artifact.description[getCurrentPatchIndex()]
104-
displayDiffUsingPatch(result.artifact.patches[getCurrentPatchIndex()], totalPatchFiles, diffDescription, job)
105-
}
79+
displayDiffUsingPatch(result.artifact.patch, job)
10680
}
10781
is DownloadArtifactResult.ParseZipFailure -> notifyUnableToApplyPatch(result.failureReason.errorMessage)
10882
is DownloadArtifactResult.UnzipFailure -> notifyUnableToApplyPatch(result.failureReason.errorMessage)
@@ -260,8 +234,6 @@ class ArtifactHandler(
260234
*/
261235
internal suspend fun displayDiffUsingPatch(
262236
patchFile: VirtualFile,
263-
totalPatchFiles: Int,
264-
diffDescription: PatchInfo?,
265237
jobId: JobId,
266238
) {
267239
withContext(EDT) {
@@ -274,11 +246,7 @@ class ArtifactHandler(
274246
null,
275247
ChangeListManager.getInstance(project)
276248
.addChangeList(
277-
if (diffDescription != null) {
278-
"${diffDescription.name} (${if (diffDescription.isSuccessful) "Success" else "Failure"})"
279-
} else {
280-
patchFile.name
281-
},
249+
patchFile.name,
282250
""
283251
),
284252
null,
@@ -289,42 +257,12 @@ class ArtifactHandler(
289257
dialog.isModal = true
290258

291259
if (dialog.showAndGet()) {
292-
telemetry.submitSelection("Submit-${diffDescription?.name}", jobId.toString())
293-
if (diffDescription == null) {
294-
val resultContent = CodeTransformChatMessageContent(
295-
type = CodeTransformChatMessageType.PendingAnswer,
296-
message = message("codemodernizer.chat.message.changes_applied"),
297-
)
298-
codeTransformChatHelper?.updateLastPendingMessage(resultContent)
299-
} else {
300-
if (getCurrentPatchIndex() < totalPatchFiles) {
301-
val message = "I applied the changes in diff patch ${getCurrentPatchIndex() + 1} of $totalPatchFiles. " +
302-
"${patchDescriptions[diffDescription.name]}"
303-
val notificationMessage = "Amazon Q applied the changes in diff patch ${getCurrentPatchIndex() + 1} of $totalPatchFiles " +
304-
"to your project."
305-
val notificationTitle = "Diff patch ${getCurrentPatchIndex() + 1} of $totalPatchFiles applied"
306-
setCurrentPatchIndex(getCurrentPatchIndex() + 1)
307-
notifyInfo(notificationTitle, notificationMessage, project)
308-
if (getCurrentPatchIndex() == totalPatchFiles) {
309-
codeTransformChatHelper?.updateLastPendingMessage(
310-
CodeTransformChatMessageContent(type = CodeTransformChatMessageType.PendingAnswer, message = message)
311-
)
312-
} else {
313-
codeTransformChatHelper?.updateLastPendingMessage(
314-
CodeTransformChatMessageContent(
315-
type = CodeTransformChatMessageType.PendingAnswer,
316-
message = message,
317-
buttons = listOf(
318-
createViewDiffButton("View diff ${getCurrentPatchIndex() + 1}/$totalPatchFiles"),
319-
viewSummaryButton
320-
)
321-
)
322-
)
323-
}
324-
} else {
325-
// no-op; start a new transformation button already visible at this point
326-
}
327-
}
260+
telemetry.submitSelection("Submit", jobId.toString())
261+
val resultContent = CodeTransformChatMessageContent(
262+
type = CodeTransformChatMessageType.PendingAnswer,
263+
message = message("codemodernizer.chat.message.changes_applied"),
264+
)
265+
codeTransformChatHelper?.updateLastPendingMessage(resultContent)
328266
} else {
329267
telemetry.submitSelection("Cancel", jobId.toString())
330268
}
@@ -411,7 +349,7 @@ class ArtifactHandler(
411349
),
412350
)
413351

414-
fun notifyUnableToShowSummary() {
352+
private fun notifyUnableToShowSummary() {
415353
LOG.error { "Unable to display summary" }
416354
notifyStickyWarn(
417355
message("codemodernizer.notification.warn.view_summary_failed.title"),
@@ -425,7 +363,7 @@ class ArtifactHandler(
425363
)
426364
}
427365

428-
fun notifyUnableToShowBuildLog() {
366+
private fun notifyUnableToShowBuildLog() {
429367
LOG.error { "Unable to display build log" }
430368
notifyStickyWarn(
431369
message("codemodernizer.notification.warn.view_build_log_failed.title"),
@@ -447,12 +385,6 @@ class ArtifactHandler(
447385

448386
fun getSummary(job: JobId) = downloadedSummaries[job]
449387

450-
private fun getCurrentPatchIndex() = sharedPatchIndex
451-
452-
private fun setCurrentPatchIndex(index: Int) {
453-
sharedPatchIndex = index
454-
}
455-
456388
private fun showSummaryFromFile(summaryFile: File) {
457389
val summaryMarkdownVirtualFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(summaryFile)
458390
if (summaryMarkdownVirtualFile != null) {

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerSession.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.utils.STATES_AFTE
5151
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.calculateTotalLatency
5252
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getModuleOrProjectNameForFile
5353
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getPathToHilDependencyReportDir
54+
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.isPlanComplete
5455
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.isValidCodeTransformConnection
5556
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.pollTransformationStatusAndPlan
5657
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.toTransformationLanguage
@@ -72,7 +73,6 @@ import javax.net.ssl.SSLHandshakeException
7273

7374
const val MAX_ZIP_SIZE = 2000000000 // 2GB
7475
const val EXPLAINABILITY_V1 = "EXPLAINABILITY_V1"
75-
const val SELECTIVE_TRANSFORMATION_V1 = "SELECTIVE_TRANSFORMATION_V1"
7676

7777
// constants for handling SDKClientException
7878
const val CONNECTION_REFUSED_ERROR: String = "Connection refused"
@@ -478,10 +478,12 @@ class CodeModernizerSession(
478478
}
479479
}
480480

481-
// Open the transformation plan detail panel once transformation plan is available (no plan for SQL conversions)
482-
if (transformType != CodeTransformType.SQL_CONVERSION && state.transformationPlan != null && !isTransformationPlanEditorOpened) {
483-
tryOpenTransformationPlanEditor()
484-
isTransformationPlanEditorOpened = true
481+
if (!isTransformationPlanEditorOpened && transformType == CodeTransformType.LANGUAGE_UPGRADE) {
482+
val isPlanComplete = isPlanComplete(state.transformationPlan)
483+
if (isPlanComplete) {
484+
tryOpenTransformationPlanEditor()
485+
isTransformationPlanEditorOpened = true
486+
}
485487
}
486488
val instant = Instant.now()
487489
// Set the job start time

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeTransformChatApp.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ private enum class CodeTransformMessageTypes(val type: String) {
4747
CodeTransformCancel("codetransform-cancel"),
4848
CodeTransformContinue("codetransform-continue"),
4949
CodeTransformConfirmSkipTests("codetransform-confirm-skip-tests"),
50-
CodeTransformConfirmOneOrMultipleDiffs("codetransform-confirm-one-or-multiple-diffs"),
5150
CodeTransformNew("codetransform-new"),
5251
CodeTransformOpenTransformHub("codetransform-open-transform-hub"),
5352
CodeTransformOpenMvnBuild("codetransform-open-mvn-build"),
@@ -84,7 +83,6 @@ class CodeTransformChatApp : AmazonQApp {
8483
CodeTransformMessageTypes.CodeTransformContinue.type to IncomingCodeTransformMessage.CodeTransformContinue::class,
8584
CodeTransformMessageTypes.ChatPrompt.type to IncomingCodeTransformMessage.ChatPrompt::class,
8685
CodeTransformMessageTypes.CodeTransformConfirmSkipTests.type to IncomingCodeTransformMessage.CodeTransformConfirmSkipTests::class,
87-
CodeTransformMessageTypes.CodeTransformConfirmOneOrMultipleDiffs.type to IncomingCodeTransformMessage.CodeTransformConfirmOneOrMultipleDiffs::class,
8886
CodeTransformMessageTypes.CodeTransformNew.type to IncomingCodeTransformMessage.CodeTransformNew::class,
8987
CodeTransformMessageTypes.CodeTransformOpenTransformHub.type to IncomingCodeTransformMessage.CodeTransformOpenTransformHub::class,
9088
CodeTransformMessageTypes.CodeTransformOpenMvnBuild.type to IncomingCodeTransformMessage.CodeTransformOpenMvnBuild::class,
@@ -193,7 +191,6 @@ class CodeTransformChatApp : AmazonQApp {
193191
is IncomingCodeTransformMessage.CodeTransformStop -> inboundAppMessagesHandler.processCodeTransformStopAction(message.tabId)
194192
is IncomingCodeTransformMessage.ChatPrompt -> inboundAppMessagesHandler.processChatPromptMessage(message)
195193
is IncomingCodeTransformMessage.CodeTransformConfirmSkipTests -> inboundAppMessagesHandler.processCodeTransformConfirmSkipTests(message)
196-
is IncomingCodeTransformMessage.CodeTransformConfirmOneOrMultipleDiffs -> inboundAppMessagesHandler.processCodeTransformOneOrMultipleDiffs(message)
197194
is IncomingCodeTransformMessage.CodeTransformContinue -> inboundAppMessagesHandler.processCodeTransformContinueAction(message)
198195
is IncomingCodeTransformMessage.CodeTransformNew -> inboundAppMessagesHandler.processCodeTransformNewAction(message)
199196
is IncomingCodeTransformMessage.CodeTransformOpenTransformHub -> inboundAppMessagesHandler.processCodeTransformOpenTransformHub(message)

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/InboundAppMessagesHandler.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ interface InboundAppMessagesHandler {
2727

2828
suspend fun processCodeTransformConfirmSkipTests(message: IncomingCodeTransformMessage.CodeTransformConfirmSkipTests)
2929

30-
suspend fun processCodeTransformOneOrMultipleDiffs(message: IncomingCodeTransformMessage.CodeTransformConfirmOneOrMultipleDiffs)
31-
3230
suspend fun processCodeTransformOpenTransformHub(message: IncomingCodeTransformMessage.CodeTransformOpenTransformHub)
3331

3432
suspend fun processCodeTransformOpenMvnBuild(message: IncomingCodeTransformMessage.CodeTransformOpenMvnBuild)

0 commit comments

Comments
 (0)