summaryrefslogtreecommitdiff
path: root/extension/src
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-08-18 00:59:27 -0700
committerNate Sesti <sestinj@gmail.com>2023-08-18 00:59:27 -0700
commitd0483ba15b4ad13399a3385ae351cf33cca3db7f (patch)
tree1aeb6f954a9ef8a5cd4b6360d5349acedf2df62b /extension/src
parent6abe7be1680b5d8ebc7b540df2393ae6e1f268b7 (diff)
downloadsncontinue-d0483ba15b4ad13399a3385ae351cf33cca3db7f.tar.gz
sncontinue-d0483ba15b4ad13399a3385ae351cf33cca3db7f.tar.bz2
sncontinue-d0483ba15b4ad13399a3385ae351cf33cca3db7f.zip
feat: :sparkles: alt+cmd+d to automatically debug terminal!
Diffstat (limited to 'extension/src')
-rw-r--r--extension/src/commands.ts3
-rw-r--r--extension/src/continueIdeClient.ts22
2 files changed, 25 insertions, 0 deletions
diff --git a/extension/src/commands.ts b/extension/src/commands.ts
index ea12699e..4761826e 100644
--- a/extension/src/commands.ts
+++ b/extension/src/commands.ts
@@ -63,6 +63,9 @@ const commandsMap: { [command: string]: (...args: any) => any } = {
const uri = vscode.Uri.file(logFile);
await vscode.window.showTextDocument(uri);
},
+ "continue.debugTerminal": async () => {
+ await ideProtocolClient.debugTerminal();
+ },
};
export function registerAllCommands(context: vscode.ExtensionContext) {
diff --git a/extension/src/continueIdeClient.ts b/extension/src/continueIdeClient.ts
index 5b9e285d..6c107a63 100644
--- a/extension/src/continueIdeClient.ts
+++ b/extension/src/continueIdeClient.ts
@@ -227,6 +227,11 @@ class IdeProtocolClient {
contents: this.readFile(data.filepath),
});
break;
+ case "getTerminalContents":
+ messenger.send("getTerminalContents", {
+ contents: await this.getTerminalContents(),
+ });
+ break;
case "editFile":
const fileEdit = await this.editFile(data.edit);
messenger.send("editFile", {
@@ -491,6 +496,18 @@ class IdeProtocolClient {
return contents;
}
+ async getTerminalContents(): Promise<string> {
+ await vscode.commands.executeCommand("workbench.action.terminal.selectAll");
+ await vscode.commands.executeCommand(
+ "workbench.action.terminal.copySelection"
+ );
+ await vscode.commands.executeCommand(
+ "workbench.action.terminal.clearSelection"
+ );
+ let terminalContents = await vscode.env.clipboard.readText();
+ return terminalContents;
+ }
+
editFile(edit: FileEdit): Promise<FileEditWithFullContents> {
return new Promise((resolve, reject) => {
openEditorAndRevealRange(
@@ -574,6 +591,11 @@ class IdeProtocolClient {
this.messenger?.send("mainUserInput", { input });
}
+ async debugTerminal() {
+ const contents = await this.getTerminalContents();
+ this.messenger?.send("debugTerminal", { contents });
+ }
+
deleteAtIndex(index: number) {
this.messenger?.send("deleteAtIndex", { index });
}