【发布时间】:2021-06-28 03:10:03
【问题描述】:
在我的 VS Code 扩展中,我有一些使用内置 Markdown 扩展的代码。我通过注册为 Markdown 插件并将以下代码放在扩展程序的激活方法末尾来捕获对它的引用。
return {
extendMarkdownIt(mdparam: any) {
return md = mdparam;
}
};
Markdown 在激活时调用它。
通常这不是问题。我的扩展程序的大多数用例都涉及已加载到活动编辑器中的降价文件,并且加载此文件会触发降价扩展程序的激活。
但是有些合法的用例并非如此。
我需要以编程方式触发 markdown 扩展的激活。其中一些情况涉及在活动编辑器中打开不同类型的文件,因此将降价文件加载到其中是不可接受的选项。
一些潜在的策略:
- 更改语言模式。有一个命令
workbench.action.editor.changeLanguageMode,但没有文档。我试过了
vscode.commands.executeCommand('workbench.action.editor.changeLanguageMode', 'md');
但这会触发 UI
所以我尝试了一种我在其他命令的参数中看到的模式并添加了, true。这抑制了 UI,但似乎不起作用。
- 将降价文件加载到新编辑器中,然后再次关闭它。这应该可以,但它丑。
- 在我的扩展程序的贡献部分中添加一些内容,以更改 Markdown 扩展程序的激活触发器,以便由我的扩展程序运行的其他文件类型触发。
在这些选项中,我最喜欢 3 个,但我什至不知道这是否可能。选项 1 受到 vscode 内部命令的蹩脚(在许多情况下不存在)文档的阻碍。
【问题讨论】:
-
json 文件中的 Markdown 扩展需要什么?
-
@rioV8 渲染方法。
-
如果您在其中一个编辑器中没有 Markdown 文件,如何呈现 Markdown
-
我没有加载“降价”我正在加载 json 中列出的几个降价文件。这就是问题第一行所说的。多个文档,根据 json 文件中的元数据。文档是降价的。其中哪一部分是模棱两可的?
-
Markdown Render 是编辑器中 TextDocument 内容的 WebView(视图!),那么您想如何在没有编辑器的情况下呈现 Markdown。您是否使用字符串文档子句创建了一个无标题文档并将语言 ID 设置为
markdown?
标签: visual-studio-code vscode-extensions