From 5eab03cf7553fbc8763e2fb7c52195e9c5b7ae1f Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 7 Sep 2018 11:36:20 -0700 Subject: [PATCH] Fix folding code blocks / lists with front matter --- .../src/markdownEngine.ts | 1 + .../src/test/foldingProvider.test.ts | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/extensions/markdown-language-features/src/markdownEngine.ts b/extensions/markdown-language-features/src/markdownEngine.ts index c6b107af855..bc67e0bee18 100644 --- a/extensions/markdown-language-features/src/markdownEngine.ts +++ b/extensions/markdown-language-features/src/markdownEngine.ts @@ -107,6 +107,7 @@ export class MarkdownEngine { return engine.parse(text, {}).map(token => { if (token.map) { token.map[0] += offset; + token.map[1] += offset; } return token; }); diff --git a/extensions/markdown-language-features/src/test/foldingProvider.test.ts b/extensions/markdown-language-features/src/test/foldingProvider.test.ts index fad172dba24..667968d6bd8 100644 --- a/extensions/markdown-language-features/src/test/foldingProvider.test.ts +++ b/extensions/markdown-language-features/src/test/foldingProvider.test.ts @@ -122,6 +122,36 @@ d`); assert.strictEqual(firstFold.start, 1); assert.strictEqual(firstFold.end, 3); }); + + test('Should fold fenced code blocks', async () => { + const folds = await getFoldsForDocument(`~~~ts +a +~~~ +b`); + assert.strictEqual(folds.length, 1); + const firstFold = folds[0]; + assert.strictEqual(firstFold.start, 0); + assert.strictEqual(firstFold.end, 2); + }); + + test('Should fold fenced code blocks with yaml front matter', async () => { + const folds = await getFoldsForDocument(`--- +title: bla +--- + +~~~ts +a +~~~ + +a +a +b +a`); + assert.strictEqual(folds.length, 1); + const firstFold = folds[0]; + assert.strictEqual(firstFold.start, 4); + assert.strictEqual(firstFold.end, 6); + }); }); -- GitLab