summaryrefslogtreecommitdiff
path: root/extension/src/activation/activate.ts
diff options
context:
space:
mode:
authorTy Dunn <ty@tydunn.com>2023-06-16 15:56:01 -0700
committerGitHub <noreply@github.com>2023-06-16 15:56:01 -0700
commitc196431ff1de014827066e3a04c39438c34ebe3d (patch)
treea91625915ea31f00b0991ff3f333925e17bab5a4 /extension/src/activation/activate.ts
parent085c6f846715d55d6638c73d34886ddf2a26d1b5 (diff)
parent55611ef0b6ca014ff091a1cd18fb749ab210b3ec (diff)
downloadsncontinue-c196431ff1de014827066e3a04c39438c34ebe3d.tar.gz
sncontinue-c196431ff1de014827066e3a04c39438c34ebe3d.tar.bz2
sncontinue-c196431ff1de014827066e3a04c39438c34ebe3d.zip
Merge branch 'main' into too-large
Diffstat (limited to 'extension/src/activation/activate.ts')
-rw-r--r--extension/src/activation/activate.ts38
1 files changed, 38 insertions, 0 deletions
diff --git a/extension/src/activation/activate.ts b/extension/src/activation/activate.ts
index 135a8ec7..32726c86 100644
--- a/extension/src/activation/activate.ts
+++ b/extension/src/activation/activate.ts
@@ -8,6 +8,7 @@ import * as path from "path";
import IdeProtocolClient from "../continueIdeClient";
import { getContinueServerUrl } from "../bridge";
import { setupDebugPanel, ContinueGUIWebviewViewProvider } from "../debugPanel";
+import { CapturedTerminal } from "../terminal/terminalEmulator";
export let extensionContext: vscode.ExtensionContext | undefined = undefined;
@@ -47,5 +48,42 @@ export function activateExtension(
);
})();
+ // All opened terminals should be replaced by our own terminal
+ vscode.window.onDidOpenTerminal((terminal) => {
+ if (terminal.name === "Continue") {
+ return;
+ }
+ const options = terminal.creationOptions;
+ const capturedTerminal = new CapturedTerminal({
+ ...options,
+ name: "Continue",
+ });
+ terminal.dispose();
+ if (!ideProtocolClient.continueTerminal) {
+ ideProtocolClient.continueTerminal = capturedTerminal;
+ }
+ });
+
+ // If any terminals are open to start, replace them
+ vscode.window.terminals.forEach((terminal) => {
+ if (terminal.name === "Continue") {
+ return;
+ }
+ const options = terminal.creationOptions;
+ const capturedTerminal = new CapturedTerminal(
+ {
+ ...options,
+ name: "Continue",
+ },
+ (commandOutput: string) => {
+ ideProtocolClient.sendCommandOutput(commandOutput);
+ }
+ );
+ terminal.dispose();
+ if (!ideProtocolClient.continueTerminal) {
+ ideProtocolClient.continueTerminal = capturedTerminal;
+ }
+ });
+
extensionContext = context;
}