From 39ea914be6f697cb9305e3043b2c7bba4b37c495 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 30 Aug 2017 09:41:13 +0200 Subject: [PATCH] fix #33486 --- .../api/node/extHostTypeConverters.ts | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts index e7dde8f57a5..a262f876257 100644 --- a/src/vs/workbench/api/node/extHostTypeConverters.ts +++ b/src/vs/workbench/api/node/extHostTypeConverters.ts @@ -150,14 +150,27 @@ export namespace MarkdownString { return markup.map(MarkdownString.from); } + interface Codeblock { + language: string; + value: string; + } + + function isCodeblock(thing: any): thing is Codeblock { + return typeof thing === 'object' + && typeof (thing).language === 'string' + && typeof (thing).value === 'string'; + } + export function from(markup: vscode.MarkdownString | vscode.MarkedString): htmlContent.IMarkdownString { - if (htmlContent.isMarkdownString(markup)) { - return markup; - } else if (typeof markup === 'string' || !markup) { - return { value: markup || '', isTrusted: true }; - } else { + if (isCodeblock(markup)) { const { language, value } = markup; - return { value: '```' + language + '\n' + value + '\n```' }; + return { value: '```' + language + '\n' + value + '\n```\n' }; + } else if (htmlContent.isMarkdownString(markup)) { + return markup; + } else if (typeof markup === 'string') { + return { value: markup, isTrusted: true }; + } else { + return { value: '' }; } } export function to(value: htmlContent.IMarkdownString): vscode.MarkdownString {