diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 7d8e42b70fc..f59aa3aa4fc 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -7912,7 +7912,7 @@ declare module 'vscode' { * @param options Options that control the dialog. * @returns A promise that resolves to the selected resources or `undefined`. */ - export function showOpenDialog(options: OpenDialogOptions): Thenable; + export function showOpenDialog(options?: OpenDialogOptions): Thenable; /** * Shows a file save dialog to the user which allows to select a file @@ -7921,7 +7921,7 @@ declare module 'vscode' { * @param options Options that control the dialog. * @returns A promise that resolves to the selected resource or `undefined`. */ - export function showSaveDialog(options: SaveDialogOptions): Thenable; + export function showSaveDialog(options?: SaveDialogOptions): Thenable; /** * Opens an input box to ask the user for input. diff --git a/src/vs/workbench/api/browser/mainThreadDialogs.ts b/src/vs/workbench/api/browser/mainThreadDialogs.ts index 79c26c34570..ff3b66e935d 100644 --- a/src/vs/workbench/api/browser/mainThreadDialogs.ts +++ b/src/vs/workbench/api/browser/mainThreadDialogs.ts @@ -23,37 +23,37 @@ export class MainThreadDialogs implements MainThreadDiaglogsShape { // } - $showOpenDialog(options: MainThreadDialogOpenOptions): Promise { + $showOpenDialog(options?: MainThreadDialogOpenOptions): Promise { return Promise.resolve(this._fileDialogService.showOpenDialog(MainThreadDialogs._convertOpenOptions(options))); } - $showSaveDialog(options: MainThreadDialogSaveOptions): Promise { + $showSaveDialog(options?: MainThreadDialogSaveOptions): Promise { return Promise.resolve(this._fileDialogService.showSaveDialog(MainThreadDialogs._convertSaveOptions(options))); } - private static _convertOpenOptions(options: MainThreadDialogOpenOptions): IOpenDialogOptions { + private static _convertOpenOptions(options?: MainThreadDialogOpenOptions): IOpenDialogOptions { const result: IOpenDialogOptions = { - openLabel: options.openLabel || undefined, - canSelectFiles: options.canSelectFiles || (!options.canSelectFiles && !options.canSelectFolders), - canSelectFolders: options.canSelectFolders, - canSelectMany: options.canSelectMany, - defaultUri: options.defaultUri ? URI.revive(options.defaultUri) : undefined, - title: options.title || undefined + openLabel: options?.openLabel || undefined, + canSelectFiles: options?.canSelectFiles || (!options?.canSelectFiles && !options?.canSelectFolders), + canSelectFolders: options?.canSelectFolders, + canSelectMany: options?.canSelectMany, + defaultUri: options?.defaultUri ? URI.revive(options.defaultUri) : undefined, + title: options?.title || undefined }; - if (options.filters) { + if (options?.filters) { result.filters = []; forEach(options.filters, entry => result.filters!.push({ name: entry.key, extensions: entry.value })); } return result; } - private static _convertSaveOptions(options: MainThreadDialogSaveOptions): ISaveDialogOptions { + private static _convertSaveOptions(options?: MainThreadDialogSaveOptions): ISaveDialogOptions { const result: ISaveDialogOptions = { - defaultUri: options.defaultUri ? URI.revive(options.defaultUri) : undefined, - saveLabel: options.saveLabel || undefined, - title: options.title || undefined + defaultUri: options?.defaultUri ? URI.revive(options.defaultUri) : undefined, + saveLabel: options?.saveLabel || undefined, + title: options?.title || undefined }; - if (options.filters) { + if (options?.filters) { result.filters = []; forEach(options.filters, entry => result.filters!.push({ name: entry.key, extensions: entry.value })); } diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index eb3530c817c..6d21b5a745d 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -201,8 +201,8 @@ export interface MainThreadDialogSaveOptions { } export interface MainThreadDiaglogsShape extends IDisposable { - $showOpenDialog(options: MainThreadDialogOpenOptions): Promise; - $showSaveDialog(options: MainThreadDialogSaveOptions): Promise; + $showOpenDialog(options?: MainThreadDialogOpenOptions): Promise; + $showSaveDialog(options?: MainThreadDialogSaveOptions): Promise; } export interface MainThreadDecorationsShape extends IDisposable { diff --git a/src/vs/workbench/api/common/extHostDialogs.ts b/src/vs/workbench/api/common/extHostDialogs.ts index 393db6ff77a..69de2a3e7f8 100644 --- a/src/vs/workbench/api/common/extHostDialogs.ts +++ b/src/vs/workbench/api/common/extHostDialogs.ts @@ -15,13 +15,13 @@ export class ExtHostDialogs { this._proxy = mainContext.getProxy(MainContext.MainThreadDialogs); } - showOpenDialog(options: vscode.OpenDialogOptions): Promise { + showOpenDialog(options?: vscode.OpenDialogOptions): Promise { return this._proxy.$showOpenDialog(options).then(filepaths => { return filepaths ? filepaths.map(p => URI.revive(p)) : undefined; }); } - showSaveDialog(options: vscode.SaveDialogOptions): Promise { + showSaveDialog(options?: vscode.SaveDialogOptions): Promise { return this._proxy.$showSaveDialog(options).then(filepath => { return filepath ? URI.revive(filepath) : undefined; });