"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ts = require("typescript"); const Lint = require("tslint"); const tsutils_1 = require("tsutils"); class Rule extends Lint.Rules.AbstractRule { apply(sourceFile) { return this.applyWithWalker(new DiagnosticsWalker(sourceFile, this.getOptions())); } } Rule.NOT_ON_SEPARATE_LINE = "Diagnostic message not on a separate line."; exports.Rule = Rule; class DiagnosticsWalker extends Lint.RuleWalker { visitPropertyAccessExpression(node) { if (node.expression.kind === ts.SyntaxKind.Identifier) { if (node.expression.text == "DiagnosticCode" && tsutils_1.isSameLine(node.getSourceFile(), node.parent.getStart(), node.getStart())) { this.addFailureAtNode(node, Rule.NOT_ON_SEPARATE_LINE); } } super.visitPropertyAccessExpression(node); } }