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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 11364x 11364x 11364x 11364x 44803x 44803x 44803x 44803x 44803x 44803x 44803x 44803x 44803x 11364x 11364x 239x 239x 11364x 11364x 10867x 10867x 11364x 11364x 233x 233x 11364x 11364x 308x 308x 308x 326x 249x 249x 1649x 1x 1x 1x 1x 1x 1649x 249x 326x 308x 308x 308x 11364x 11364x | import {Issue} from "../issue";
import {BasicRuleConfig} from "./_basic_rule_config";
import {IObject} from "../objects/_iobject";
import {IRule, IRuleMetadata, RuleTag} from "./_irule";
import {IRegistry} from "../_iregistry";
export class LineBreakStyleConf extends BasicRuleConfig {
}
export class LineBreakStyle implements IRule {
private conf = new LineBreakStyleConf();
public getMetadata(): IRuleMetadata {
return {
key: "line_break_style",
title: "Makes sure line breaks are consistent in the ABAP code",
shortDescription: `Enforces LF as newlines in ABAP files
abapGit does not work with CRLF`,
tags: [RuleTag.Whitespace, RuleTag.SingleFile],
};
}
public initialize(_reg: IRegistry) {
return this;
}
public getConfig() {
return this.conf;
}
public setConfig(conf: LineBreakStyleConf) {
this.conf = conf;
}
public run(obj: IObject): Issue[] {
const output: Issue[] = [];
for (const file of obj.getFiles()) {
if (file.getFilename().endsWith(".abap")) {
const rows = file.getRawRows();
for (let i = 0; i < rows.length; i++) {
if (rows[i].endsWith("\r") === true) {
const message = "Line contains carriage return";
const issue = Issue.atRow(file, i + 1, message, this.getMetadata().key, this.conf.severity);
output.push(issue);
break; // only one finding per file
}
}
}
}
return output;
}
} |