在Visual Studio代码版本1.64中,带有4个前导空格的MarkdownString在Hover中显示为空白
In Visual Studio code version 1.64, MarkdownString with 4 leading spaces is displayed as blank in Hover
我们的 Visual Studio 代码扩展使用 HoverProvider API 在编辑器上显示自定义悬停。我们将 MarkdownString 用于悬停内容,每行有 4 个前导空格以启用语法着色。直到版本 1.63,这工作正常。但是在使用 vscode 版本 1.64 时,悬停显示空的工具提示。
事实证明,删除前导空格后问题就解决了。但是如果没有前导空格,语法着色不会显示。 MarkdownString 的行为是否有变化,或者是否有不同的方法来为数据类型启用语法着色?
我认为首选的方法是使用这个:
const markdownString = new vscode.MarkdownString();
const codeBlock = `const a = 12;
if (a) return;`; // any preceding tabs will be rendered in a template literal, so flush left
// const codeBlock2 = `const c = 12;\nif (c) return;`; // works, alternate form with newline
markdownString.appendCodeblock(codeBlock, "javascript");
markdownString.isTrusted = true;
return new vscode.Hover(markdownString, new vscode.Range(position, position));
<pre>
和 <code>
标签在 markdownString
中也受支持:
content.appendMarkdown(`<p><b> Some label: <code>${value}</code></b></p>`);
我们的 Visual Studio 代码扩展使用 HoverProvider API 在编辑器上显示自定义悬停。我们将 MarkdownString 用于悬停内容,每行有 4 个前导空格以启用语法着色。直到版本 1.63,这工作正常。但是在使用 vscode 版本 1.64 时,悬停显示空的工具提示。
事实证明,删除前导空格后问题就解决了。但是如果没有前导空格,语法着色不会显示。 MarkdownString 的行为是否有变化,或者是否有不同的方法来为数据类型启用语法着色?
我认为首选的方法是使用这个:
const markdownString = new vscode.MarkdownString();
const codeBlock = `const a = 12;
if (a) return;`; // any preceding tabs will be rendered in a template literal, so flush left
// const codeBlock2 = `const c = 12;\nif (c) return;`; // works, alternate form with newline
markdownString.appendCodeblock(codeBlock, "javascript");
markdownString.isTrusted = true;
return new vscode.Hover(markdownString, new vscode.Range(position, position));
<pre>
和 <code>
标签在 markdownString
中也受支持:
content.appendMarkdown(`<p><b> Some label: <code>${value}</code></b></p>`);