diff options
author | Ty Dunn <ty@tydunn.com> | 2023-06-16 15:56:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-16 15:56:01 -0700 |
commit | d9e576d0f81a22a0c6e7f0659e67f3fa38a0d1aa (patch) | |
tree | 7d798f83ae62f4d28dfb5c2256b01d52e9a5c2d3 /extension/src/activation/activate.ts | |
parent | c980e01d2f9328d5c37df14bea02f84a4890bc6a (diff) | |
parent | 3aa4f014608c09b8da2f4ab95137a959487af245 (diff) | |
download | sncontinue-d9e576d0f81a22a0c6e7f0659e67f3fa38a0d1aa.tar.gz sncontinue-d9e576d0f81a22a0c6e7f0659e67f3fa38a0d1aa.tar.bz2 sncontinue-d9e576d0f81a22a0c6e7f0659e67f3fa38a0d1aa.zip |
Merge branch 'main' into too-large
Diffstat (limited to 'extension/src/activation/activate.ts')
-rw-r--r-- | extension/src/activation/activate.ts | 38 |
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; } |