Skip to content
Open
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
28 changes: 14 additions & 14 deletions src/mode/folding/sqlserver.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,43 +9,43 @@ var FoldMode = exports.FoldMode = function() {};
oop.inherits(FoldMode, BaseFoldMode);

(function() {
/**
* Inheriting cstyle folding because it handles the region comment folding
/**
* Inheriting cstyle folding because it handles the region comment folding
* and special block comment folding appropriately.
*
*
* Cstyle's getCommentRegionBlock() contains the sql comment characters '--' for end region block.
*/

this.foldingStartMarker = /(\bCASE\b|\bBEGIN\b)|^\s*(\/\*)/i;
// this.foldingStopMarker = /(\bEND\b)|^[\s\*]*(\*\/)/i;
this.startRegionRe = /^\s*(\/\*|--)#?region\b/;

this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
var line = session.getLine(row);

if (this.startRegionRe.test(line)) return this.getCommentRegionBlock(session, line, row);

var match = line.match(this.foldingStartMarker);
if (match) {
var i = match.index;
if (match[1]) return this.getBeginEndBlock(session, row, i, match[1]);

var range = session.getCommentFoldRange(row, i + match[0].length, 1);
if (range && !range.isMultiLine()) {
if (forceMultiline) {
range = this.getSectionRange(session, row);
}
else if (foldStyle != "all") range = null;
}

return range;
}

if (foldStyle === "markbegin") return;
//TODO: add support for end folding markers
return;
};

/**
* @returns {Range} folding block for sequence that starts with 'CASE' or 'BEGIN' and ends with 'END'
* @param {string} matchSequence - the sequence of charaters that started the fold widget, which should remain visible when the fold widget is folded
Expand All @@ -57,7 +57,7 @@ oop.inherits(FoldMode, BaseFoldMode);
};
var maxRow = session.getLength();
var line;

var depth = 1;
var re = /(\bCASE\b|\bBEGIN\b)|(\bEND\b)/i;
while (++row < maxRow) {
Expand All @@ -66,11 +66,11 @@ oop.inherits(FoldMode, BaseFoldMode);
if (!m) continue;
if (m[1]) depth++;
else depth--;

if (!depth) break;
}
var endRow = row;
if (endRow > start.row) {
if (endRow > start.row && line) {
return new Range(start.row, start.column, endRow, line.length);
}
};
Expand Down