Skip to content

Commit ee813f3

Browse files
authored
fix shell integration issues after clearing (microsoft#151223)
1 parent 0d827d4 commit ee813f3

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import { Color } from 'vs/base/common/color';
3232
import { ShellIntegrationAddon } from 'vs/platform/terminal/common/xterm/shellIntegrationAddon';
3333
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
3434
import { DecorationAddon } from 'vs/workbench/contrib/terminal/browser/xterm/decorationAddon';
35-
import { ITerminalCapabilityStore, ITerminalCommand } from 'vs/platform/terminal/common/capabilities/capabilities';
35+
import { ITerminalCapabilityStore, ITerminalCommand, TerminalCapability } from 'vs/platform/terminal/common/capabilities/capabilities';
3636
import { Emitter } from 'vs/base/common/event';
3737
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
3838

@@ -396,8 +396,10 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal {
396396

397397
clearBuffer(): void {
398398
this.raw.clear();
399-
// hack so that the next placeholder shows
400-
this._decorationAddon?.registerCommandDecoration({ marker: this.raw.registerMarker(0), hasOutput: false, timestamp: Date.now(), getOutput: () => { return undefined; }, command: '' }, true);
399+
// xterm.js does not clear the first prompt, so trigger these to simulate
400+
// the prompt being written
401+
this._capabilities.get(TerminalCapability.CommandDetection)?.handlePromptStart();
402+
this._capabilities.get(TerminalCapability.CommandDetection)?.handleCommandStart();
401403
}
402404

403405
private _setCursorBlink(blink: boolean): void {

0 commit comments

Comments
 (0)