diff --git a/node_modules/ace/lib/ace/edit_session.js b/node_modules/ace/lib/ace/edit_session.js index 263592d8..32db04b9 100644 --- a/node_modules/ace/lib/ace/edit_session.js +++ b/node_modules/ace/lib/ace/edit_session.js @@ -1195,19 +1195,23 @@ EditSession.$uid = 0; return isUndo ? delta.action !== "insert" : delta.action === "insert"; } - var delta = deltas[0]; var range, point; - var lastDeltaIsInsert = false; - if (isInsert(delta)) { - range = Range.fromPoints(delta.start, delta.end); - lastDeltaIsInsert = true; - } else { - range = Range.fromPoints(delta.start, delta.start); - lastDeltaIsInsert = false; - } + var lastDeltaIsInsert; for (var i = 1; i < deltas.length; i++) { - delta = deltas[i]; + var delta = deltas[i]; + if (!delta.start) continue; // skip folds + if (!range) { + if (isInsert(delta)) { + range = Range.fromPoints(delta.start, delta.end); + lastDeltaIsInsert = true; + } else { + range = Range.fromPoints(delta.start, delta.start); + lastDeltaIsInsert = false; + } + continue; + } + if (isInsert(delta)) { point = delta.start; if (range.compare(point.row, point.column) == -1) {