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 22413x 22413x 22413x 22413x 22413x 1x 11207x 11207x 11207x 11207x 11207x 33425x 33425x 33425x 33425x 33425x 33425x 33425x 33425x 33425x 11207x 11207x 10923x 10923x 11207x 11207x 267x 267x 11207x 11207x 280x 280x 280x 280x 280x 280x 2x 2x 280x 280x 280x 1923x 1923x 2x 2x 1923x 1923x 1923x 1923x 280x 280x 11207x 11207x | 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; } } |