Skip to content

Commit

Permalink
naming, add cancellation tokens, #47475
Browse files Browse the repository at this point in the history
  • Loading branch information
jrieken committed Apr 10, 2018
1 parent 5fca20a commit 847f159
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 18 deletions.
15 changes: 6 additions & 9 deletions src/vs/vscode.proposed.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -224,36 +224,33 @@ declare module 'vscode' {
}

// todo@joh discover files etc
// todo@joh CancellationToken everywhere
// todo@joh add open/close calls?
export interface FileSystemProvider2 {

_version: 2;
_version: 3;

readonly onDidChange?: Event<FileChange[]>;
readonly onDidChange: Event<FileChange[]>;

stat(uri: Uri, token: CancellationToken): Thenable<FileStat>;

readdir(uri: Uri, token: CancellationToken): Thenable<[Uri, FileStat][]>;
readDirectory(uri: Uri, token: CancellationToken): Thenable<[Uri, FileStat][]>;

readFile(uri: Uri, token: CancellationToken): Thenable<Uint8Array>;

writeFile(uri: Uri, content: Uint8Array, token: CancellationToken): Thenable<void>;

// todo@remote
// Thenable<FileStat>
rename(oldUri: Uri, newUri: Uri): Thenable<FileStat>;
rename(oldUri: Uri, newUri: Uri, token: CancellationToken): Thenable<FileStat>;

// todo@remote
// helps with performance bigly
// copy?(from: Uri, to: Uri): Thenable<void>;

// todo@remote
// ? useTrash, expose trash
delete(resource: Uri, options: { recursive?: boolean; }): Thenable<void>;
delete(uri: Uri, token: CancellationToken): Thenable<void>;

// todo@remote
create(resource: Uri, options: { type: FileType }): Thenable<FileStat>;
create(uri: Uri, options: { type: FileType }, token: CancellationToken): Thenable<FileStat>;
}

export namespace workspace {
Expand Down
18 changes: 9 additions & 9 deletions src/vs/workbench/api/node/extHostFileSystem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ class FsLinkProvider implements vscode.DocumentLinkProvider {

class FileSystemProviderShim implements vscode.FileSystemProvider2 {

_version: 2;
_version: 3;

onDidChange?: vscode.Event<vscode.FileChange[]>;
onDidChange: vscode.Event<vscode.FileChange[]>;

constructor(private readonly _delegate: vscode.FileSystemProvider) {
this.onDidChange = this._delegate.onDidChange;
Expand All @@ -72,13 +72,13 @@ class FileSystemProviderShim implements vscode.FileSystemProvider2 {
rename(oldUri: vscode.Uri, newUri: vscode.Uri): Thenable<vscode.FileStat> {
return this._delegate.move(oldUri, newUri);
}
readdir(resource: vscode.Uri): Thenable<[vscode.Uri, vscode.FileStat][]> {
readDirectory(resource: vscode.Uri): Thenable<[vscode.Uri, vscode.FileStat][]> {
return this._delegate.readdir(resource);
}

// --- delete/create file or folder

delete(resource: vscode.Uri, options: { recursive: boolean; }): Thenable<void> {
delete(resource: vscode.Uri): Thenable<void> {
return this.stat(resource).then(stat => {
if (stat.type === FileType.Dir) {
return this._delegate.rmdir(resource);
Expand Down Expand Up @@ -127,7 +127,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
}

registerFileSystemProvider(scheme: string, provider: vscode.FileSystemProvider, newProvider: vscode.FileSystemProvider2) {
if (newProvider && newProvider._version === 2) {
if (newProvider && newProvider._version === 3) {
return this._doRegisterFileSystemProvider(scheme, newProvider);
} else {
return this._doRegisterFileSystemProvider(scheme, new FileSystemProviderShim(provider));
Expand Down Expand Up @@ -171,7 +171,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
return asWinJsPromise(token => this._fsProvider.get(handle).stat(URI.revive(resource), token));
}
$readdir(handle: number, resource: UriComponents): TPromise<[UriComponents, IStat][], any> {
return asWinJsPromise(token => this._fsProvider.get(handle).readdir(URI.revive(resource), token));
return asWinJsPromise(token => this._fsProvider.get(handle).readDirectory(URI.revive(resource), token));
}
$readFile(handle: number, resource: UriComponents): TPromise<string> {
return asWinJsPromise(token => {
Expand All @@ -184,13 +184,13 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
return asWinJsPromise(token => this._fsProvider.get(handle).writeFile(URI.revive(resource), Buffer.from(base64Content, 'base64'), token));
}
$delete(handle: number, resource: UriComponents): TPromise<void, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).delete(URI.revive(resource), { recursive: true }));
return asWinJsPromise(token => this._fsProvider.get(handle).delete(URI.revive(resource), token));
}
$move(handle: number, oldUri: UriComponents, newUri: UriComponents): TPromise<IStat, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).rename(URI.revive(oldUri), URI.revive(newUri)));
return asWinJsPromise(token => this._fsProvider.get(handle).rename(URI.revive(oldUri), URI.revive(newUri), token));
}
$mkdir(handle: number, resource: UriComponents): TPromise<IStat, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).create(URI.revive(resource), { type: FileType.Dir }));
return asWinJsPromise(token => this._fsProvider.get(handle).create(URI.revive(resource), { type: FileType.Dir }, token));
}

$provideFileSearchResults(handle: number, session: number, query: string): TPromise<void> {
Expand Down

0 comments on commit 847f159

Please sign in to comment.