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 11750x 11750x 11750x 11750x 35098x 35098x 35098x 35098x 35098x 35098x 35098x 35098x 35098x 11750x 11750x 245x 245x 11750x 11750x 11241x 11241x 11750x 11750x 239x 239x 11750x 11750x 319x 319x 319x 340x 256x 256x 1724x 1x 1x 1x 1x 1x 1724x 256x 340x 319x 319x 319x 11750x 11750x | 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;
}
} |