mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-25 02:58:56 +01:00
* Provide additional workspace API to add/remove workspace folders (for #35407) * add/removeFolders => add/removeFolder * make add/remove folder return a boolean * use proper service for workspace editing * workspac => workspace * do not log promise canceled messages * show confirm dialog
This commit is contained in:
@@ -403,6 +403,12 @@ export function createApiFactory(
|
||||
set name(value) {
|
||||
throw errors.readonly();
|
||||
},
|
||||
addWorkspaceFolder(uri, name) {
|
||||
return extHostWorkspace.addWorkspaceFolder(extension.displayName || extension.name, uri, name);
|
||||
},
|
||||
removeWorkspaceFolder(folder) {
|
||||
return extHostWorkspace.removeWorkspaceFolder(extension.displayName || extension.name, folder);
|
||||
},
|
||||
onDidChangeWorkspaceFolders: function (listener, thisArgs?, disposables?) {
|
||||
return extHostWorkspace.onDidChangeWorkspace(listener, thisArgs, disposables);
|
||||
},
|
||||
|
||||
@@ -331,6 +331,8 @@ export interface MainThreadWorkspaceShape extends IDisposable {
|
||||
$startSearch(include: string | IRelativePattern, exclude: string | IRelativePattern, maxResults: number, requestId: number): Thenable<URI[]>;
|
||||
$cancelSearch(requestId: number): Thenable<boolean>;
|
||||
$saveAll(includeUntitled?: boolean): Thenable<boolean>;
|
||||
$addFolder(extensioName: string, uri: URI, name?: string): Thenable<boolean>;
|
||||
$removeFolder(extensioName: string, uri: URI): Thenable<boolean>;
|
||||
}
|
||||
|
||||
export interface MainThreadFileSystemShape extends IDisposable {
|
||||
|
||||
@@ -78,6 +78,18 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape {
|
||||
}
|
||||
}
|
||||
|
||||
addWorkspaceFolder(extensionName: string, uri: URI, name?: string): Thenable<boolean> {
|
||||
return this._proxy.$addFolder(extensionName, uri, name);
|
||||
}
|
||||
|
||||
removeWorkspaceFolder(extensionName: string, folder: vscode.WorkspaceFolder): Thenable<boolean> {
|
||||
if (this.getWorkspaceFolders().indexOf(folder) === -1) {
|
||||
return Promise.resolve(false);
|
||||
}
|
||||
|
||||
return this._proxy.$removeFolder(extensionName, folder.uri);
|
||||
}
|
||||
|
||||
getWorkspaceFolder(uri: vscode.Uri, resolveParent?: boolean): vscode.WorkspaceFolder {
|
||||
if (!this._workspace) {
|
||||
return undefined;
|
||||
|
||||
Reference in New Issue
Block a user