const HighlightLines = require("./HighlightLines"); class HighlightLinesGroup { constructor(str, delimiter) { this.init(str, delimiter); } init(str = "", delimiter = " ") { this.str = str; this.delimiter = delimiter; let split = str.split(this.delimiter); this.highlights = new HighlightLines(split.length === 1 ? split[0] : ""); this.highlightsAdd = new HighlightLines(split.length === 2 ? split[0] : ""); this.highlightsRemove = new HighlightLines(split.length === 2 ? split[1] : ""); } isHighlighted(lineNumber) { return this.highlights.isHighlighted(lineNumber); } isHighlightedAdd(lineNumber) { return this.highlightsAdd.isHighlighted(lineNumber); } isHighlightedRemove(lineNumber) { return this.highlightsRemove.isHighlighted(lineNumber); } hasTagMismatch(line) { let startCount = line.split(" or on the line. // for example, we can’t wrap with if(this.hasTagMismatch(line)) { return line; } return before + line + after; } getLineMarkup(lineNumber, line, extraClasses = []) { let extraClassesStr = (extraClasses.length ? " " + extraClasses.join(" ") : ""); if (this.isHighlighted(lineNumber)) { return this.splitLineMarkup(line, ``, ``); } if (this.isHighlightedAdd(lineNumber)) { return this.splitLineMarkup(line, ``, ``); } if (this.isHighlightedRemove(lineNumber)) { return this.splitLineMarkup(line, ``, ``); } return this.splitLineMarkup( line, ``, ``); } } module.exports = HighlightLinesGroup;