dealNumberList method

void dealNumberList()

Implementation

void dealNumberList() {
  List<int> numbers = List.filled(maxDepth + 1, 0);
  int curDepth = 0;
  for (var block in blocks) {
    if (block.type == BlockType.numberList) {
      var depth = block.depth;
      if (curDepth < depth) {
        curDepth = depth;
      } else if (curDepth > depth) {
        for (int i = curDepth; i > depth; i--) {
          numbers[i] = 0;
        }
        curDepth = depth;
      }
      var curNumber = numbers[curDepth];
      numbers[curDepth] = curNumber + 1;
      block.data.number = numbers[curDepth];
    } else {
      numbers = List.filled(maxDepth + 1, 0);
      curDepth = 0;
    }
  }
}