Skip to content

Commit 694a599

Browse files
committed
1 parent 1eaa610 commit 694a599

11 files changed

Lines changed: 445 additions & 394 deletions

File tree

src/vs/editor/standalone/browser/simpleServices.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,4 +598,12 @@ export class SimpleWorkspaceContextService implements IWorkspaceContextService {
598598
public isCurrentWorkspace(workspaceIdentifier: ISingleFolderWorkspaceIdentifier | IWorkspaceIdentifier): boolean {
599599
return true;
600600
}
601+
602+
public addFolders(foldersToAdd: URI[]): TPromise<void> {
603+
return TPromise.as(void 0);
604+
}
605+
606+
public removeFolders(foldersToRemove: URI[]): TPromise<void> {
607+
return TPromise.as(void 0);
608+
}
601609
}

src/vs/platform/workspace/common/workspace.ts

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import Event from 'vs/base/common/event';
1313
import { ISingleFolderWorkspaceIdentifier, IWorkspaceIdentifier, IStoredWorkspaceFolder, isRawFileWorkspaceFolder, isRawUriWorkspaceFolder } from 'vs/platform/workspaces/common/workspaces';
1414
import { coalesce, distinct } from 'vs/base/common/arrays';
1515
import { isLinux } from 'vs/base/common/platform';
16+
import { TPromise } from 'vs/base/common/winjs.base';
1617

1718
export const IWorkspaceContextService = createDecorator<IWorkspaceContextService>('contextService');
1819

@@ -31,21 +32,6 @@ export interface IWorkspaceFoldersChangeEvent {
3132
export interface IWorkspaceContextService {
3233
_serviceBrand: any;
3334

34-
/**
35-
* Provides access to the workspace object the platform is running with. This may be null if the workbench was opened
36-
* without workspace (empty);
37-
*/
38-
getWorkspace(): IWorkspace;
39-
40-
/**
41-
* Return the state of the workbench.
42-
*
43-
* WorkbenchState.EMPTY - if the workbench was opened with empty window or file
44-
* WorkbenchState.FOLDER - if the workbench was opened with a folder
45-
* WorkbenchState.WORKSPACE - if the workbench was opened with a workspace
46-
*/
47-
getWorkbenchState(): WorkbenchState;
48-
4935
/**
5036
* An event which fires on workbench state changes.
5137
*/
@@ -61,6 +47,31 @@ export interface IWorkspaceContextService {
6147
*/
6248
onDidChangeWorkspaceFolders: Event<IWorkspaceFoldersChangeEvent>;
6349

50+
/**
51+
* Provides access to the workspace object the platform is running with. This may be null if the workbench was opened
52+
* without workspace (empty);
53+
*/
54+
getWorkspace(): IWorkspace;
55+
56+
/**
57+
* add folders to the existing workspace
58+
*/
59+
addFolders(folders: URI[]): TPromise<void>;
60+
61+
/**
62+
* remove folders from the existing workspace
63+
*/
64+
removeFolders(folders: URI[]): TPromise<void>;
65+
66+
/**
67+
* Return the state of the workbench.
68+
*
69+
* WorkbenchState.EMPTY - if the workbench was opened with empty window or file
70+
* WorkbenchState.FOLDER - if the workbench was opened with a folder
71+
* WorkbenchState.WORKSPACE - if the workbench was opened with a workspace
72+
*/
73+
getWorkbenchState(): WorkbenchState;
74+
6475
/**
6576
* Returns the folder for the given resource from the workspace.
6677
* Can be null if there is no workspace or the resource is not inside the workspace.

src/vs/workbench/api/electron-browser/mainThreadFileSystem.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
1212
import Event, { Emitter } from 'vs/base/common/event';
1313
import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers';
1414
import { IProgress } from 'vs/platform/progress/common/progress';
15-
import { IWorkspaceEditingService } from 'vs/workbench/services/workspace/common/workspaceEditing';
1615
import { ISearchResultProvider, ISearchQuery, ISearchComplete, ISearchProgressItem, QueryType, IFileMatch, ISearchService } from 'vs/platform/search/common/search';
16+
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
1717

1818
@extHostNamedCustomer(MainContext.MainThreadFileSystem)
1919
export class MainThreadFileSystem implements MainThreadFileSystemShape {
@@ -26,7 +26,7 @@ export class MainThreadFileSystem implements MainThreadFileSystemShape {
2626
extHostContext: IExtHostContext,
2727
@IFileService private readonly _fileService: IFileService,
2828
@ISearchService private readonly _searchService: ISearchService,
29-
@IWorkspaceEditingService private readonly _workspaceEditService: IWorkspaceEditingService
29+
@IWorkspaceContextService private readonly _workspaceContextService: IWorkspaceContextService
3030
) {
3131
this._proxy = extHostContext.get(ExtHostContext.ExtHostFileSystem);
3232
}
@@ -45,7 +45,7 @@ export class MainThreadFileSystem implements MainThreadFileSystemShape {
4545
}
4646

4747
$onDidAddFileSystemRoot(uri: URI): void {
48-
this._workspaceEditService.addFolders([uri]);
48+
this._workspaceContextService.addFolders([uri]);
4949
}
5050

5151
$onFileSystemChange(handle: number, changes: IFileChange[]): void {

src/vs/workbench/browser/actions/workspaceActions.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ export class AddRootFolderAction extends BaseWorkspacesAction {
119119
return TPromise.as(null);
120120
}
121121

122-
addFoldersPromise = this.workspaceEditingService.addFolders(folders.map(folder => URI.file(folder)));
122+
addFoldersPromise = this.contextService.addFolders(folders.map(folder => URI.file(folder)));
123123
}
124124

125125
// Empty or Folder
@@ -163,7 +163,7 @@ export class GlobalRemoveRootFolderAction extends BaseWorkspacesAction {
163163
}
164164

165165
// Workspace: remove folder
166-
return this.workspaceEditingService.removeFolders([folder.uri]).then(() => true);
166+
return this.contextService.removeFolders([folder.uri]).then(() => true);
167167
}
168168

169169
return true;
@@ -216,13 +216,13 @@ export class RemoveRootFolderAction extends Action {
216216
private rootUri: URI,
217217
id: string,
218218
label: string,
219-
@IWorkspaceEditingService private workspaceEditingService: IWorkspaceEditingService
219+
@IWorkspaceContextService private contextService: IWorkspaceContextService
220220
) {
221221
super(id, label);
222222
}
223223

224224
public run(): TPromise<any> {
225-
return this.workspaceEditingService.removeFolders([this.rootUri]);
225+
return this.contextService.removeFolders([this.rootUri]);
226226
}
227227
}
228228

src/vs/workbench/electron-browser/window.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ export class ElectronWindow extends Themable {
400400

401401
// Workspace: just add to workspace config
402402
if (this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE) {
403-
this.workspaceEditingService.addFolders(foldersToAdd).done(null, errors.onUnexpectedError);
403+
this.contextService.addFolders(foldersToAdd).done(null, errors.onUnexpectedError);
404404
}
405405

406406
// Single folder or no workspace: create workspace and open

src/vs/workbench/parts/files/browser/views/explorerViewer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,7 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop {
910910
const folders = result.filter(result => result.stat.isDirectory).map(result => result.stat.resource);
911911
if (folders.length > 0) {
912912
if (this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE) {
913-
return this.workspaceEditingService.addFolders(folders);
913+
return this.contextService.addFolders(folders);
914914
}
915915

916916
// If we are in single-folder context, ask for confirmation to create a workspace

0 commit comments

Comments
 (0)