mirror of
https://github.com/microsoft/vscode.git
synced 2026-07-06 14:24:04 -05:00
Merge pull request #237524 from microsoft/tyriar/234672
Initialize shellIntegration and shellIntegration.cwd of existing terminals on startup
This commit is contained in:
@@ -33,7 +33,18 @@ export class MainThreadTerminalShellIntegration extends Disposable implements Ma
|
||||
}
|
||||
}));
|
||||
|
||||
// onDidChangeTerminalShellIntegration
|
||||
// onDidchangeTerminalShellIntegration initial state
|
||||
for (const terminal of this._terminalService.instances) {
|
||||
if (terminal.capabilities.has(TerminalCapability.CommandDetection)) {
|
||||
this._proxy.$shellIntegrationChange(terminal.instanceId);
|
||||
const cwdDetection = terminal.capabilities.get(TerminalCapability.CwdDetection);
|
||||
if (cwdDetection) {
|
||||
this._proxy.$cwdChange(terminal.instanceId, this._convertCwdToUri(cwdDetection.getCwd()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// onDidChangeTerminalShellIntegration via command detection
|
||||
const onDidAddCommandDetection = this._store.add(this._terminalService.createOnInstanceEvent(instance => {
|
||||
return Event.map(
|
||||
Event.filter(instance.capabilities.onDidAddCapabilityType, e => {
|
||||
@@ -43,6 +54,12 @@ export class MainThreadTerminalShellIntegration extends Disposable implements Ma
|
||||
})).event;
|
||||
this._store.add(onDidAddCommandDetection(e => this._proxy.$shellIntegrationChange(e.instanceId)));
|
||||
|
||||
// onDidChangeTerminalShellIntegration via cwd
|
||||
const cwdChangeEvent = this._store.add(this._terminalService.createOnInstanceCapabilityEvent(TerminalCapability.CwdDetection, e => e.onDidChangeCwd));
|
||||
this._store.add(cwdChangeEvent.event(e => {
|
||||
this._proxy.$cwdChange(e.instance.instanceId, this._convertCwdToUri(e.data));
|
||||
}));
|
||||
|
||||
// onDidStartTerminalShellExecution
|
||||
const commandDetectionStartEvent = this._store.add(this._terminalService.createOnInstanceCapabilityEvent(TerminalCapability.CommandDetection, e => e.onCommandExecuted));
|
||||
let currentCommand: ITerminalCommand | undefined;
|
||||
@@ -75,12 +92,6 @@ export class MainThreadTerminalShellIntegration extends Disposable implements Ma
|
||||
});
|
||||
}));
|
||||
|
||||
// onDidChangeTerminalShellIntegration via cwd
|
||||
const cwdChangeEvent = this._store.add(this._terminalService.createOnInstanceCapabilityEvent(TerminalCapability.CwdDetection, e => e.onDidChangeCwd));
|
||||
this._store.add(cwdChangeEvent.event(e => {
|
||||
this._proxy.$cwdChange(e.instance.instanceId, this._convertCwdToUri(e.data));
|
||||
}));
|
||||
|
||||
// Clean up after dispose
|
||||
this._store.add(this._terminalService.onDidDisposeInstance(e => this._proxy.$closeTerminal(e.instanceId)));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user