diff --git a/src/vs/base/browser/markdownRenderer.ts b/src/vs/base/browser/markdownRenderer.ts index b4dd91602b864e..f6ff4f3821608c 100644 --- a/src/vs/base/browser/markdownRenderer.ts +++ b/src/vs/base/browser/markdownRenderer.ts @@ -756,7 +756,7 @@ function createPlainTextRenderer(): marked.Renderer { return text; }; renderer.codespan = ({ text }: marked.Tokens.Codespan): string => { - return escape(text); + return text; }; renderer.br = (_: marked.Tokens.Br): string => { return '\n'; diff --git a/src/vs/base/test/browser/markdownRenderer.test.ts b/src/vs/base/test/browser/markdownRenderer.test.ts index 6e539f096559cd..daac674de8c3a0 100644 --- a/src/vs/base/test/browser/markdownRenderer.test.ts +++ b/src/vs/base/test/browser/markdownRenderer.test.ts @@ -388,6 +388,11 @@ suite('MarkdownRenderer', () => { const result: string = renderAsPlaintext(markdown, { includeCodeBlocksFences: true }); assert.strictEqual(result, expected); }); + + test('does not double-escape entities inside code spans', () => { + assert.strictEqual(renderAsPlaintext({ value: 'Run `tests & build`' }), 'Run tests & build'); + assert.strictEqual(renderAsPlaintext({ value: 'Use `