diff --git a/src/vs/workbench/api/browser/mainThreadTerminalService.ts b/src/vs/workbench/api/browser/mainThreadTerminalService.ts index 68913bca466..372db8a6af2 100644 --- a/src/vs/workbench/api/browser/mainThreadTerminalService.ts +++ b/src/vs/workbench/api/browser/mainThreadTerminalService.ts @@ -309,15 +309,16 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape return true; } - private async _onRequestAvailableShells(callback: IAvailableShellsRequest): Promise { + private async _onRequestAvailableShells(req: IAvailableShellsRequest): Promise { if (this._isPrimaryExtHost()) { - callback(await this._proxy.$getAvailableShells()); + req.callback(await this._proxy.$getAvailableShells()); } } - private _onRequestDefaultShellAndArgs(request: IDefaultShellAndArgsRequest): void { + private async _onRequestDefaultShellAndArgs(req: IDefaultShellAndArgsRequest): Promise { if (this._isPrimaryExtHost()) { - this._proxy.$requestDefaultShellAndArgs(request.useAutomationShell).then(e => request.callback(e.shell, e.args)); + const res = await this._proxy.$getDefaultShellAndArgs(req.useAutomationShell); + req.callback(res.shell, res.args); } } diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 74abb50cd7d..a18fdb0a0e6 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -1288,7 +1288,7 @@ export interface ExtHostTerminalServiceShape { $acceptProcessRequestLatency(id: number): number; $acceptWorkspacePermissionsChanged(isAllowed: boolean): void; $getAvailableShells(): Promise; - $requestDefaultShellAndArgs(useAutomationShell: boolean): Promise; + $getDefaultShellAndArgs(useAutomationShell: boolean): Promise; } export interface ExtHostSCMShape { diff --git a/src/vs/workbench/api/common/extHostTerminalService.ts b/src/vs/workbench/api/common/extHostTerminalService.ts index 1287e9dc8d7..16000c4f0c9 100644 --- a/src/vs/workbench/api/common/extHostTerminalService.ts +++ b/src/vs/workbench/api/common/extHostTerminalService.ts @@ -326,7 +326,7 @@ export abstract class BaseExtHostTerminalService implements IExtHostTerminalServ public abstract getDefaultShellArgs(useAutomationShell: boolean, configProvider: ExtHostConfigProvider): string[] | string; public abstract $spawnExtHostProcess(id: number, shellLaunchConfigDto: IShellLaunchConfigDto, activeWorkspaceRootUriComponents: UriComponents, cols: number, rows: number, isWorkspaceShellAllowed: boolean): Promise; public abstract $getAvailableShells(): Promise; - public abstract $requestDefaultShellAndArgs(useAutomationShell: boolean): Promise; + public abstract $getDefaultShellAndArgs(useAutomationShell: boolean): Promise; public abstract $acceptWorkspacePermissionsChanged(isAllowed: boolean): void; public createExtensionTerminal(options: vscode.ExtensionTerminalOptions): vscode.Terminal { @@ -610,7 +610,7 @@ export class WorkerExtHostTerminalService extends BaseExtHostTerminalService { throw new Error('Not implemented'); } - public async $requestDefaultShellAndArgs(useAutomationShell: boolean): Promise { + public async $getDefaultShellAndArgs(useAutomationShell: boolean): Promise { throw new Error('Not implemented'); } diff --git a/src/vs/workbench/api/node/extHostTask.ts b/src/vs/workbench/api/node/extHostTask.ts index 3dfa716f0b4..5ec632cc283 100644 --- a/src/vs/workbench/api/node/extHostTask.ts +++ b/src/vs/workbench/api/node/extHostTask.ts @@ -179,7 +179,7 @@ export class ExtHostTask extends ExtHostTaskBase { } public $getDefaultShellAndArgs(): Promise<{ shell: string, args: string[] | string | undefined }> { - return this._terminalService.$requestDefaultShellAndArgs(true); + return this._terminalService.$getDefaultShellAndArgs(true); } public async $jsonTasksSupported(): Promise { diff --git a/src/vs/workbench/api/node/extHostTerminalService.ts b/src/vs/workbench/api/node/extHostTerminalService.ts index 25caa61049e..ca790979d28 100644 --- a/src/vs/workbench/api/node/extHostTerminalService.ts +++ b/src/vs/workbench/api/node/extHostTerminalService.ts @@ -204,12 +204,12 @@ export class ExtHostTerminalService extends BaseExtHostTerminalService { return detectAvailableShells(); } - public async $requestDefaultShellAndArgs(useAutomationShell: boolean): Promise { + public async $getDefaultShellAndArgs(useAutomationShell: boolean): Promise { const configProvider = await this._extHostConfiguration.getConfigProvider(); - return Promise.resolve({ + return { shell: this.getDefaultShell(useAutomationShell, configProvider), args: this.getDefaultShellArgs(useAutomationShell, configProvider) - }); + }; } public $acceptWorkspacePermissionsChanged(isAllowed: boolean): void { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalService.ts b/src/vs/workbench/contrib/terminal/browser/terminalService.ts index 78e242801bd..0e6439e7f1c 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalService.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalService.ts @@ -600,7 +600,7 @@ export class TerminalService implements ITerminalService { } private _detectWindowsShells(): Promise { - return new Promise(r => this._onRequestAvailableShells.fire(r)); + return new Promise(r => this._onRequestAvailableShells.fire({ callback: r })); } diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index 21522a35bd5..4346ae1784c 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -360,7 +360,7 @@ export interface IStartExtensionTerminalRequest { } export interface IAvailableShellsRequest { - (shells: IShellDefinition[]): void; + callback: (shells: IShellDefinition[]) => void; } export interface IDefaultShellAndArgsRequest {