Skip to content

Commit 6e30cf3

Browse files
committed
Mark markdown comment folding regions as comments
Fixes microsoft#91271
1 parent 7cc0c75 commit 6e30cf3

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

extensions/markdown-language-features/src/features/foldingProvider.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ export default class MarkdownFoldingProvider implements vscode.FoldingRangeProvi
7777
return token.map[1] > token.map[0];
7878

7979
case 'html_block':
80+
if (isRegionMarker(token)) {
81+
return false;
82+
}
8083
return token.map[1] > token.map[0] + 1;
8184

8285
default:
@@ -92,7 +95,7 @@ export default class MarkdownFoldingProvider implements vscode.FoldingRangeProvi
9295
if (document.lineAt(end).isEmptyOrWhitespace && end >= start + 1) {
9396
end = end - 1;
9497
}
95-
return new vscode.FoldingRange(start, end);
98+
return new vscode.FoldingRange(start, end, listItem.type === 'html_block' && listItem.content.startsWith('<!--') ? vscode.FoldingRangeKind.Comment : undefined);
9699
});
97100
}
98101
}

extensions/markdown-language-features/src/test/foldingProvider.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,18 @@ a`);
175175
assert.strictEqual(firstFold.start, 1);
176176
assert.strictEqual(firstFold.end, 3);
177177
});
178+
179+
test('Should fold html block comments', async () => {
180+
const folds = await getFoldsForDocument(`x
181+
<!--
182+
fa
183+
-->`);
184+
assert.strictEqual(folds.length, 1);
185+
const firstFold = folds[0];
186+
assert.strictEqual(firstFold.start, 1);
187+
assert.strictEqual(firstFold.end, 3);
188+
assert.strictEqual(firstFold.kind, vscode.FoldingRangeKind.Comment);
189+
});
178190
});
179191

180192

0 commit comments

Comments
 (0)