do not include empty lines in section fold

This commit is contained in:
nightwing 2013-11-06 11:34:41 +04:00
commit dfa2eaf5ac
2 changed files with 28 additions and 3 deletions

View file

@ -73,7 +73,7 @@ oop.inherits(FoldMode, BaseFoldMode);
return range;
}
if (foldStyle !== "markbeginend")
if (foldStyle === "markbegin")
return;
var match = line.match(this.foldingStopMarker);
@ -105,10 +105,11 @@ oop.inherits(FoldMode, BaseFoldMode);
var subRange = this.getFoldWidgetRange(session, "all", row);
if (subRange) {
if (subRange.isMultiLine()) {
if (subRange.start.row <= startRow) {
break;
} else if (subRange.isMultiLine()) {
row = subRange.end.row;
} else if (startIndent == indent) {
endRow = row - 1;
break;
}
}

View file

@ -76,6 +76,30 @@ module.exports = {
assert.range(session.getFoldWidgetRange(0), 0, 2, 2, 7);
assert.range(session.getFoldWidgetRange(2), 0, 2, 2, 7);
},
"test: fold sections": function() {
var session = new EditSession([
'/* section0 */',
'{',
' /* section1 */',
' stuff',
' ',
' /* section2 */',
' ',
' stuff',
' ',
' }',
'foo'
]);
var mode = new JavaScriptMode();
session.setFoldStyle("markbegin");
session.setMode(mode);
assert.range(session.getFoldWidgetRange(0, true), 0, 14, 10, 3);
assert.range(session.getFoldWidgetRange(2, true), 2, 18, 3, 9);
assert.range(session.getFoldWidgetRange(5, true), 5, 18, 7, 9);
}
};