提交 11cb1c38 编写于 作者: J Johannes Rieken

remote - pushing down more methods to the IFileService interface

上级 b7e8a4f4
......@@ -44,17 +44,17 @@ export interface IFileService {
/**
* An event that is fired when a file system provider is added or removed
*/
onDidChangeFileSystemProviderRegistrations?: Event<IFileSystemProviderRegistrationEvent>;
onDidChangeFileSystemProviderRegistrations: Event<IFileSystemProviderRegistrationEvent>;
/**
* Registeres a file system provider for a certain scheme.
*/
registerProvider?(scheme: string, provider: IFileSystemProvider): IDisposable;
registerProvider(scheme: string, provider: IFileSystemProvider): IDisposable;
/**
* Checks if this file service can handle the given resource.
*/
canHandleResource?(resource: URI): boolean;
canHandleResource(resource: URI): boolean;
/**
* Resolve the properties of a file identified by the resource.
......
......@@ -10,7 +10,7 @@ import * as fs from 'fs';
import * as os from 'os';
import * as crypto from 'crypto';
import * as assert from 'assert';
import { isParent, FileOperation, FileOperationEvent, IContent, IFileService, IResolveFileOptions, IResolveFileResult, IResolveContentOptions, IFileStat, IStreamContent, FileOperationError, FileOperationResult, IUpdateContentOptions, FileChangeType, FileChangesEvent, ICreateFileOptions, IContentData, ITextSnapshot, IFilesConfiguration } from 'vs/platform/files/common/files';
import { isParent, FileOperation, FileOperationEvent, IContent, IFileService, IResolveFileOptions, IResolveFileResult, IResolveContentOptions, IFileStat, IStreamContent, FileOperationError, FileOperationResult, IUpdateContentOptions, FileChangeType, FileChangesEvent, ICreateFileOptions, IContentData, ITextSnapshot, IFilesConfiguration, IFileSystemProviderRegistrationEvent, IFileSystemProvider } from 'vs/platform/files/common/files';
import { MAX_FILE_SIZE, MAX_HEAP_SIZE } from 'vs/platform/files/node/files';
import { isEqualOrParent } from 'vs/base/common/paths';
import { ResourceMap } from 'vs/base/common/map';
......@@ -92,6 +92,7 @@ export class FileService implements IFileService {
protected readonly _onFileChanges: Emitter<FileChangesEvent>;
protected readonly _onAfterOperation: Emitter<FileOperationEvent>;
protected readonly _onDidChangeFileSystemProviderRegistrations = new Emitter<IFileSystemProviderRegistrationEvent>();
protected toDispose: IDisposable[];
......@@ -240,6 +241,16 @@ export class FileService implements IFileService {
}
}
public readonly onDidChangeFileSystemProviderRegistrations: Event<IFileSystemProviderRegistrationEvent> = this._onDidChangeFileSystemProviderRegistrations.event;
public registerProvider(scheme: string, provider: IFileSystemProvider): IDisposable {
throw new Error('not implemented');
}
public canHandleResource(resource: uri): boolean {
return resource.scheme === Schemas.file;
}
public resolveFile(resource: uri, options?: IResolveFileOptions): TPromise<IFileStat> {
return this.resolve(resource, options);
}
......
......@@ -6,7 +6,6 @@
import { posix } from 'path';
import { flatten, isFalsyOrEmpty } from 'vs/base/common/arrays';
import { Event, Emitter } from 'vs/base/common/event';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { TernarySearchTree, keys } from 'vs/base/common/map';
import { Schemas } from 'vs/base/common/network';
......@@ -17,7 +16,7 @@ import { ITextResourceConfigurationService } from 'vs/editor/common/services/res
import { localize } from 'vs/nls';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
import { FileChangesEvent, FileOperation, FileOperationError, FileOperationEvent, FileOperationResult, FileOptions, FileSystemProviderCapabilities, IContent, ICreateFileOptions, IFileStat, IFileSystemProvider, IFilesConfiguration, IResolveContentOptions, IResolveFileOptions, IResolveFileResult, IStat, IStreamContent, ITextSnapshot, IUpdateContentOptions, StringSnapshot, IFileSystemProviderRegistrationEvent } from 'vs/platform/files/common/files';
import { FileChangesEvent, FileOperation, FileOperationError, FileOperationEvent, FileOperationResult, FileOptions, FileSystemProviderCapabilities, IContent, ICreateFileOptions, IFileStat, IFileSystemProvider, IFilesConfiguration, IResolveContentOptions, IResolveFileOptions, IResolveFileResult, IStat, IStreamContent, ITextSnapshot, IUpdateContentOptions, StringSnapshot } from 'vs/platform/files/common/files';
import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle';
import { INotificationService } from 'vs/platform/notification/common/notification';
import { IStorageService } from 'vs/platform/storage/common/storage';
......@@ -148,9 +147,6 @@ export class RemoteFileService extends FileService {
private readonly _provider: Map<string, IFileSystemProvider>;
private readonly _lastKnownSchemes: string[];
private readonly _onDidChangeFileSystemProviderRegistrations = new Emitter<IFileSystemProviderRegistrationEvent>();
readonly onDidChangeFileSystemProviderRegistrations: Event<IFileSystemProviderRegistrationEvent> = this._onDidChangeFileSystemProviderRegistrations.event;
constructor(
@IExtensionService private readonly _extensionService: IExtensionService,
......
......@@ -773,6 +773,12 @@ export class TestFileService implements IFileService {
return TPromise.as(null);
}
onDidChangeFileSystemProviderRegistrations = Event.None;
registerProvider(scheme: string, provider) {
return { dispose() { } };
}
canHandleResource(resource: URI): boolean {
return resource.scheme === 'file';
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册