summaryrefslogtreecommitdiff
path: root/extension
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-06-16 00:56:28 -0700
committerNate Sesti <sestinj@gmail.com>2023-06-16 00:56:28 -0700
commitaf883f6c17af8b3b1d4a6fb780855d991c2dcf36 (patch)
treefba0451a42b440bc79d568000f7e83f35761eb03 /extension
parentc42b20fe543cd7550a42c25c3eb834a209abbade (diff)
downloadsncontinue-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.ts18
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);
}