DiffReviewBlocks constructor
DiffReviewBlocks(
- DiffReviewModel model
Builds an ordering for the model's current layout and threads.
Implementation
DiffReviewBlocks(DiffReviewModel model) : layout = model.diff.layout {
final placements = model.threadPlacements.indexed.toList()
..sort((a, b) {
final rowA = a.$2.afterRow == null
? layout.lines.length
: a.$2.afterRow!;
final rowB = b.$2.afterRow == null
? layout.lines.length
: b.$2.afterRow!;
final byRow = rowA.compareTo(rowB);
return byRow != 0 ? byRow : a.$1.compareTo(b.$1);
});
for (final (order, (_, placement)) in placements.indexed) {
final beforeRow = placement.afterRow == null
? layout.lines.length
: placement.afterRow! + 1;
_beforeRows.add(beforeRow);
_threadPositions.add(beforeRow + order);
_threads.add(DiffReviewThreadBlock._(placement));
_threadById[placement.thread.id] = order;
}
}