UNPKG

@abaplint/core

Version:
54 lines 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CheckSyntax = exports.CheckSyntaxConf = void 0; const syntax_1 = require("../abap/5_syntax/syntax"); const _basic_rule_config_1 = require("./_basic_rule_config"); const _abap_object_1 = require("../objects/_abap_object"); const issue_1 = require("../issue"); const _irule_1 = require("./_irule"); const severity_1 = require("../severity"); const _syntax_input_1 = require("../abap/5_syntax/_syntax_input"); class CheckSyntaxConf extends _basic_rule_config_1.BasicRuleConfig { } exports.CheckSyntaxConf = CheckSyntaxConf; class CheckSyntax { constructor() { this.conf = new CheckSyntaxConf(); } getMetadata() { return { key: _syntax_input_1.CheckSyntaxKey, title: "Check syntax", shortDescription: `Enables syntax check and variable resolution`, tags: [_irule_1.RuleTag.Syntax], }; } getConfig() { return this.conf; } initialize(reg) { this.reg = reg; return this; } setConfig(conf) { this.conf = conf; } run(obj) { if (!(obj instanceof _abap_object_1.ABAPObject)) { return []; } const issues = new syntax_1.SyntaxLogic(this.reg, obj).run().issues; // the syntax logic does not know the rule severity when its run if (this.conf.severity && this.conf.severity !== severity_1.Severity.Error) { issues.forEach((value, index) => { const data = value.getData(); data.severity = this.conf.severity; issues[index] = new issue_1.Issue(data); }); } return issues; } } exports.CheckSyntax = CheckSyntax; //# sourceMappingURL=check_syntax.js.map