在VS代码扩展中使用集成终端

时间:2016-08-27 17:39:53

标签: visual-studio-code vscode-extensions

有多个命令与VS Code提供的Integrated Terminal有关。在我的扩展程序中,我可以打开它并使用workbench.action.terminal.focus来关注它,但是通过runSelectedText执行命令似乎很麻烦。理想情况下,我希望能够直接运行命令,而无需使用中间文档来模拟选择并能够读取结果。

我发现MainThreadTerminalService似乎提供了我想要的东西,但我不知道如何,如果我甚至可以从扩展中使用它。扫描node_modules/vscode/vscode.d.ts 终端没有产生任何结果,所以我认为它还不可能。

使用TerminalPasteAction运行命令似乎是一个选项,但我首先必须将命令放入剪贴板,并且似乎没有一种好方法来监听结果。

我知道我可以运行子进程并听取它的标准输出和错误,但是由于VS Code提供了集成的终端窗口,如果用户在单独的集成终端选项卡中运行时可以看到这些命令会很好我的扩展专属。这可能吗?会吗?

1 个答案:

答案 0 :(得分:3)

检查此帖子 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;
}