@abaplint/core
Version:
abaplint - Core API
54 lines • 1.82 kB
JavaScript
;
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