diff --git a/lib/ace/mode/folding/html_test.js b/lib/ace/mode/folding/html_test.js index 3471ee57..8291eae1 100644 --- a/lib/ace/mode/folding/html_test.js +++ b/lib/ace/mode/folding/html_test.js @@ -59,8 +59,8 @@ module.exports = { assert.equal(session.getFoldWidget(3), "end"); assert.equal(session.getFoldWidget(4), "end"); - assert.range(session.getFoldWidgetRange(0), 0, 8, 4, 0); - assert.range(session.getFoldWidgetRange(4), 0, 8, 4, 0); + assert.range(session.getFoldWidgetRange(0), 0, 31, 4, 0); + assert.range(session.getFoldWidgetRange(4), 0, 31, 4, 0); assert.range(session.getFoldWidgetRange(1), 1, 16, 3, 0); assert.range(session.getFoldWidgetRange(3), 1, 16, 3, 0); @@ -85,8 +85,8 @@ module.exports = { assert.equal(session.getFoldWidget(3), "end"); assert.equal(session.getFoldWidget(4), "end"); - assert.range(session.getFoldWidgetRange(0), 0, 7, 4, 0); - assert.range(session.getFoldWidgetRange(4), 0, 7, 4, 0); + assert.range(session.getFoldWidgetRange(0), 0, 23, 4, 0); + assert.range(session.getFoldWidgetRange(4), 0, 23, 4, 0); assert.range(session.getFoldWidgetRange(1), 1, 17, 3, 4); assert.range(session.getFoldWidgetRange(3), 1, 17, 3, 4); diff --git a/lib/ace/mode/folding/xml.js b/lib/ace/mode/folding/xml.js index 27f57a8c..7565bf15 100644 --- a/lib/ace/mode/folding/xml.js +++ b/lib/ace/mode/folding/xml.js @@ -217,6 +217,8 @@ function is(token, type) { row: row, column: firstTag.start.column + firstTag.tagName.length + 2 }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; while (tag = this._readTagForward(iterator)) { if (tag.selfClosing) { if (!stack.length) { @@ -258,6 +260,8 @@ function is(token, type) { this._pop(stack, tag); if (stack.length == 0) { tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; return Range.fromPoints(tag.start, end); } }