提交 21d517ef 编写于 作者: M Martin Aeschlimann

[html] fold multi line comments

上级 ff3c4035
......@@ -149,12 +149,12 @@ export function getHTMLFoldingRegions(htmlLanguageService: HTMLLanguageService,
break;
}
case TokenType.Comment: {
let startLine = document.positionAt(scanner.getTokenOffset()).line;
let text = scanner.getTokenText();
let m = text.match(/^\s*#(region\b)|(endregion\b)/);
if (m) {
let line = document.positionAt(scanner.getTokenOffset()).line;
if (m[1]) { // start pattern match
let range = { startLine: line, endLine: line, type: FoldingRangeType.Region };
let range = { startLine, endLine: startLine, type: FoldingRangeType.Region };
stack.push(range);
elementNames.push('');
} else {
......@@ -165,13 +165,19 @@ export function getHTMLFoldingRegions(htmlLanguageService: HTMLLanguageService,
if (i >= 0) {
let range = stack[i];
stack.length = i;
if (line > range.startLine && prevStart !== range.startLine) {
range.endLine = line;
if (startLine > range.startLine && prevStart !== range.startLine) {
range.endLine = startLine;
addRange(range);
prevStart = range.startLine;
}
}
}
} else {
let endLine = document.positionAt(scanner.getTokenOffset() + scanner.getTokenLength()).line;
if (startLine < endLine) {
addRange({ startLine, endLine, type: FoldingRangeType.Comment });
prevStart = startLine;
}
}
break;
}
......
......@@ -84,14 +84,16 @@ suite('Object Folding', () => {
assertRanges(input, [r(0, 7), r(5, 6)]);
});
// test('Fold commment', () => {
// let input = [
// /*0*/'/*',
// /*1*/' multi line',
// /*2*/'*/',
// ];
// assertRanges(input, [r(0, 2, 'comment')]);
// });
test('Fold commment', () => {
let input = [
/*0*/'<!--',
/*1*/' multi line',
/*2*/'-->',
/*3*/'<!-- some stuff',
/*4*/' some more stuff -->',
];
assertRanges(input, [r(0, 2, 'comment'), r(3, 4, 'comment')]);
});
// test('Fold regions', () => {
// let input = [
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册