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 | c196431ff1de014827066e3a04c39438c34ebe3d (patch) | |
tree | a91625915ea31f00b0991ff3f333925e17bab5a4 /extension/src/activation/activate.ts | |
parent | 085c6f846715d55d6638c73d34886ddf2a26d1b5 (diff) | |
parent | 55611ef0b6ca014ff091a1cd18fb749ab210b3ec (diff) | |
download | sncontinue-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.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; } |