From 75c51bc2812d460fbf1708d5ebc85ba1a40ac95b Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Mon, 28 Jul 2025 11:43:50 -0700 Subject: [PATCH] Fix math blocks after paragraphs Fixes #258288 --- .../contrib/markdown/browser/markedKatexSupport.ts | 3 +++ ...d_support_blocks_immediately_after_paragraph.0.snap | 1 + .../markdown/test/browser/markdownKatexSupport.test.ts | 10 ++++++++++ 3 files changed, 14 insertions(+) create mode 100644 src/vs/workbench/contrib/markdown/test/browser/__snapshots__/Markdown_Katex_Support_Test_Should_support_blocks_immediately_after_paragraph.0.snap diff --git a/src/vs/workbench/contrib/markdown/browser/markedKatexSupport.ts b/src/vs/workbench/contrib/markdown/browser/markedKatexSupport.ts index b40250ba514..6f1867ad3a7 100644 --- a/src/vs/workbench/contrib/markdown/browser/markedKatexSupport.ts +++ b/src/vs/workbench/contrib/markdown/browser/markedKatexSupport.ts @@ -207,6 +207,9 @@ export namespace MarkedKatexExtension { return { name: 'blockKatex', level: 'block', + start(src: string) { + return src.match(new RegExp(blockRule.source, 'm'))?.index; + }, tokenizer(src: string, tokens: marked.Token[]) { const match = src.match(blockRule); if (match) { diff --git a/src/vs/workbench/contrib/markdown/test/browser/__snapshots__/Markdown_Katex_Support_Test_Should_support_blocks_immediately_after_paragraph.0.snap b/src/vs/workbench/contrib/markdown/test/browser/__snapshots__/Markdown_Katex_Support_Test_Should_support_blocks_immediately_after_paragraph.0.snap new file mode 100644 index 00000000000..5b0db350ca6 --- /dev/null +++ b/src/vs/workbench/contrib/markdown/test/browser/__snapshots__/Markdown_Katex_Support_Test_Should_support_blocks_immediately_after_paragraph.0.snap @@ -0,0 +1 @@ +

Block example:

ex2dx=π\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}ex2dx=π diff --git a/src/vs/workbench/contrib/markdown/test/browser/markdownKatexSupport.test.ts b/src/vs/workbench/contrib/markdown/test/browser/markdownKatexSupport.test.ts index 5bac4cfd8c8..5ef9f2cb65a 100644 --- a/src/vs/workbench/contrib/markdown/test/browser/markdownKatexSupport.test.ts +++ b/src/vs/workbench/contrib/markdown/test/browser/markdownKatexSupport.test.ts @@ -35,5 +35,15 @@ suite('Markdown Katex Support Test', () => { const rendered = await renderMarkdownWithKatex('Hello ($\\frac{1}{2}$) World!'); await assertSnapshot(rendered.element.innerHTML); }); + + test('Should support blocks immediately after paragraph', async () => { + const rendered = await renderMarkdownWithKatex([ + 'Block example:', + '$$', + '\\int_{-\\infty}^{\\infty} e^{-x^2} dx = \\sqrt{\\pi}', + '$$', + ].join('\n')); + await assertSnapshot(rendered.element.innerHTML); + }); });