提交 bd8f6e25 编写于 作者: B Benjamin Pasero

files2 - create file service early on and register disk provider

上级 36f40282
......@@ -25,9 +25,6 @@ import { SupportsWorkspacesContext, IsMacContext, HasMacNativeTabsContext, IsDev
import { NoEditorsVisibleContext, SingleEditorGroupsContext } from 'vs/workbench/common/editor';
import { IWindowService, IWindowsService } from 'vs/platform/windows/common/windows';
import { LogStorageAction } from 'vs/platform/storage/node/storageService';
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions';
import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
import { DiskFileSystemSupport } from 'vs/workbench/services/files2/node/diskFileSystemSupport';
// Actions
(function registerActions(): void {
......@@ -689,11 +686,4 @@ import { DiskFileSystemSupport } from 'vs/workbench/services/files2/node/diskFil
}
}
});
})();
// Disk File System
(function registerFileSystem(): void {
const registry = Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench);
registry.registerWorkbenchContribution(DiskFileSystemSupport, LifecyclePhase.Starting);
})();
\ No newline at end of file
......@@ -43,6 +43,9 @@ import { RemoteAuthorityResolverService } from 'vs/platform/remote/electron-brow
import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver';
import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl';
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
import { FileService2 } from 'vs/workbench/services/files2/common/fileService2';
import { IFileService } from 'vs/platform/files/common/files';
import { DiskFileSystemProvider } from 'vs/workbench/services/files2/node/diskFileSystemProvider';
class CodeRendererMain extends Disposable {
......@@ -172,6 +175,12 @@ class CodeRendererMain extends Disposable {
const logService = this._register(this.createLogService(mainProcessService, environmentService));
serviceCollection.set(ILogService, logService);
// Files
const fileService = new FileService2(logService);
serviceCollection.set(IFileService, fileService);
fileService.registerProvider(Schemas.file, new DiskFileSystemProvider());
// Remote
const remoteAuthorityResolverService = new RemoteAuthorityResolverService();
serviceCollection.set(IRemoteAuthorityResolverService, remoteAuthorityResolverService);
......
......@@ -8,7 +8,6 @@ import { IFileService, IResolveFileOptions, IResourceEncodings, FileChangesEvent
import { URI } from 'vs/base/common/uri';
import { Event, Emitter } from 'vs/base/common/event';
import { ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
import { isAbsolutePath, dirname, basename, joinPath, isEqual, isEqualOrParent } from 'vs/base/common/resources';
import { localize } from 'vs/nls';
import { TernarySearchTree } from 'vs/base/common/map';
......@@ -27,6 +26,10 @@ export class FileService2 extends Disposable implements IFileService {
this._register(service.onFileChanges(e => this._onFileChanges.fire(e)));
this._register(service.onAfterOperation(e => this._onAfterOperation.fire(e)));
this.provider.forEach((provider, scheme) => {
this._impl.registerProvider(scheme, provider);
});
}
//#endregion
......@@ -481,6 +484,4 @@ export class FileService2 extends Disposable implements IFileService {
}
//#endregion
}
registerSingleton(IFileService, FileService2);
\ No newline at end of file
}
\ No newline at end of file
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IWorkbenchContribution } from 'vs/workbench/common/contributions';
import { IFileService } from 'vs/platform/files/common/files';
import { Schemas } from 'vs/base/common/network';
import { DiskFileSystemProvider } from 'vs/workbench/services/files2/node/diskFileSystemProvider';
import { Disposable } from 'vs/base/common/lifecycle';
export class DiskFileSystemSupport extends Disposable implements IWorkbenchContribution {
constructor(@IFileService fileService: IFileService) {
super();
this._register(fileService.registerProvider(Schemas.file, new DiskFileSystemProvider()));
}
}
\ No newline at end of file
......@@ -115,7 +115,6 @@ import 'vs/workbench/services/backup/node/backupFileService';
import 'vs/workbench/services/editor/browser/editorService';
import 'vs/workbench/services/history/browser/history';
import 'vs/workbench/services/files/node/remoteFileService';
import 'vs/workbench/services/files2/common/fileService2';
import 'vs/workbench/services/activity/browser/activityService';
import 'vs/workbench/browser/parts/views/views';
import 'vs/workbench/services/keybinding/electron-browser/keybindingService';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册