diff --git a/.changes/next-release/feature-eeb9909f-8f63-4bd7-8161-df8ca27dd953.json b/.changes/next-release/feature-eeb9909f-8f63-4bd7-8161-df8ca27dd953.json new file mode 100644 index 00000000000..e698af4bf2b --- /dev/null +++ b/.changes/next-release/feature-eeb9909f-8f63-4bd7-8161-df8ca27dd953.json @@ -0,0 +1,4 @@ +{ + "type" : "feature", + "description" : "Add inline completion support for abap language" +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b9c1bf99a57..f80f1e72ea1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,7 +28,7 @@ mockitoKotlin = "5.4.0" mockk = "1.13.17" nimbus-jose-jwt = "9.40" node-gradle = "7.0.2" -telemetryGenerator = "1.0.310" +telemetryGenerator = "1.0.322" testLogger = "4.0.0" testRetry = "1.5.10" # test-only; platform provides slf4j transitively at runtime diff --git a/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/CodeWhispererLanguageManager.kt b/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/CodeWhispererLanguageManager.kt index aae1ac995e6..edc471e4fa4 100644 --- a/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/CodeWhispererLanguageManager.kt +++ b/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/CodeWhispererLanguageManager.kt @@ -7,6 +7,7 @@ import com.intellij.openapi.components.Service import com.intellij.openapi.components.service import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiFile +import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererAbap import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererC import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererCpp import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererCsharp @@ -147,6 +148,7 @@ class CodeWhispererLanguageManager { listOf("vue") to CodeWhispererVue.INSTANCE, listOf("ps1", "psm1") to CodeWhispererPowershell.INSTANCE, listOf("r") to CodeWhispererR.INSTANCE, + listOf("abap", "acds") to CodeWhispererAbap.INSTANCE, ).map { val exts = it.first val lang = it.second diff --git a/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererAbap.kt b/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererAbap.kt new file mode 100644 index 00000000000..da8334406a4 --- /dev/null +++ b/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererAbap.kt @@ -0,0 +1,21 @@ +// Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package software.aws.toolkits.jetbrains.services.codewhisperer.language.languages + +import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage +import software.aws.toolkits.telemetry.CodewhispererLanguage + +class CodeWhispererAbap private constructor() : CodeWhispererProgrammingLanguage() { + override val languageId: String = ID + + override fun toTelemetryType(): CodewhispererLanguage = CodewhispererLanguage.Abap + + override fun isCodeCompletionSupported(): Boolean = true + + companion object { + const val ID = "abap" + + val INSTANCE = CodeWhispererAbap() + } +} diff --git a/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererR.kt b/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererR.kt index 370abe8d84a..5444724347b 100644 --- a/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererR.kt +++ b/plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererR.kt @@ -14,7 +14,6 @@ class CodeWhispererR private constructor() : CodeWhispererProgrammingLanguage() override fun isCodeCompletionSupported(): Boolean = true companion object { - // TODO: confirm with service team language id const val ID = "r" val INSTANCE = CodeWhispererR() diff --git a/plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererLanguageManagerTest.kt b/plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererLanguageManagerTest.kt index f03c31e3f55..2bb1bcac54f 100644 --- a/plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererLanguageManagerTest.kt +++ b/plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererLanguageManagerTest.kt @@ -16,6 +16,7 @@ import org.mockito.kotlin.doReturn import org.mockito.kotlin.mock import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererLanguageManager import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage +import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererAbap import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererC import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererCpp import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererCsharp @@ -136,6 +137,7 @@ class CodeWhispererLanguageManagerTest { testGetProgrammingLanguageUtil(listOf("foo"), listOf("swift")) testGetProgrammingLanguageUtil(listOf("foo"), listOf("sv", "svh", "vh")) testGetProgrammingLanguageUtil(listOf("foo"), listOf("vue")) + testGetProgrammingLanguageUtil(listOf("foo"), listOf("abap", "acds")) } @Test