@abaplint/core
Version:
abaplint - Core API
60 lines • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CheckInclude = exports.CheckIncludeConf = void 0;
const _basic_rule_config_1 = require("./_basic_rule_config");
const _abap_object_1 = require("../objects/_abap_object");
const include_graph_1 = require("../utils/include_graph");
const _irule_1 = require("./_irule");
const objects_1 = require("../objects");
const severity_1 = require("../severity");
class CheckIncludeConf extends _basic_rule_config_1.BasicRuleConfig {
constructor() {
super(...arguments);
this.allowUnused = false;
}
}
exports.CheckIncludeConf = CheckIncludeConf;
class CheckInclude {
constructor() {
this.conf = new CheckIncludeConf();
}
getMetadata() {
return {
key: "check_include",
title: "Check INCLUDEs",
shortDescription: `Checks INCLUDE statements`,
extendedInformation: `
* Reports unused includes
* Errors if the includes are not found
* Error if including a main program
* Skips ZX* includes`,
tags: [_irule_1.RuleTag.Syntax],
};
}
getConfig() {
return this.conf;
}
setConfig(conf) {
this.conf = conf;
}
initialize(reg) {
this.reg = reg;
this.graph = new include_graph_1.IncludeGraph(this.reg, this.getConfig().severity || severity_1.Severity.Error, this.getConfig().allowUnused || false);
return this;
}
run(obj) {
if (!(obj instanceof _abap_object_1.ABAPObject)) {
return [];
}
if (obj instanceof objects_1.Program && obj.isInclude() === true && obj.getName().startsWith("ZX")) {
return [];
}
let ret = [];
for (const file of obj.getABAPFiles()) {
ret = ret.concat(this.graph.getIssuesFile(file));
}
return ret;
}
}
exports.CheckInclude = CheckInclude;
//# sourceMappingURL=check_include.js.map