在 vscode 扩展中,有没有办法通过 vscode.command.executeCommand(...) 以编程方式调用"repl.action.copyall"



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

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');
});
});
}); 
});

我已经尝试过了,但控制台中出现错误。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"extensionHostProcess.js:1048堆栈跟踪:错误:找不到命令"repl.action.copyall"在u._tryExecuteCommand(file:///Applications/VisualStudio Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:4213:713(在file:///Applications/VisualStudio Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:4213:594

如能为我指明正确方向,我们将不胜感激!

不要用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'))

最新更新