【问题标题】:Using integrated terminal in a VS Code extension在 VS Code 扩展中使用集成终端
【发布时间】:2016-08-27 17:39:52
【问题描述】:

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

我找到了MainThreadTerminalService,它似乎提供了我想要的东西,但我不知道如何以及是否可以从扩展程序中使用它。为 terminal 扫描node_modules/vscode/vscode.d.ts 没有产生任何结果,所以我认为这还不可能。

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

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

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    检查这个线程 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 2021-08-04
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多