diff --git a/src/renderer/src/lib/language-detect.test.ts b/src/renderer/src/lib/language-detect.test.ts index e00c46e8efa..d67d18f1db5 100644 --- a/src/renderer/src/lib/language-detect.test.ts +++ b/src/renderer/src/lib/language-detect.test.ts @@ -38,6 +38,25 @@ describe('detectLanguage', () => { expect(detectLanguage('C:\\rtl\\TOP.SV')).toBe('systemverilog') }) + it.each([ + 'report.abap', + 'src/zcor0260.prog.abap', + 'src/zcl_demo.clas.abap', + 'src/zif_demo.intf.abap', + 'C:\\repo\\src\\ZCL_DEMO.CLAS.ABAP', + '\\\\server\\share\\src\\ZREPORT.PROG.ABAP', + '/home/user/folder workspace/src/Report.AbAp' + ])('maps ABAP source %s to the Monaco built-in abap language id', (filePath) => { + expect(detectLanguage(filePath)).toBe('abap') + }) + + it.each(['src.abap/README', 'src\\abap.abap\\README', 'report.abap.bak', 'report.abapx'])( + 'keeps non-ABAP file %s on plaintext', + (filePath) => { + expect(detectLanguage(filePath)).toBe('plaintext') + } + ) + it('maps .proto files to the Monaco built-in proto language id, not the alias', () => { expect(detectLanguage('api/v1/service.proto')).toBe('proto') }) diff --git a/src/renderer/src/lib/language-detect.ts b/src/renderer/src/lib/language-detect.ts index 0668b9d8bac..b38ab72523b 100644 --- a/src/renderer/src/lib/language-detect.ts +++ b/src/renderer/src/lib/language-detect.ts @@ -104,6 +104,7 @@ const EXT_TO_LANGUAGE: Record = { '.nimble': 'nim', '.tf': 'hcl', '.hcl': 'hcl', + '.abap': 'abap', '.prisma': 'graphql', '.csv': 'csv', '.tsv': 'tsv'