diff --git a/src/integrations/terminal/Terminal.ts b/src/integrations/terminal/Terminal.ts index 340c3427d1..65c51738b1 100644 --- a/src/integrations/terminal/Terminal.ts +++ b/src/integrations/terminal/Terminal.ts @@ -256,6 +256,10 @@ export class Terminal { Terminal.shellIntegrationTimeout = timeoutMs } + public static getShellIntegrationTimeout(): number { + return Terminal.shellIntegrationTimeout + } + public static compressTerminalOutput(input: string, lineLimit: number): string { return truncateOutput(applyRunLengthEncoding(input), lineLimit) } diff --git a/src/integrations/terminal/TerminalProcess.ts b/src/integrations/terminal/TerminalProcess.ts index 21d6557715..cd54ed1ecb 100644 --- a/src/integrations/terminal/TerminalProcess.ts +++ b/src/integrations/terminal/TerminalProcess.ts @@ -254,12 +254,16 @@ export class TerminalProcess extends EventEmitter { // Emit no_shell_integration event with descriptive message this.emit( "no_shell_integration", - "VSCE shell integration stream did not start within 3 seconds. Terminal problem?", + `VSCE shell integration stream did not start within ${Terminal.getShellIntegrationTimeout() / 1000} seconds. Terminal problem?`, ) // Reject with descriptive error - reject(new Error("VSCE shell integration stream did not start within 3 seconds.")) - }, 3000) + reject( + new Error( + `VSCE shell integration stream did not start within ${Terminal.getShellIntegrationTimeout() / 1000} seconds.`, + ), + ) + }, Terminal.getShellIntegrationTimeout()) // Clean up timeout if stream becomes available this.once("stream_available", (stream: AsyncIterable) => {