mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-12 09:50:11 -05:00
open/close dev tools when escape sequence logging toggled (#137746)
This commit is contained in:
@@ -194,12 +194,14 @@ export interface ITerminalService extends ITerminalInstanceHost {
|
||||
|
||||
resolveLocation(location?: ITerminalLocationOptions): TerminalLocation | undefined
|
||||
setNativeDelegate(nativeCalls: ITerminalServiceNativeDelegate): void;
|
||||
|
||||
toggleDevTools(open?: boolean): Promise<void>;
|
||||
handleNewRegisteredBackend(backend: ITerminalBackend): void;
|
||||
}
|
||||
|
||||
export interface ITerminalServiceNativeDelegate {
|
||||
getWindowCount(): Promise<number>;
|
||||
openDevTools(): Promise<void>;
|
||||
toggleDevTools(): Promise<void>;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -754,7 +756,7 @@ export interface ITerminalInstance {
|
||||
|
||||
addDisposable(disposable: IDisposable): void;
|
||||
|
||||
toggleEscapeSequenceLogging(): void;
|
||||
toggleEscapeSequenceLogging(): Promise<boolean>;
|
||||
|
||||
getInitialCwd(): Promise<string>;
|
||||
getCwd(): Promise<string>;
|
||||
|
||||
@@ -1156,8 +1156,10 @@ export function registerTerminalActions() {
|
||||
precondition: TerminalContextKeys.processSupported
|
||||
});
|
||||
}
|
||||
run(accessor: ServicesAccessor) {
|
||||
accessor.get(ITerminalService).activeInstance?.toggleEscapeSequenceLogging();
|
||||
async run(accessor: ServicesAccessor) {
|
||||
const terminalService = accessor.get(ITerminalService);
|
||||
const toggledOn = await terminalService.activeInstance?.toggleEscapeSequenceLogging();
|
||||
terminalService.toggleDevTools(toggledOn);
|
||||
}
|
||||
});
|
||||
registerAction2(class extends Action2 {
|
||||
|
||||
@@ -1751,9 +1751,10 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
}
|
||||
}
|
||||
|
||||
async toggleEscapeSequenceLogging(): Promise<void> {
|
||||
async toggleEscapeSequenceLogging(): Promise<boolean> {
|
||||
const xterm = await this._xtermReadyPromise;
|
||||
xterm.raw.options.logLevel = xterm.raw.options.logLevel === 'debug' ? 'info' : 'debug';
|
||||
return xterm.raw.options.logLevel === 'debug';
|
||||
}
|
||||
|
||||
async getInitialCwd(): Promise<string> {
|
||||
|
||||
@@ -540,6 +540,13 @@ export class TerminalService implements ITerminalService {
|
||||
this._nativeDelegate = nativeDelegate;
|
||||
}
|
||||
|
||||
async toggleDevTools(open?: boolean): Promise<void> {
|
||||
if (open) {
|
||||
this._nativeDelegate?.openDevTools();
|
||||
} else {
|
||||
this._nativeDelegate?.toggleDevTools();
|
||||
}
|
||||
}
|
||||
private _shouldReviveProcesses(reason: ShutdownReason): boolean {
|
||||
if (!this._configHelper.config.enablePersistentSessions) {
|
||||
return false;
|
||||
|
||||
@@ -31,7 +31,9 @@ export class TerminalNativeContribution extends Disposable implements IWorkbench
|
||||
this._register(nativeHostService.onDidResumeOS(() => this._onOsResume()));
|
||||
|
||||
this._terminalService.setNativeDelegate({
|
||||
getWindowCount: () => nativeHostService.getWindowCount()
|
||||
getWindowCount: () => nativeHostService.getWindowCount(),
|
||||
openDevTools: () => nativeHostService.openDevTools(),
|
||||
toggleDevTools: () => nativeHostService.toggleDevTools()
|
||||
});
|
||||
|
||||
const connection = remoteAgentService.getConnection();
|
||||
|
||||
Reference in New Issue
Block a user