提交 98c80267 编写于 作者: J Johannes Rieken

just have `createDirectory`, #47475

上级 f373a15d
......@@ -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.
......@@ -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.
*
......@@ -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 {
......
......@@ -59,7 +59,7 @@ class FsLinkProvider implements vscode.DocumentLinkProvider {
class FileSystemProviderShim implements vscode.FileSystemProvider2 {
_version: 5;
_version: 6;
onDidChange: vscode.Event<vscode.FileChange2[]>;
......@@ -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
......@@ -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));
......@@ -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> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册