diff options
Diffstat (limited to 'extension/src')
| -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);        }  | 
