Skip to content

Commit 6763a12

Browse files
committed
loose Q inline completion support restriction for yaml/json files
1 parent 13282a0 commit 6763a12

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

packages/core/src/codewhisperer/models/constants.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@ export const AWSTemplateKeyWords = ['AWSTemplateFormatVersion', 'Resources', 'AW
2222

2323
export const AWSTemplateCaseInsensitiveKeyWords = ['cloudformation', 'cfn', 'template', 'description']
2424

25+
export const JsonConfigFileNamingConvention = new Set([
26+
'app.json',
27+
'appsettings.json',
28+
'bower.json',
29+
'composer.json',
30+
'db.json',
31+
'manifest.json',
32+
'package.json',
33+
'schema.json',
34+
'settings.json',
35+
'tsconfig.json',
36+
'vcpkg.json',
37+
])
38+
2539
export const normalTextChangeRegex = /[A-Za-z0-9]/g
2640

2741
export const autoSuggestionConfig = {

packages/core/src/codewhisperer/util/commonUtil.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ import * as vscode from 'vscode'
77
import * as semver from 'semver'
88
import { isCloud9 } from '../../shared/extensionUtilities'
99
import { getInlineSuggestEnabled } from '../../shared/utilities/editorUtilities'
10-
import { AWSTemplateCaseInsensitiveKeyWords, AWSTemplateKeyWords } from '../models/constants'
10+
import {
11+
AWSTemplateCaseInsensitiveKeyWords,
12+
AWSTemplateKeyWords,
13+
JsonConfigFileNamingConvention,
14+
} from '../models/constants'
1115

1216
export function getLocalDatetime() {
1317
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone
@@ -61,11 +65,12 @@ export function getPrefixSuffixOverlap(firstString: string, secondString: string
6165
return secondString.slice(0, i)
6266
}
6367

64-
export function checkLeftContextKeywordsForJsonAndYaml(leftFileContent: string, language: string): boolean {
68+
export function checkKeywordsForJson(fileName: string, leftFileContent: string, language: string): boolean {
6569
if (
66-
(language === 'json' || language === 'yaml') &&
70+
language === 'json' &&
6771
!AWSTemplateKeyWords.some((substring) => leftFileContent.includes(substring)) &&
68-
!AWSTemplateCaseInsensitiveKeyWords.some((substring) => leftFileContent.toLowerCase().includes(substring))
72+
!AWSTemplateCaseInsensitiveKeyWords.some((substring) => leftFileContent.toLowerCase().includes(substring)) &&
73+
!JsonConfigFileNamingConvention.has(fileName)
6974
) {
7075
return true
7176
}

packages/core/src/codewhisperer/util/editorContext.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { fetchSupplementalContext } from './supplementalContext/supplementalCont
1414
import { supplementalContextTimeoutInMs } from '../models/constants'
1515
import { getSelectedCustomization } from './customizationUtil'
1616
import { selectFrom } from '../../shared/utilities/tsUtils'
17-
import { checkLeftContextKeywordsForJsonAndYaml } from './commonUtil'
17+
import { checkKeywordsForJson } from './commonUtil'
1818
import { CodeWhispererSupplementalContext } from '../models/model'
1919
import { getOptOutPreference } from '../../shared/telemetry/util'
2020

@@ -39,7 +39,7 @@ export function extractContextForCodeWhisperer(editor: vscode.TextEditor): codew
3939
)
4040
)
4141
let languageName = 'plaintext'
42-
if (!checkLeftContextKeywordsForJsonAndYaml(caretLeftFileContext, editor.document.languageId)) {
42+
if (!checkKeywordsForJson(document.fileName, caretLeftFileContext, editor.document.languageId)) {
4343
languageName =
4444
runtimeLanguageContext.normalizeLanguage(editor.document.languageId) ?? editor.document.languageId
4545
}

0 commit comments

Comments
 (0)