AttributeManager: Simplify logic
parent
e3d32a26b6
commit
d40d59d9eb
|
@ -68,10 +68,7 @@ AttributeManager.prototype = _(AttributeManager.prototype).extend({
|
|||
// see https://github.com/ether/etherpad-lite/issues/2772
|
||||
let allChangesets;
|
||||
for (let row = start[0]; row <= end[0]; row++) {
|
||||
const rowRange = this._findRowRange(row, start, end);
|
||||
const startCol = rowRange[0];
|
||||
const endCol = rowRange[1];
|
||||
|
||||
const [startCol, endCol] = this._findRowRange(row, start, end);
|
||||
const rowChangeset = this._setAttributesOnRangeByLine(row, startCol, endCol, attribs);
|
||||
|
||||
// compose changesets of all rows into a single changeset
|
||||
|
@ -89,26 +86,12 @@ AttributeManager.prototype = _(AttributeManager.prototype).extend({
|
|||
},
|
||||
|
||||
_findRowRange(row, start, end) {
|
||||
let startCol, endCol;
|
||||
|
||||
const startLineOffset = this.rep.lines.offsetOfIndex(row);
|
||||
const endLineOffset = this.rep.lines.offsetOfIndex(row + 1);
|
||||
const lineLength = endLineOffset - startLineOffset;
|
||||
|
||||
// find column where range on this row starts
|
||||
if (row === start[0]) { // are we on the first row of range?
|
||||
startCol = start[1];
|
||||
} else {
|
||||
startCol = this.lineHasMarker(row) ? 1 : 0; // remove "*" used as line marker
|
||||
}
|
||||
|
||||
// find column where range on this row ends
|
||||
if (row === end[0]) { // are we on the last row of range?
|
||||
endCol = end[1]; // if so, get the end of range, not end of row
|
||||
} else {
|
||||
endCol = lineLength - 1; // remove "\n"
|
||||
}
|
||||
|
||||
// Subtract 1 for the end-of-line '\n' (it is never selected).
|
||||
const lineLength =
|
||||
this.rep.lines.offsetOfIndex(row + 1) - this.rep.lines.offsetOfIndex(row) - 1;
|
||||
const markerWidth = this.lineHasMarker(row) ? 1 : 0;
|
||||
const startCol = row === start[0] ? start[1] : markerWidth;
|
||||
const endCol = row === end[0] ? end[1] : lineLength;
|
||||
return [startCol, endCol];
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in New Issue