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

files2 - create file service early on and register disk provider

上级 36f40282
...@@ -25,9 +25,6 @@ import { SupportsWorkspacesContext, IsMacContext, HasMacNativeTabsContext, IsDev ...@@ -25,9 +25,6 @@ import { SupportsWorkspacesContext, IsMacContext, HasMacNativeTabsContext, IsDev
import { NoEditorsVisibleContext, SingleEditorGroupsContext } from 'vs/workbench/common/editor'; import { NoEditorsVisibleContext, SingleEditorGroupsContext } from 'vs/workbench/common/editor';
import { IWindowService, IWindowsService } from 'vs/platform/windows/common/windows'; import { IWindowService, IWindowsService } from 'vs/platform/windows/common/windows';
import { LogStorageAction } from 'vs/platform/storage/node/storageService'; 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 // Actions
(function registerActions(): void { (function registerActions(): void {
...@@ -689,11 +686,4 @@ import { DiskFileSystemSupport } from 'vs/workbench/services/files2/node/diskFil ...@@ -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 ...@@ -43,6 +43,9 @@ import { RemoteAuthorityResolverService } from 'vs/platform/remote/electron-brow
import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver';
import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl';
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; 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 { class CodeRendererMain extends Disposable {
...@@ -172,6 +175,12 @@ class CodeRendererMain extends Disposable { ...@@ -172,6 +175,12 @@ class CodeRendererMain extends Disposable {
const logService = this._register(this.createLogService(mainProcessService, environmentService)); const logService = this._register(this.createLogService(mainProcessService, environmentService));
serviceCollection.set(ILogService, logService); serviceCollection.set(ILogService, logService);
// Files
const fileService = new FileService2(logService);
serviceCollection.set(IFileService, fileService);
fileService.registerProvider(Schemas.file, new DiskFileSystemProvider());
// Remote // Remote
const remoteAuthorityResolverService = new RemoteAuthorityResolverService(); const remoteAuthorityResolverService = new RemoteAuthorityResolverService();
serviceCollection.set(IRemoteAuthorityResolverService, remoteAuthorityResolverService); serviceCollection.set(IRemoteAuthorityResolverService, remoteAuthorityResolverService);
......
...@@ -8,7 +8,6 @@ import { IFileService, IResolveFileOptions, IResourceEncodings, FileChangesEvent ...@@ -8,7 +8,6 @@ import { IFileService, IResolveFileOptions, IResourceEncodings, FileChangesEvent
import { URI } from 'vs/base/common/uri'; import { URI } from 'vs/base/common/uri';
import { Event, Emitter } from 'vs/base/common/event'; import { Event, Emitter } from 'vs/base/common/event';
import { ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation'; 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 { isAbsolutePath, dirname, basename, joinPath, isEqual, isEqualOrParent } from 'vs/base/common/resources';
import { localize } from 'vs/nls'; import { localize } from 'vs/nls';
import { TernarySearchTree } from 'vs/base/common/map'; import { TernarySearchTree } from 'vs/base/common/map';
...@@ -27,6 +26,10 @@ export class FileService2 extends Disposable implements IFileService { ...@@ -27,6 +26,10 @@ export class FileService2 extends Disposable implements IFileService {
this._register(service.onFileChanges(e => this._onFileChanges.fire(e))); this._register(service.onFileChanges(e => this._onFileChanges.fire(e)));
this._register(service.onAfterOperation(e => this._onAfterOperation.fire(e))); this._register(service.onAfterOperation(e => this._onAfterOperation.fire(e)));
this.provider.forEach((provider, scheme) => {
this._impl.registerProvider(scheme, provider);
});
} }
//#endregion //#endregion
...@@ -481,6 +484,4 @@ export class FileService2 extends Disposable implements IFileService { ...@@ -481,6 +484,4 @@ export class FileService2 extends Disposable implements IFileService {
} }
//#endregion //#endregion
} }
\ No newline at end of file
registerSingleton(IFileService, FileService2);
\ 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'; ...@@ -115,7 +115,6 @@ import 'vs/workbench/services/backup/node/backupFileService';
import 'vs/workbench/services/editor/browser/editorService'; import 'vs/workbench/services/editor/browser/editorService';
import 'vs/workbench/services/history/browser/history'; import 'vs/workbench/services/history/browser/history';
import 'vs/workbench/services/files/node/remoteFileService'; import 'vs/workbench/services/files/node/remoteFileService';
import 'vs/workbench/services/files2/common/fileService2';
import 'vs/workbench/services/activity/browser/activityService'; import 'vs/workbench/services/activity/browser/activityService';
import 'vs/workbench/browser/parts/views/views'; import 'vs/workbench/browser/parts/views/views';
import 'vs/workbench/services/keybinding/electron-browser/keybindingService'; 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.
先完成此消息的编辑!
想要评论请 注册