diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-06-16 00:56:28 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-06-16 00:56:28 -0700 |
commit | af883f6c17af8b3b1d4a6fb780855d991c2dcf36 (patch) | |
tree | fba0451a42b440bc79d568000f7e83f35761eb03 /extension | |
parent | c42b20fe543cd7550a42c25c3eb834a209abbade (diff) | |
download | sncontinue-af883f6c17af8b3b1d4a6fb780855d991c2dcf36.tar.gz sncontinue-af883f6c17af8b3b1d4a6fb780855d991c2dcf36.tar.bz2 sncontinue-af883f6c17af8b3b1d4a6fb780855d991c2dcf36.zip |
catching and explaining tracebacks
Diffstat (limited to 'extension')
-rw-r--r-- | extension/src/terminal/terminalEmulator.ts | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/extension/src/terminal/terminalEmulator.ts b/extension/src/terminal/terminalEmulator.ts index 35f02ac0..9d90b331 100644 --- a/extension/src/terminal/terminalEmulator.ts +++ b/extension/src/terminal/terminalEmulator.ts @@ -70,12 +70,13 @@ export class CapturedTerminal { private hasRunCommand: boolean = false; private dataEndsInPrompt(strippedData: string): boolean { - const lines = this.dataBuffer.split("\n"); + const lines = strippedData.split("\n"); + const last_line = lines[lines.length - 1]; return ( - lines.length > 0 && - (lines[lines.length - 1].includes("bash-") || - lines[lines.length - 1].includes(") $ ")) && - lines[lines.length - 1].includes("$") + (lines.length > 0 && + (last_line.includes("bash-") || last_line.includes(") $ ")) && + last_line.includes("$")) || + (last_line.includes("]> ") && last_line.includes(") [")) ); } @@ -127,12 +128,12 @@ export class CapturedTerminal { // Split the output by commands so it can be sent to Continue Server const strippedData = stripAnsi(data); - this.splitByCommandsBuffer += strippedData; + this.splitByCommandsBuffer += data; if (this.dataEndsInPrompt(strippedData)) { if (this.onCommandOutput) { - this.onCommandOutput(this.splitByCommandsBuffer); + this.onCommandOutput(stripAnsi(this.splitByCommandsBuffer)); } - this.dataBuffer = ""; + this.splitByCommandsBuffer = ""; } } @@ -166,6 +167,7 @@ export class CapturedTerminal { // Pass data through to terminal this.writeEmitter.fire(data); + this.splitByCommandsListener(data); for (let listener of this.onDataListeners) { listener(data); } |