getTaskRanges()

in src/executable-code/executable-fragment.js [283:301]


  getTaskRanges() {
    let textRanges = [];
    let fileContentLines = this.codemirror.getValue().split('\n');
    for (let i = 0; i < fileContentLines.length; i++) {
      let line = fileContentLines[i];
      while (line.includes(MARK_PLACEHOLDER_OPEN)) {
        let markPlaceHolderStart = line.indexOf(MARK_PLACEHOLDER_OPEN);
        line = line.replace(MARK_PLACEHOLDER_OPEN, '');
        let markPlaceHolderEnd = line.indexOf(MARK_PLACEHOLDER_CLOSE);
        line = line.replace(MARK_PLACEHOLDER_CLOSE, '');
        textRanges.push({
          line: i,
          ch: markPlaceHolderStart,
          length: markPlaceHolderEnd - markPlaceHolderStart,
        });
      }
    }
    return textRanges;
  }