【问题标题】:In a vscode extension is there a way to programatically Invoke "repl.action.copyall" through vscode.commands.executeCommand(...)在 vscode 扩展中有一种方法可以通过 vscode.commands.executeCommand(...) 以编程方式调用“repl.action.copyall”
【发布时间】:2020-09-17 15:24:42
【问题描述】:

简而言之,我正在寻找一种在 vscode 扩展中捕获调试控制台文本内容的方法。以下代码 sn-p 几乎完全符合我只对终端而不是调试控制台的要求。您也可以在控制台中右键单击并选择 -> 全部复制。最后,我不会将其粘贴到新的代码窗口,而是将其推送到端点以自动化测试报告。

    vscode.commands.executeCommand('workbench.action.terminal.selectAll').then(() => {
        vscode.commands.executeCommand('workbench.action.terminal.copySelection').then(() => {
            vscode.commands.executeCommand('workbench.action.terminal.clearSelection').then(() => {
                vscode.commands.executeCommand('workbench.action.files.newUntitledFile').then(() => {
                    vscode.commands.executeCommand('editor.action.clipboardPasteAction');
                });
            });
        }); 
    });

我已经尝试过了,但在 console.log 中出现错误

    vscode.commands.executeCommand('repl.action.copyall').then(() => {
        vscode.commands.executeCommand('workbench.action.files.newUntitledFile').then(() => {
            vscode.commands.executeCommand('editor.action.clipboardPasteAction');
        });
    });

拒绝的承诺未在 1 秒内处理:错误:找不到命令“repl.action.copyall” 扩展HostProcess.js:1048 堆栈跟踪:错误:找不到命令“repl.action.copyall” 在 u._tryExecuteCommand (file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:4213:713) 在 file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:4213:594

任何帮助我指出正确的方向将不胜感激!

【问题讨论】:

    标签: visual-studio-code vscode-extensions vscode-debugger


    【解决方案1】:

    不要用 Promises 做回调地狱

    只需在 then() 处理程序中返回一个新的 Promise

    vscode.commands.executeCommand('workbench.action.terminal.selectAll')
        .then(() => vscode.commands.executeCommand('workbench.action.terminal.copySelection'))         
        .then(() => vscode.commands.executeCommand('workbench.action.terminal.clearSelection'))
        .then(() => vscode.commands.executeCommand('workbench.action.files.newUntitledFile'))
        .then(() => vscode.commands.executeCommand('editor.action.clipboardPasteAction'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 2011-11-27
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多