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 61 62 63 64 | 1x 1x 1x 1x 1x 1x 22431x 22431x 22431x 22431x 22431x 1x 11216x 11216x 11216x 11216x 11216x 33491x 33491x 33491x 33491x 33491x 33491x 33491x 33491x 33491x 11216x 11216x 10971x 10971x 11216x 11216x 228x 228x 11216x 11216x 241x 241x 241x 241x 241x 241x 2x 2x 241x 241x 241x 1625x 1625x 2x 2x 1625x 1625x 1625x 1625x 241x 241x 11216x 11216x | import {ABAPFile} from "../abap/abap_file"; import {Issue} from "../issue"; import {ABAPRule} from "./_abap_rule"; import {BasicRuleConfig} from "./_basic_rule_config"; import {RuleTag} from "./_irule"; export class LineLengthConf extends BasicRuleConfig { /** Maximum line length in characters, trailing whitespace ignored */ public length: number = 120; public maxIssuesPerFile: number | undefined = 10; } export class LineLength extends ABAPRule { private conf = new LineLengthConf(); public getMetadata() { return { key: "line_length", title: "Line length", shortDescription: `Detects lines exceeding the provided maximum length.`, extendedInformation: `https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#stick-to-a-reasonable-line-length https://docs.abapopenchecks.org/checks/04/`, tags: [RuleTag.Styleguide, RuleTag.SingleFile], }; } public getConfig() { return this.conf; } public setConfig(conf: LineLengthConf) { this.conf = conf; } public runParsed(file: ABAPFile) { const issues: Issue[] = []; // maximum line length in abap files const maxLineLength: number = 255; let max = this.getConfig().maxIssuesPerFile; if (max === undefined || max < 1) { max = 10; } const array = file.getRawRows(); for (let rowIndex = 0; rowIndex < array.length; rowIndex++) { const row = array[rowIndex].replace("\r", ""); if (row.length > maxLineLength) { const message = `Maximum allowed line length of ${maxLineLength} exceeded, currently ${row.length}`; issues.push(Issue.atRow(file, rowIndex + 1, message, this.getMetadata().key, this.conf.severity)); } else if (row.length > this.conf.length) { const message = `Reduce line length to max ${this.conf.length}, currently ${row.length}`; issues.push(Issue.atRow(file, rowIndex + 1, message, this.getMetadata().key, this.conf.severity)); } if (issues.length >= max) { break; } } return issues; } } |