code: function replaceNode(node, newCode) {
          code = code.substr(0,node.start) + newCode + code.substr(node.end);
          var offs = newCode.length - (node.end-node.start); // offset for future code snippets
          for (var i in tasks)
            if (tasks[i].node.start > node.start) {
              tasks[i].node.start += offs;
              tasks[i].node.end += offs;
            }
        }
docs: /* Replace this node with the given text, and
  update node start/end positions of other nodes
  we're interested in