From f0afe08c3cd478c28fd00ba4867e7732b85c98eb Mon Sep 17 00:00:00 2001 From: drexler Date: Sat, 5 Jan 2019 00:54:17 -0500 Subject: [PATCH] convert no-empty-line-after-opening-brace to use a walk function --- src/noEmptyLineAfterOpeningBraceRule.ts | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/src/noEmptyLineAfterOpeningBraceRule.ts b/src/noEmptyLineAfterOpeningBraceRule.ts index 244a07300..f9c89df7b 100644 --- a/src/noEmptyLineAfterOpeningBraceRule.ts +++ b/src/noEmptyLineAfterOpeningBraceRule.ts @@ -24,25 +24,14 @@ export class Rule extends Lint.Rules.AbstractRule { public static FAILURE_STRING: string = 'Opening brace cannot be followed by empty line'; public apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] { - return this.applyWithWalker(new NoEmptyLineAfterOpeningBraceWalker(sourceFile, this.getOptions())); + return this.applyWithFunction(sourceFile, walk); } } -class NoEmptyLineAfterOpeningBraceWalker extends Lint.RuleWalker { - private readonly scanner: ts.Scanner; - - constructor(sourceFile: ts.SourceFile, options: Lint.IOptions) { - super(sourceFile, options); - this.scanner = ts.createScanner(1, false, 0, sourceFile.text); - } - - public visitSourceFile(node: ts.SourceFile): void { - this.scanAllTokens(node); - super.visitSourceFile(node); - } - - private scanAllTokens(node: ts.SourceFile): void { - this.scanner.setTextPos(0); +function walk(ctx: Lint.WalkContext) { + function cb(node: ts.Node): void { + const scanner: ts.Scanner = ts.createScanner(1, false, 0, ctx.sourceFile.text); + scanner.setTextPos(0); let previous: ts.SyntaxKind; let previousPrevious: ts.SyntaxKind; @@ -52,7 +41,7 @@ class NoEmptyLineAfterOpeningBraceWalker extends Lint.RuleWalker { previous === ts.SyntaxKind.NewLineTrivia && tokenSyntaxKind === ts.SyntaxKind.NewLineTrivia ) { - this.addFailureAt(range.pos, 1, Rule.FAILURE_STRING); + ctx.addFailureAt(range.pos, 1, Rule.FAILURE_STRING); } //ignore empty spaces @@ -62,4 +51,6 @@ class NoEmptyLineAfterOpeningBraceWalker extends Lint.RuleWalker { } }); } + + return ts.forEachChild(ctx.sourceFile, cb); }