From 8f55333d2320110174325592bfeb381459b1fcbe Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Mon, 12 Jul 2021 22:31:17 +0200 Subject: [PATCH] fixed visual layout of readline prompts --- tabby-terminal/src/api/streamProcessing.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tabby-terminal/src/api/streamProcessing.ts b/tabby-terminal/src/api/streamProcessing.ts index ea1c4413..d663c422 100644 --- a/tabby-terminal/src/api/streamProcessing.ts +++ b/tabby-terminal/src/api/streamProcessing.ts @@ -33,19 +33,9 @@ export class TerminalStreamProcessor { constructor (private options: StreamProcessingOptions) { this.inputReadlineInStream = new PassThrough() this.inputReadlineOutStream = new PassThrough() - this.inputReadline = createReadline({ - input: this.inputReadlineInStream, - output: this.inputReadlineOutStream, - terminal: true, - prompt: this.options.inputMode === 'readline-hex' ? 'hex> ' : '> ', - } as any) this.inputReadlineOutStream.on('data', data => { this.outputToTerminal.next(Buffer.from(data)) }) - this.inputReadline.on('line', line => { - this.onTerminalInput(Buffer.from(line + '\n')) - this.resetInputPrompt() - }) this.outputToTerminal$.pipe(debounce(() => interval(500))).subscribe(() => { if (this.started) { this.onOutputSettled() @@ -54,14 +44,24 @@ export class TerminalStreamProcessor { } start (): void { + this.inputReadline = createReadline({ + input: this.inputReadlineInStream, + output: this.inputReadlineOutStream, + terminal: true, + prompt: this.options.inputMode === 'readline-hex' ? 'hex> ' : '> ', + } as any) + this.inputReadline.on('line', line => { + this.onTerminalInput(Buffer.from(line + '\n')) + this.resetInputPrompt() + }) this.started = true - this.onOutputSettled() } feedFromSession (data: Buffer): void { if (this.options.inputMode?.startsWith('readline')) { if (this.inputPromptVisible) { clearLine(this.inputReadlineOutStream, 0) + this.outputToTerminal.next(Buffer.from('\r')) this.inputPromptVisible = false } }