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);
}
}