Skip to content

Commit 8f2b7b0

Browse files
authored
Fix for disabling unsupported languages in Auto File Scans. (#4428)
* Fix for Builder Id users Scan Popup. * Comment change for Listener information. * Changelog addition for bug fix. * Fix for disallowing unsupported languages for auto scans. * Added bugfix changelog for removing unsupported languages in auto-scans. * Update CodeWhispererConstants.kt with comment change. * Updated CodeWhispererConstants.kt to remove Tsx and Jsx * Update CodeWhispererCodeScanManager.kt for Q connected check update * Update CodeWhispererConstants.kt to comment change * additions to programming language for File Scan support per language. * Updated programming Language Tests. * Renamed isFileScanSupported to isAutoFileScanSupported. * Update bugfix-f113429f-6db6-4f09-aa89-a60ef5159691.json to correct changelog * Added Test case for failure in case of unsupported language.
1 parent 856260c commit 8f2b7b0

19 files changed

+135
-4
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "bugfix",
3+
"description" : "Amazon Q: Support disabling auto-scan for unsupported languages."
4+
}

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/codescan/CodeWhispererCodeScanManager.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.sessionco
6262
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
6363
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorUtil.overlaps
6464
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
65-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
6665
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isUserBuilderId
6766
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
6867
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererUnknownLanguage
@@ -74,9 +73,9 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhisperer
7473
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.ISSUE_HIGHLIGHT_TEXT_ATTRIBUTES
7574
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.promptReAuth
7675
import software.aws.toolkits.jetbrains.services.codewhisperer.util.runIfIdcConnectionOrTelemetryEnabled
76+
import software.aws.toolkits.jetbrains.utils.isQConnected
7777
import software.aws.toolkits.jetbrains.utils.isRunningOnRemoteBackend
7878
import software.aws.toolkits.resources.message
79-
import software.aws.toolkits.telemetry.CodewhispererLanguage
8079
import software.aws.toolkits.telemetry.Result
8180
import java.time.Duration
8281
import java.time.Instant
@@ -144,7 +143,7 @@ class CodeWhispererCodeScanManager(val project: Project) {
144143
* Triggers a code scan and displays results in the new tab in problems view panel.
145144
*/
146145
fun runCodeScan(scope: CodeWhispererConstants.CodeAnalysisScope) {
147-
if (!isCodeWhispererEnabled(project)) return
146+
if (!isQConnected(project)) return
148147

149148
// Return if a scan is already in progress.
150149
if (isProjectScanInProgress() && scope == CodeWhispererConstants.CodeAnalysisScope.PROJECT) return
@@ -227,7 +226,7 @@ class CodeWhispererCodeScanManager(val project: Project) {
227226
val codeScanSessionConfig = CodeScanSessionConfig.create(file, project, scope)
228227
language = codeScanSessionConfig.getSelectedFile().programmingLanguage()
229228
if (scope == CodeWhispererConstants.CodeAnalysisScope.FILE &&
230-
(language == CodeWhispererUnknownLanguage.INSTANCE || language.toTelemetryType() == CodewhispererLanguage.Plaintext)
229+
!language.isAutoFileScanSupported()
231230
) {
232231
LOG.debug { "Language is unknown or plaintext, skipping code scan." }
233232
codeScanStatus = Result.Cancelled

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/CodeWhispererProgrammingLanguage.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ abstract class CodeWhispererProgrammingLanguage {
2626

2727
open fun isCodeScanSupported(): Boolean = false
2828

29+
open fun isAutoFileScanSupported(): Boolean = false
30+
2931
open fun isImportAdderSupported(): Boolean = false
3032

3133
open fun isSupplementalContextSupported(): Boolean = false

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererC.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ class CodeWhispererC private constructor() : CodeWhispererProgrammingLanguage()
1313

1414
override fun isCodeCompletionSupported(): Boolean = true
1515

16+
override fun isCodeScanSupported(): Boolean = true
17+
18+
override fun isAutoFileScanSupported(): Boolean = true
19+
1620
companion object {
1721
const val ID = "c"
1822

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererCpp.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ class CodeWhispererCpp private constructor() : CodeWhispererProgrammingLanguage(
1313

1414
override fun isCodeCompletionSupported(): Boolean = true
1515

16+
override fun isCodeScanSupported(): Boolean = true
17+
18+
override fun isAutoFileScanSupported(): Boolean = true
19+
1620
companion object {
1721
const val ID = "cpp"
1822

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererCsharp.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ class CodeWhispererCsharp private constructor() : CodeWhispererProgrammingLangua
1313

1414
override fun isCodeCompletionSupported(): Boolean = true
1515

16+
override fun isCodeScanSupported(): Boolean = true
17+
18+
override fun isAutoFileScanSupported(): Boolean = true
19+
1620
companion object {
1721
const val ID = "csharp"
1822

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererGo.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ class CodeWhispererGo private constructor() : CodeWhispererProgrammingLanguage()
1313

1414
override fun isCodeCompletionSupported(): Boolean = true
1515

16+
override fun isCodeScanSupported(): Boolean = true
17+
18+
override fun isAutoFileScanSupported(): Boolean = true
19+
1620
companion object {
1721
const val ID = "go"
1822

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererJava.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ class CodeWhispererJava private constructor() : CodeWhispererProgrammingLanguage
1818

1919
override fun isCodeScanSupported(): Boolean = true
2020

21+
override fun isAutoFileScanSupported(): Boolean = true
22+
2123
override fun isImportAdderSupported(): Boolean = true
2224

2325
override fun isSupplementalContextSupported() = true

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererJavaScript.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ class CodeWhispererJavaScript private constructor() : CodeWhispererProgrammingLa
1616

1717
override fun isCodeCompletionSupported(): Boolean = true
1818

19+
override fun isCodeScanSupported(): Boolean = true
20+
21+
override fun isAutoFileScanSupported(): Boolean = true
22+
1923
override fun isImportAdderSupported(): Boolean = true
2024

2125
override fun isSupplementalContextSupported() = true

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/language/languages/CodeWhispererJson.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ class CodeWhispererJson private constructor() : CodeWhispererProgrammingLanguage
1313

1414
override fun isCodeCompletionSupported(): Boolean = true
1515

16+
override fun isCodeScanSupported(): Boolean = true
17+
18+
override fun isAutoFileScanSupported(): Boolean = true
19+
1620
companion object {
1721
const val ID = "json"
1822

0 commit comments

Comments
 (0)