Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/mode/folding/html_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ module.exports = {

"test: fold mixed html and javascript": function() {
var session = new EditSession([
'<script type="text/javascript"> ',
'<script type="text/javascript">',
'function() foo {',
' var bar = 1;',
'}',
Expand Down
5 changes: 4 additions & 1 deletion src/mode/folding/xml.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,11 @@ function is(token, type) {
}
var tags = session.getMatchingTags({row: row, column: 0});
if (tags) {
var startRow = tags.openTag.start.row;
return new Range(
tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);
startRow, session.getLine(startRow).length, tags.closeTag.start.row,
tags.closeTag.start.column
);
}
};

Expand Down
31 changes: 27 additions & 4 deletions src/mode/folding/xml_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ module.exports = {
assert.equal(session.getFoldWidget(1), "");
assert.equal(session.getFoldWidget(2), "end");

assert.range(session.getFoldWidgetRange(0), 0, 8, 2, 19);
assert.range(session.getFoldWidgetRange(2), 0, 8, 2, 19);
assert.range(session.getFoldWidgetRange(0), 0, 7, 2, 19);
assert.range(session.getFoldWidgetRange(2), 0, 7, 2, 19);
},

"test: fold should skip self closing elements": function() {
Expand Down Expand Up @@ -64,8 +64,8 @@ module.exports = {
assert.equal(session.getFoldWidget(4), "end");

assert.range(session.getFoldWidgetRange(0), 0, 8, 4, 0);
assert.range(session.getFoldWidgetRange(1), 1, 9, 3, 19);
assert.range(session.getFoldWidgetRange(3), 1, 9, 3, 19);
assert.range(session.getFoldWidgetRange(1), 1, 8, 3, 19);
assert.range(session.getFoldWidgetRange(3), 1, 8, 3, 19);
assert.range(session.getFoldWidgetRange(4), 0, 8, 4, 0);
},
"test: fold should handle multi-line comments inside nested elements correctly": function () {
Expand Down Expand Up @@ -95,8 +95,31 @@ module.exports = {
assert.range(session.getFoldWidgetRange(0), 0, 15, 10, 0);
assert.range(session.getFoldWidgetRange(2), 2, 13, 5, 4);
assert.equal(session.getFoldWidgetRange(8), "");
},

"test: fold multi-line opening tag from logical line end": function () {
var session = new EditSession([
'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"', ' version="1.0">',
' <xsl:template match="/">', ' </xsl:template>', '</xsl:stylesheet>'
]);

session.setMode(new XmlMode());
session.setFoldStyle("markbeginend");

var startColumn = session.getLine(0).length;

assert.range(session.getFoldWidgetRange(0), 0, startColumn, 4, 0);
assert.range(session.getFoldWidgetRange(4), 0, startColumn, 4, 0);

// The same opening widget must fold and unfold.
session.$toggleFoldWidget(0, {});
assert.ok(session.getFoldLine(0));

session.$toggleFoldWidget(0, {});
assert.equal(session.getFoldLine(0), undefined);
}


};


Expand Down
Loading