diff --git a/src/vs/workbench/api/node/apiCommands.ts b/src/vs/workbench/api/node/apiCommands.ts index d45fa9d6195..0e228988d60 100644 --- a/src/vs/workbench/api/node/apiCommands.ts +++ b/src/vs/workbench/api/node/apiCommands.ts @@ -55,7 +55,7 @@ export class OpenFolderAPICommand { uri = correctedUri; } - return executor.executeCommand('_files.windowOpen', [uri], forceNewWindow); + return executor.executeCommand('_files.windowOpen', { folderURIs: [uri], forceNewWindow }); } } CommandsRegistry.registerCommand(OpenFolderAPICommand.ID, adjustHandler(OpenFolderAPICommand.execute)); diff --git a/src/vs/workbench/parts/files/electron-browser/fileCommands.ts b/src/vs/workbench/parts/files/electron-browser/fileCommands.ts index b45e20aed65..e6f4b1e4b9a 100644 --- a/src/vs/workbench/parts/files/electron-browser/fileCommands.ts +++ b/src/vs/workbench/parts/files/electron-browser/fileCommands.ts @@ -76,9 +76,18 @@ export const ResourceSelectedForCompareContext = new RawContextKey('res export const REMOVE_ROOT_FOLDER_COMMAND_ID = 'removeRootFolder'; export const REMOVE_ROOT_FOLDER_LABEL = nls.localize('removeFolderFromWorkspace', "Remove Folder from Workspace"); -export const openWindowCommand = (accessor: ServicesAccessor, paths: Array, forceNewWindow: boolean) => { +export const openWindowCommand = (accessor: ServicesAccessor, input: Array | { fileURIs: URI[], folderURIs: URI[], forceNewWindow: boolean }, forceNewWindow: boolean) => { const windowService = accessor.get(IWindowService); - windowService.openWindow(paths.map(p => typeof p === 'string' ? URI.file(p) : p), { forceNewWindow }); + if (Array.isArray(input)) { + windowService.openWindow(input.map(p => typeof p === 'string' ? URI.file(p) : p), { forceNewWindow }); + } else if (input) { + if (Array.isArray(input.folderURIs) && input.folderURIs.length) { + windowService.openWindow(input.folderURIs, { forceNewWindow: input.forceNewWindow }); + } + if (Array.isArray(input.fileURIs) && input.fileURIs.length) { + windowService.openWindow(input.fileURIs, { forceNewWindow: input.forceNewWindow, forceOpenWorkspaceAsFile: true }); + } + } }; function save(