Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 11088x 11088x 11088x 11088x 11088x 54256x 54256x 54256x 54256x 54256x 54256x 54256x 11088x 11088x 10568x 10568x 11088x 11088x 246x 246x 246x 11088x 11088x 245x 245x 11088x 11088x 329x 71x 71x 258x 258x 258x 258x 258x 329x 1x 1x 1x 1x 1x 1x 258x 258x 258x 11088x 11088x | import {IRegistry} from "../_iregistry";
import {SyntaxLogic} from "../abap/5_syntax/syntax";
import {BasicRuleConfig} from "./_basic_rule_config";
import {IObject} from "../objects/_iobject";
import {ABAPObject} from "../objects/_abap_object";
import {Issue} from "../issue";
import {RuleTag, IRuleMetadata, IRule} from "./_irule";
import {Severity} from "../severity";
import {CheckSyntaxKey} from "../abap/5_syntax/_syntax_input";
export class CheckSyntaxConf extends BasicRuleConfig {
}
export class CheckSyntax implements IRule {
private reg: IRegistry;
private conf = new CheckSyntaxConf();
public getMetadata(): IRuleMetadata {
return {
key: CheckSyntaxKey,
title: "Check syntax",
shortDescription: `Enables syntax check and variable resolution`,
tags: [RuleTag.Syntax],
};
}
public getConfig() {
return this.conf;
}
public initialize(reg: IRegistry) {
this.reg = reg;
return this;
}
public setConfig(conf: CheckSyntaxConf) {
this.conf = conf;
}
public run(obj: IObject): Issue[] {
if (!(obj instanceof ABAPObject)) {
return [];
}
const issues = new 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.Error) {
issues.forEach((value: Issue, index: number) => {
const data = value.getData();
data.severity = this.conf.severity!;
issues[index] = new Issue(data);
});
}
return issues;
}
} |