From 158d1520d6823b4584f686f564b2a35ace6d4c55 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 25 Oct 2017 12:04:53 +0200 Subject: [PATCH] add/removeFolders => add/removeFolder --- src/vs/vscode.d.ts | 16 ++++++++-------- .../api/electron-browser/mainThreadWorkspace.ts | 8 ++++---- src/vs/workbench/api/node/extHost.api.impl.ts | 8 ++++---- src/vs/workbench/api/node/extHost.protocol.ts | 4 ++-- src/vs/workbench/api/node/extHostWorkspace.ts | 13 +++++++------ 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 15d30bbcb0a70..c718461cafba3 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -5199,20 +5199,20 @@ declare module 'vscode' { export const onDidChangeWorkspaceFolders: Event; /** - * Adds workspace folders to the currently opened workspace. Will ignore workspace - * folders that are already part of the workspace. + * Adds a workspac folder to the currently opened workspace. + * + * This method will be a no-op if the folder is already part of the workspace. * * Note: if this workspace had no folder opened, all extensions will be restarted * so that the (deprecated) `rootPath` property is updated to point to the first workspace * folder. * - * @param folders a list of workspace folders to add. + * @param folder a workspace folder to add. */ - export function addWorkspaceFolders(folders: { uri: Uri, name?: string }[]): Thenable; + export function addWorkspaceFolder(uri: Uri, name?: string): Thenable; /** - * Removes workspace folders from the currently opened workspace if they are part of the - * workspace. + * Remove a workspace folder from the currently opened workspace. * * This method will be a no-op when called while not having a workspace opened. * @@ -5220,9 +5220,9 @@ declare module 'vscode' { * so that the (deprecated) `rootPath` property is updated to point to the first workspace * folder. * - * @param folders a list of [workspace folders](#WorkspaceFolder) to remove. + * @param folder a [workspace folder](#WorkspaceFolder) to remove. */ - export function removeWorkspaceFolders(folders: WorkspaceFolder[]): Thenable; + export function removeWorkspaceFolder(folder: WorkspaceFolder): Thenable; /** * Returns the [workspace folder](#WorkspaceFolder) that contains a given uri. diff --git a/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts b/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts index ccfb7915c192c..c8e51436ba012 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts @@ -52,12 +52,12 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape { this._proxy.$acceptWorkspaceData(this._contextService.getWorkbenchState() === WorkbenchState.EMPTY ? null : this._contextService.getWorkspace()); } - $addFolders(folders: { uri: URI, name?: string }[]): Thenable { - return this._contextService.addFolders(folders); + $addFolder(uri: URI, name?: string): Thenable { + return this._contextService.addFolders([{ uri, name }]); } - $removeFolders(folders: URI[]): Thenable { - return this._contextService.removeFolders(folders); + $removeFolder(folder: URI): Thenable { + return this._contextService.removeFolders([folder]); } // --- search --- diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 6f6d3906230e9..121fa75c3910e 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -397,11 +397,11 @@ export function createApiFactory( get workspaceFolders() { return extHostWorkspace.getWorkspaceFolders(); }, - addWorkspaceFolders(folders) { - return extHostWorkspace.addWorkspaceFolders(folders); + addWorkspaceFolder(uri, name) { + return extHostWorkspace.addWorkspaceFolder(uri, name); }, - removeWorkspaceFolders(folders) { - return extHostWorkspace.removeWorkspaceFolders(folders); + removeWorkspaceFolder(folder) { + return extHostWorkspace.removeWorkspaceFolder(folder); }, onDidChangeWorkspaceFolders: function (listener, thisArgs?, disposables?) { return extHostWorkspace.onDidChangeWorkspace(listener, thisArgs, disposables); diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 9141a5a8770e0..54f5b52f7ae20 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -326,8 +326,8 @@ export interface MainThreadWorkspaceShape extends IDisposable { $startSearch(include: string | IRelativePattern, exclude: string | IRelativePattern, maxResults: number, requestId: number): Thenable; $cancelSearch(requestId: number): Thenable; $saveAll(includeUntitled?: boolean): Thenable; - $addFolders(folders: { uri: URI, name?: string }[]): Thenable; - $removeFolders(folders: URI[]): Thenable; + $addFolder(uri: URI, name?: string): Thenable; + $removeFolder(folder: URI): Thenable; } export interface MainThreadFileSystemShape extends IDisposable { diff --git a/src/vs/workbench/api/node/extHostWorkspace.ts b/src/vs/workbench/api/node/extHostWorkspace.ts index 5da0def7f7d7f..2dc6926eb2836 100644 --- a/src/vs/workbench/api/node/extHostWorkspace.ts +++ b/src/vs/workbench/api/node/extHostWorkspace.ts @@ -78,15 +78,16 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape { } } - addWorkspaceFolders(folders: { uri: URI, name?: string }[]): Thenable { - return this._proxy.$addFolders(folders); + addWorkspaceFolder(uri: URI, name?: string): Thenable { + return this._proxy.$addFolder(uri, name); } - removeWorkspaceFolders(folders: vscode.WorkspaceFolder[]): Thenable { - const existingWorkspaceFolders = this.getWorkspaceFolders(); - const folderUrisToRemove = folders.filter(folder => existingWorkspaceFolders.indexOf(folder) >= 0).map(f => f.uri); + removeWorkspaceFolder(folder: vscode.WorkspaceFolder): Thenable { + if (this.getWorkspaceFolders().indexOf(folder) === -1) { + return Promise.resolve(undefined); + } - return this._proxy.$removeFolders(folderUrisToRemove); + return this._proxy.$removeFolder(folder.uri); } getWorkspaceFolder(uri: vscode.Uri, resolveParent?: boolean): vscode.WorkspaceFolder {