Skip to content

Commit 433006e

Browse files
committed
add (empty) option bags to provider function to be save for the future, microsoft#47475
1 parent 54583ac commit 433006e

2 files changed

Lines changed: 21 additions & 15 deletions

File tree

src/vs/vscode.proposed.d.ts

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ declare module 'vscode' {
132132
*/
133133
export interface FileSystemProvider2 {
134134

135-
_version: 7;
135+
_version: 8;
136136

137137
/**
138138
* An event to signal that a resource has been created, changed, or deleted. This
@@ -149,13 +149,14 @@ declare module 'vscode' {
149149
watch(uri: Uri, options: { recursive?: boolean; excludes?: string[] }): Disposable;
150150

151151
/**
152-
* Retrieve metadata about a file.
152+
* Retrieve metadata about a file. Throw an [`EntryNotFound`](#FileError.EntryNotFound)-error
153+
* in case the file does not exist.
153154
*
154155
* @param uri The uri of the file to retrieve meta data about.
155156
* @param token A cancellation token.
156157
* @return The file metadata about the file.
157158
*/
158-
stat(uri: Uri, token: CancellationToken): FileStat2 | Thenable<FileStat2>;
159+
stat(uri: Uri, options: { /*future: followSymlinks*/ }, token: CancellationToken): FileStat2 | Thenable<FileStat2>;
159160

160161
/**
161162
* Retrieve the meta data of all entries of a [directory](#FileType2.Directory)
@@ -164,15 +165,15 @@ declare module 'vscode' {
164165
* @param token A cancellation token.
165166
* @return A thenable that resolves to an array of tuples of file names and files stats.
166167
*/
167-
readDirectory(uri: Uri, token: CancellationToken): [string, FileStat2][] | Thenable<[string, FileStat2][]>;
168+
readDirectory(uri: Uri, options: { /*future: onlyType?*/ }, token: CancellationToken): [string, FileStat2][] | Thenable<[string, FileStat2][]>;
168169

169170
/**
170171
* Create a new directory. *Note* that new files are created via `write`-calls.
171172
*
172173
* @param uri The uri of the *new* folder.
173174
* @param token A cancellation token.
174175
*/
175-
createDirectory(uri: Uri, token: CancellationToken): FileStat2 | Thenable<FileStat2>;
176+
createDirectory(uri: Uri, options: { /*future: permissions?*/ }, token: CancellationToken): FileStat2 | Thenable<FileStat2>;
176177

177178
/**
178179
* Read the entire contents of a file.
@@ -192,6 +193,15 @@ declare module 'vscode' {
192193
*/
193194
writeFile(uri: Uri, content: Uint8Array, options: { flags: FileOpenFlags }, token: CancellationToken): void | Thenable<void>;
194195

196+
/**
197+
* Delete a file or folder from the underlying storage.
198+
*
199+
* @param uri The resource that is to be deleted
200+
* @param options Options bag for future use
201+
* @param token A cancellation token.
202+
*/
203+
delete(uri: Uri, options: { /*future: useTrash?, followSymlinks?*/ }, token: CancellationToken): void | Thenable<void>;
204+
195205
/**
196206
* Rename a file or folder.
197207
*
@@ -210,10 +220,6 @@ declare module 'vscode' {
210220
* @param token A cancellation token.
211221
*/
212222
copy?(uri: Uri, target: Uri, options: { flags: FileOpenFlags }, token: CancellationToken): FileStat2 | Thenable<FileStat2>;
213-
214-
// todo@remote
215-
// ? useTrash, expose trash
216-
delete(uri: Uri, token: CancellationToken): void | Thenable<void>;
217223
}
218224

219225
export namespace workspace {

src/vs/workbench/api/node/extHostFileSystem.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class FsLinkProvider implements vscode.DocumentLinkProvider {
5959

6060
class FileSystemProviderShim implements vscode.FileSystemProvider2 {
6161

62-
_version: 7 = 7;
62+
_version: 8 = 8;
6363

6464
onDidChangeFile: vscode.Event<vscode.FileChange2[]>;
6565

@@ -189,7 +189,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
189189
}
190190

191191
registerFileSystemProvider(scheme: string, provider: vscode.FileSystemProvider, newProvider: vscode.FileSystemProvider2) {
192-
if (newProvider && newProvider._version === 7) {
192+
if (newProvider && newProvider._version === 8) {
193193
return this._doRegisterFileSystemProvider(scheme, newProvider);
194194
} else if (provider) {
195195
return this._doRegisterFileSystemProvider(scheme, new FileSystemProviderShim(provider));
@@ -248,11 +248,11 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
248248
}
249249

250250
$stat(handle: number, resource: UriComponents): TPromise<files.IStat, any> {
251-
return asWinJsPromise(token => this._fsProvider.get(handle).stat(URI.revive(resource), token));
251+
return asWinJsPromise(token => this._fsProvider.get(handle).stat(URI.revive(resource), {}, token));
252252
}
253253

254254
$readdir(handle: number, resource: UriComponents): TPromise<[string, files.IStat][], any> {
255-
return asWinJsPromise(token => this._fsProvider.get(handle).readDirectory(URI.revive(resource), token));
255+
return asWinJsPromise(token => this._fsProvider.get(handle).readDirectory(URI.revive(resource), {}, token));
256256
}
257257

258258
$readFile(handle: number, resource: UriComponents, flags: files.FileOpenFlags): TPromise<string> {
@@ -268,7 +268,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
268268
}
269269

270270
$delete(handle: number, resource: UriComponents): TPromise<void, any> {
271-
return asWinJsPromise(token => this._fsProvider.get(handle).delete(URI.revive(resource), token));
271+
return asWinJsPromise(token => this._fsProvider.get(handle).delete(URI.revive(resource), {}, token));
272272
}
273273

274274
$rename(handle: number, oldUri: UriComponents, newUri: UriComponents, flags: files.FileOpenFlags): TPromise<files.IStat, any> {
@@ -280,7 +280,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
280280
}
281281

282282
$mkdir(handle: number, resource: UriComponents): TPromise<files.IStat, any> {
283-
return asWinJsPromise(token => this._fsProvider.get(handle).createDirectory(URI.revive(resource), token));
283+
return asWinJsPromise(token => this._fsProvider.get(handle).createDirectory(URI.revive(resource), {}, token));
284284
}
285285

286286
$watch(handle: number, session: number, resource: UriComponents, opts: files.IWatchOptions): void {

0 commit comments

Comments
 (0)