From cb598cb16a8e29df49acfaaf6a7610dcad436ee3 Mon Sep 17 00:00:00 2001 From: Bronley Plumb Date: Mon, 13 May 2024 12:51:08 -0400 Subject: [PATCH] Adds syntax highlighting for `alias` statements (#567) --- src/grammar/brightscript.tmLanguage.spec.ts | 26 +++++++++++++++++++++ syntaxes/brightscript.tmLanguage.json | 17 ++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/grammar/brightscript.tmLanguage.spec.ts b/src/grammar/brightscript.tmLanguage.spec.ts index d464a65b..df7d9327 100644 --- a/src/grammar/brightscript.tmLanguage.spec.ts +++ b/src/grammar/brightscript.tmLanguage.spec.ts @@ -6,6 +6,32 @@ import { standardizePath as s } from 'brighterscript'; const brightscriptTmlanguagePath = s`${__dirname}/../../syntaxes/brightscript.tmLanguage.json`; describe('brightscript.tmlanguage.json', () => { + it('colors alias statement properly', async () => { + await testGrammar(` + alias alpha = beta + '^^^^ entity.name.variable.local.brs + '^ keyword.operator.assignment.brs + '^^^^^ entity.name.variable.brs + '^^^^^ keyword.declaration.alias.brs + `); + + await testGrammar(` + alias alpha=beta + '^^^^ entity.name.variable.local.brs + '^ keyword.operator.assignment.brs + '^^^^^ entity.name.variable.brs + '^^^^^ keyword.declaration.alias.brs + `); + + await testGrammar(` + alias alpha = beta.charlie.delta + '^^^^ entity.name.variable.local.brs + '^ keyword.operator.assignment.brs + '^^^^^ entity.name.variable.brs + '^^^^^ keyword.declaration.alias.brs + `); + }); + it('colors normal conditional compile statements properly', async () => { await testGrammar(` #if true diff --git a/syntaxes/brightscript.tmLanguage.json b/syntaxes/brightscript.tmLanguage.json index 70d26000..cb841980 100644 --- a/syntaxes/brightscript.tmLanguage.json +++ b/syntaxes/brightscript.tmLanguage.json @@ -37,6 +37,9 @@ { "include": "#import_statement" }, + { + "include": "#alias_statement" + }, { "include": "#namespace_declaration" }, @@ -393,6 +396,20 @@ } } }, + "alias_statement": { + "match": "(?i:(alias)\\s+([a-z0-9_]+)\\s*(=)\\s*)", + "captures": { + "1": { + "name": "keyword.declaration.alias.brs" + }, + "2": { + "name": "entity.name.variable.brs" + }, + "3": { + "name": "keyword.operator.assignment.brs" + } + } + }, "namespace_declaration": { "begin": "(?i:(namespace))\\s+", "beginCaptures": {