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