From cbfa1f40d16ddefbce8275d36fed477e03160351 Mon Sep 17 00:00:00 2001 From: Saad Jutt Date: Fri, 21 May 2021 18:32:22 +0500 Subject: [PATCH] fix(strictMacroDefinition): updated logic for getting params --- src/rules/file/strictMacroDefinition.spec.ts | 5 +++++ src/rules/file/strictMacroDefinition.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/rules/file/strictMacroDefinition.spec.ts b/src/rules/file/strictMacroDefinition.spec.ts index ac7e982..1b62fb7 100644 --- a/src/rules/file/strictMacroDefinition.spec.ts +++ b/src/rules/file/strictMacroDefinition.spec.ts @@ -114,6 +114,11 @@ describe('strictMacroDefinition', () => { }) describe('multi-content macro declarations', () => { + it('should return an empty array when the content has correct macro definition syntax', () => { + const content = `%macro mp_ds2cards(base_ds=, tgt_ds=\n ,cards_file="%sysfunc(pathname(work))/cardgen.sas"\n ,maxobs=max\n ,random_sample=NO\n ,showlog=YES\n ,outencoding=\n ,append=NO\n)/*/STORE SOURCE*/;` + expect(strictMacroDefinition.test(content)).toEqual([]) + }) + it('should return an array with a single diagnostic when Macro definition has space in param', () => { const content = `%macro somemacro(va r1);` diff --git a/src/rules/file/strictMacroDefinition.ts b/src/rules/file/strictMacroDefinition.ts index cc4db97..b5954bf 100644 --- a/src/rules/file/strictMacroDefinition.ts +++ b/src/rules/file/strictMacroDefinition.ts @@ -32,12 +32,12 @@ const test = (value: string, config?: LintConfig) => { macros.forEach((macro) => { const declaration = macro.declaration - const regExpParams = new RegExp(/\((.*?)\)/) + const regExpParams = new RegExp(/(?<=\().*(?=\))/) const regExpParamsResult = regExpParams.exec(declaration) let _declaration = declaration if (regExpParamsResult) { - const paramsPresent = regExpParamsResult[1] + const paramsPresent = regExpParamsResult[0] const paramsTrimmed = paramsPresent.trim() const params = paramsTrimmed.split(',')