VS Code扩展开发:如何实现自动分栏打开PDF无需手动选编辑器?
分栏打开PDF文件的VS Code扩展开发问题
我正在为VS Code 1.94.2开发扩展,目标是实现分栏打开PDF文件。目前使用vscode.openWith命令编写了如下代码:
vscode.commands.executeCommand( 'vscode.openWith', uri_pointing_to_my_pdf_file, 'default', vscode.ViewColumn.Beside )
这段代码能按预期打开编辑器,但会弹出提示:“该文件无法在文本编辑器中显示,因为它是二进制文件或使用了不支持的文本编码”。点击“仍要打开”后,会出现两个选项:
- 文本编辑器 - 活动(
Built-In) - PDF预览 - 默认(
vscode-pdf)
选择vscode-pdf后可正常在分栏编辑器中显示PDF,但每次都需要手动选择。
问题:如何修改代码,让编辑器无需用户手动选择vscode-pdf就能直接显示PDF?
尝试过的无效方案:
- 修改
viewId:将viewId从'default'改为'vscode-pdf',但无效果。官方文档说明:viewId- 自定义编辑器视图ID,或使用'default'调用VS Code默认编辑器。 - 使用
vscode.open命令:该命令能正确显示PDF,但编辑器会在新标签页打开,而非分栏显示。
解决方案
方案1:正确使用vscode.open命令并指定分栏参数
你之前使用vscode.open时未配置分栏参数,导致默认在新标签打开。只需在命令的选项中明确指定viewColumn即可实现分栏显示:
vscode.commands.executeCommand('vscode.open', uri_pointing_to_my_pdf_file, { viewColumn: vscode.ViewColumn.Beside, preview: false // 可选,设置为false可避免以预览模式打开PDF });
VS Code会自动调用关联的默认编辑器(即vscode-pdf)打开PDF,同时按指定的分栏显示。
方案2:确认vscode-pdf的正确视图ID并使用vscode.openWith
若坚持使用vscode.openWith,需确认vscode-pdf扩展注册的自定义编辑器ID。部分版本的vscode-pdf使用的视图ID为vscode.pdf.preview而非vscode-pdf,尝试替换参数:
vscode.commands.executeCommand( 'vscode.openWith', uri_pointing_to_my_pdf_file, 'vscode.pdf.preview', vscode.ViewColumn.Beside )
如果该ID仍无效,可查看vscode-pdf扩展的package.json文件,找到contributes.customEditors字段下的id值,将其作为viewId传入即可。
内容的提问来源于stack exchange,提问作者Ilka
相关产品推荐
相关产品推荐

