@@ -67,7 +67,7 @@ export class RuntimeLanguageContext {
67
67
68
68
constructor ( ) {
69
69
this . supportedLanguageMap = createConstantMap <
70
- CodeWhispererConstants . PlatformLanguageId | CodewhispererLanguage ,
70
+ Exclude < CodeWhispererConstants . PlatformLanguageId | CodewhispererLanguage , 'plaintext' > ,
71
71
CodewhispererLanguage
72
72
> ( {
73
73
c : 'c' ,
@@ -85,7 +85,6 @@ export class RuntimeLanguageContext {
85
85
jsx : 'jsx' ,
86
86
kotlin : 'kotlin' ,
87
87
packer : 'tf' ,
88
- plaintext : 'plaintext' ,
89
88
php : 'php' ,
90
89
python : 'python' ,
91
90
ruby : 'ruby' ,
@@ -112,6 +111,7 @@ export class RuntimeLanguageContext {
112
111
systemverilog : 'systemVerilog' ,
113
112
verilog : 'systemVerilog' ,
114
113
vue : 'vue' ,
114
+ abap : 'abap' ,
115
115
} )
116
116
this . supportedLanguageExtensionMap = createConstantMap < string , CodewhispererLanguage > ( {
117
117
c : 'c' ,
@@ -152,6 +152,8 @@ export class RuntimeLanguageContext {
152
152
ps1 : 'powershell' ,
153
153
psm1 : 'powershell' ,
154
154
r : 'r' ,
155
+ abap : 'abap' ,
156
+ acds : 'abap' ,
155
157
} )
156
158
this . languageSingleLineCommentPrefixMap = createConstantMap < CodewhispererLanguage , string > ( {
157
159
c : '// ' ,
@@ -185,9 +187,14 @@ export class RuntimeLanguageContext {
185
187
vue : '' , // vue lacks a single-line comment prefix
186
188
yaml : '# ' ,
187
189
yml : '# ' ,
190
+ abap : '' ,
188
191
} )
189
192
}
190
193
194
+ public resolveLang ( doc : vscode . TextDocument ) : CodewhispererLanguage {
195
+ return this . normalizeLanguage ( doc . languageId ) || this . byFileExt ( doc ) || 'plaintext'
196
+ }
197
+
191
198
/**
192
199
* To add a new platform language id:
193
200
* 1. add new platform language ID constant in the file codewhisperer/constant.ts
@@ -317,8 +324,7 @@ export class RuntimeLanguageContext {
317
324
} else {
318
325
const normalizedLanguageId = this . normalizeLanguage ( arg . languageId )
319
326
const byLanguageId = ! normalizedLanguageId || normalizedLanguageId === 'plaintext' ? false : true
320
- const extension = path . extname ( arg . uri . fsPath )
321
- const byFileExtension = this . isFileFormatSupported ( extension . substring ( 1 ) )
327
+ const byFileExtension = this . byFileExt ( arg ) !== undefined
322
328
323
329
return byLanguageId || byFileExtension
324
330
}
@@ -341,6 +347,17 @@ export class RuntimeLanguageContext {
341
347
public getLanguageFromFileExtension ( fileExtension : string ) {
342
348
return this . supportedLanguageExtensionMap . get ( fileExtension )
343
349
}
350
+
351
+ private byFileExt ( doc : vscode . TextDocument ) : CodewhispererLanguage | undefined {
352
+ const extension = path . extname ( doc . uri . fsPath )
353
+ const byExt = this . supportedLanguageExtensionMap . get ( extension . substring ( 1 ) )
354
+
355
+ if ( byExt === 'plaintext' ) {
356
+ return undefined
357
+ }
358
+
359
+ return byExt
360
+ }
344
361
}
345
362
346
363
export const runtimeLanguageContext = new RuntimeLanguageContext ( )
0 commit comments