@abaplint/core
Version:
abaplint - Core API
52 lines (51 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LineBreakStyle = exports.LineBreakStyleConf = void 0;
const issue_1 = require("../issue");
const _basic_rule_config_1 = require("./_basic_rule_config");
const _irule_1 = require("./_irule");
class LineBreakStyleConf extends _basic_rule_config_1.BasicRuleConfig {
}
exports.LineBreakStyleConf = LineBreakStyleConf;
class LineBreakStyle {
constructor() {
this.conf = new LineBreakStyleConf();
}
getMetadata() {
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: [_irule_1.RuleTag.Whitespace, _irule_1.RuleTag.SingleFile],
};
}
initialize(_reg) {
return this;
}
getConfig() {
return this.conf;
}
setConfig(conf) {
this.conf = conf;
}
run(obj) {
const output = [];
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_1.Issue.atRow(file, i + 1, message, this.getMetadata().key, this.conf.severity);
output.push(issue);
break; // only one finding per file
}
}
}
}
return output;
}
}
exports.LineBreakStyle = LineBreakStyle;
//# sourceMappingURL=line_break_style.js.map