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 | 33x 33x 33x 33x 12x 2x 13x 10x 10x 10x 13x 13x 7x 7x 6x 6x 10x 10x | export function splitCodeAndIndentation(code: string) {
const codeStartIdx = code.search(/\S|$/);
const indents = code.substring(0, codeStartIdx);
const content = code.substring(codeStartIdx);
return [indents, content];
}
export function collateAllIntervalsWithColors(
boundsWithColors: Array<{ bounds: [number, number], color: string }>,
) {
if (boundsWithColors.length === 0) {
return [];
}
boundsWithColors.sort((a, b) => a.bounds[0] - b.bounds[0]);
const merged: Array<{ bounds: [number, number], color: string }> = [];
let current = boundsWithColors[0];
for (let i = 1; i < boundsWithColors.length; i += 1) {
const next = boundsWithColors[i];
if (next.bounds[0] <= (current.bounds[1] - 1)) {
// merge if overlap
current.bounds[1] = Math.max(current.bounds[1], next.bounds[1]);
current.color = next.color;
} else {
merged.push(current);
current = next;
}
}
// Add the last merged interval
merged.push(current);
return merged;
}
|