Skip to content

Commit

Permalink
just have createDirectory, #47475
Browse files Browse the repository at this point in the history
  • Loading branch information
jrieken committed Apr 17, 2018
1 parent f373a15 commit 98c8026
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 15 deletions.
13 changes: 9 additions & 4 deletions src/vs/vscode.proposed.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ declare module 'vscode' {
// todo@joh add open/close calls?
export interface FileSystemProvider2 {

_version: 5;
_version: 6;

/**
* An event to signal that a resource has been created, changed, or deleted.
Expand All @@ -258,6 +258,14 @@ declare module 'vscode' {
*/
readDirectory(uri: Uri, token: CancellationToken): [string, FileStat2][] | Thenable<[string, FileStat2][]>;

/**
* Create a new directory. *Note* that new files are created via `write`-calls.
*
* @param uri The uri of the *new* folder.
* @param token A cancellation token.
*/
createDirectory(uri: Uri, token: CancellationToken): FileStat2 | Thenable<FileStat2>;

/**
* Read the entire contents of a file.
*
Expand Down Expand Up @@ -292,9 +300,6 @@ declare module 'vscode' {
// todo@remote
// ? useTrash, expose trash
delete(uri: Uri, token: CancellationToken): void | Thenable<void>;

// todo@remote
create(uri: Uri, options: { type: FileType2 }, token: CancellationToken): FileStat2 | Thenable<FileStat2>;
}

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

class FileSystemProviderShim implements vscode.FileSystemProvider2 {

_version: 5;
_version: 6;

onDidChange: vscode.Event<vscode.FileChange2[]>;

Expand Down Expand Up @@ -131,14 +131,8 @@ class FileSystemProviderShim implements vscode.FileSystemProvider2 {
}
});
}
create(resource: vscode.Uri, options: { type: vscode.FileType2; }): Thenable<vscode.FileStat2> {
if (options.type === FileType2.Directory) {
return this._delegate.mkdir(resource).then(stat => FileSystemProviderShim._modernizeFileStat(stat));
} else {
return this._delegate.write(resource, Buffer.from([]))
.then(() => this._delegate.stat(resource))
.then(stat => FileSystemProviderShim._modernizeFileStat(stat));
}
createDirectory(resource: vscode.Uri): Thenable<vscode.FileStat2> {
return this._delegate.mkdir(resource).then(stat => FileSystemProviderShim._modernizeFileStat(stat));
}

// --- read/write
Expand Down Expand Up @@ -174,7 +168,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
}

registerFileSystemProvider(scheme: string, provider: vscode.FileSystemProvider, newProvider: vscode.FileSystemProvider2) {
if (newProvider && newProvider._version === 5) {
if (newProvider && newProvider._version === 6) {
return this._doRegisterFileSystemProvider(scheme, newProvider);
} else if (provider) {
return this._doRegisterFileSystemProvider(scheme, new FileSystemProviderShim(provider));
Expand Down Expand Up @@ -257,7 +251,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
return asWinJsPromise(token => this._fsProvider.get(handle).rename(URI.revive(oldUri), URI.revive(newUri), { flags }, token));
}
$mkdir(handle: number, resource: UriComponents): TPromise<files.IStat, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).create(URI.revive(resource), { type: FileType2.Directory }, token));
return asWinJsPromise(token => this._fsProvider.get(handle).createDirectory(URI.revive(resource), token));
}

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

0 comments on commit 98c8026

Please sign in to comment.