在 VS Code 扩展中使用集成终端
Using integrated terminal in a VS Code extension
有多个命令与 VS Code 提供的 Integrated Terminal 有关。在我的扩展中,我可以使用 workbench.action.terminal.focus
打开它并聚焦它,但是 运行ning 命令似乎很难通过 runSelectedText
来完成。理想情况下,我希望能够直接 运行 命令,而无需中间文档来模拟选择并能够读取它们的结果。
我找到了 MainThreadTerminalService,它似乎提供了我想要的东西,但我不知道如何以及是否可以从扩展中使用它。扫描 node_modules/vscode/vscode.d.ts
寻找 终端 没有产生任何结果,所以我认为这还不可能。
使用 TerminalPasteAction 到 运行 命令似乎是一个选项,但我首先必须将命令放入剪贴板,而且似乎没有一个好的听法无论如何结果。
我知道我可以 运行 一个子进程并监听它的标准输出和错误,但是由于 VS Code 提供了集成终端 window,如果用户可以看到命令,因为它们 运行 在我的扩展程序独有的单独集成终端选项卡中。这可能吗?会吗?
检查此线程
https://github.com/Microsoft/vscode/issues/9957
显然 API 是有限的,但你有
CreateTerminal(name?: string): Terminal
interface Terminal {
name:string;
runCommand(cmd:string)
show(preserveFocus: boolean): void
hide(): void;
dispose(): void;
}
有多个命令与 VS Code 提供的 Integrated Terminal 有关。在我的扩展中,我可以使用 workbench.action.terminal.focus
打开它并聚焦它,但是 运行ning 命令似乎很难通过 runSelectedText
来完成。理想情况下,我希望能够直接 运行 命令,而无需中间文档来模拟选择并能够读取它们的结果。
我找到了 MainThreadTerminalService,它似乎提供了我想要的东西,但我不知道如何以及是否可以从扩展中使用它。扫描 node_modules/vscode/vscode.d.ts
寻找 终端 没有产生任何结果,所以我认为这还不可能。
使用 TerminalPasteAction 到 运行 命令似乎是一个选项,但我首先必须将命令放入剪贴板,而且似乎没有一个好的听法无论如何结果。
我知道我可以 运行 一个子进程并监听它的标准输出和错误,但是由于 VS Code 提供了集成终端 window,如果用户可以看到命令,因为它们 运行 在我的扩展程序独有的单独集成终端选项卡中。这可能吗?会吗?
检查此线程 https://github.com/Microsoft/vscode/issues/9957
显然 API 是有限的,但你有
CreateTerminal(name?: string): Terminal
interface Terminal {
name:string;
runCommand(cmd:string)
show(preserveFocus: boolean): void
hide(): void;
dispose(): void;
}