typescript 如何在vscode扩展中打开readonly markdown预览?

ru9i0ody  于 2023-06-24  发布在  TypeScript
关注(0)|答案(1)|浏览(147)

我正在做一个vscode扩展,当用户点击按钮时,我需要一个markdown预览来打开特定的内容。
现在我用这个:

let moreInfo = vscode.commands.registerCommand('moreInformation', () => {
        const uri = vscode.Uri.file(context.asAbsolutePath('./resources/info.md'));
        vscode.commands.executeCommand("markdown.showPreview", uri);
    });

这样做的工作,但当你双击预览,它实际上打开了源markdown代码,并允许用户修改它。有没有办法以只读模式打开markdown预览?谢谢你。

kx7yvsdv

kx7yvsdv1#

恐怕没有什么好的解决办法。有一个设置可以控制双击markdown预览并打开其关联文件:

Markdown > Preview: Double Click To Switch To Editor

默认值是启用的,所以你必须在扩展中禁用它,你可能不想对你的用户这样做。
我能想到的另一种方法是检测markdown raw编辑器是否已打开,并将其设置为只读。

vscode.window.onDidChangeActiveTextEditor(async ed => {
    // if (ed.document.fileName === 'the markdown file to lock') {then do below}
    await vscode.commands.executeCommand('workbench.action.files.setActiveEditorReadonlyInSession');
});

这确实有效-它仍然会打开原始的markdown文件,但它将被设置为只读。但用户也可以击败这一点,但切换关闭只读模式的文件。
因此,目前还没有好的解决方案来解决您的问题。

相关问题