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 13424x 13424x 13424x 13424x 13424x 40115x 40115x 40115x 40115x 40115x 40115x 40115x 13424x 13424x 12914x 12914x 13424x 13424x 241x 241x 241x 13424x 13424x 240x 240x 13424x 13424x 315x 71x 71x 244x 244x 244x 244x 244x 315x 1x 1x 1x 1x 1x 1x 244x 244x 244x 13424x 13424x | 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;
}
} |