小编ThF*_*ich的帖子

有没有办法使用 tmLanguage 语法来扩展 vscode 集成 Markdown 扩展语法高亮?

我正在开发 vscode 的语言扩展。我定义了一个 tmLanguage 文件,一切运行良好。在悬停功能中,使用vscode.MarkdownString.appendCodeblock()markdown 被正确解释,并且我的自定义语言的语法突出显示可以开箱即用,通过执行以下操作:

const content = new MarkdownString("", true)
content.appendMarkdown("## Examples: \n")
content.appendCodeblock(examples, "lmps")
Run Code Online (Sandbox Code Playgroud)

其中examples包含我的自定义语言的一些示例代码,"lmps"是我的语言标识符。(图像悬停示例

我想知道是否有办法在网络视图中实现同样的事情。我成功地在 webview 中显示了content,将 markdownString 编译成 html:

async function set_doc_panel_content(panel: DocPanel | undefined, md_content: vscode.MarkdownString) {
        const html: string = await vscode.commands.executeCommand('markdown.api.render', md_content.value) as string;
        panel!.webview.html = html;
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都很好,但是通过这种方式,Markdown 不知道我的自定义语言,并且不做任何语法突出显示。(示例图像 Webview)现在,我了解到向 Markdown 扩展添加语言支持可以通过在激活函数中返回一个对象来贡献一个 markdown-it 插件来实现。

export function activate(context: vscode.ExtensionContext) {

...

    return {
        extendMarkdownIt(md: any) {
          return md.use(require('markdown-it-emoji'));
        }
} …
Run Code Online (Sandbox Code Playgroud)

markdown visual-studio-code tmlanguage vscode-extensions markdown-it

5
推荐指数
1
解决办法
1184
查看次数