This commit is contained in:
Johannes Rieken
2018-03-29 12:16:20 +02:00
parent bb49e6e3c0
commit 98d0b747c2
3 changed files with 19 additions and 11 deletions

View File

@@ -15,6 +15,7 @@ import { IPatternInfo } from 'vs/platform/search/common/search';
import { values } from 'vs/base/common/map';
import { Range } from 'vs/workbench/api/node/extHostTypes';
import { ExtHostLanguageFeatures } from 'vs/workbench/api/node/extHostLanguageFeatures';
import { IProgress } from 'vs/platform/progress/common/progress';
class FsLinkProvider implements vscode.DocumentLinkProvider {
@@ -109,15 +110,19 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
return asWinJsPromise(token => this._fsProvider.get(handle).stat(URI.revive(resource)));
}
$read(handle: number, session: number, offset: number, count: number, resource: UriComponents): TPromise<number> {
const progress = {
const progress: IProgress<Uint8Array> = {
report: chunk => {
this._proxy.$reportFileChunk(handle, session, [].slice.call(chunk));
let base64Chunk = Buffer.isBuffer(chunk)
? chunk.toString('base64')
: Buffer.from(chunk.buffer).toString('base64');
this._proxy.$reportFileChunk(handle, session, base64Chunk);
}
};
return asWinJsPromise(token => this._fsProvider.get(handle).read(URI.revive(resource), offset, count, progress));
}
$write(handle: number, resource: UriComponents, content: number[]): TPromise<void, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).write(URI.revive(resource), Buffer.from(content)));
$write(handle: number, resource: UriComponents, base64Content: string): TPromise<void, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).write(URI.revive(resource), Buffer.from(base64Content, 'base64')));
}
$unlink(handle: number, resource: UriComponents): TPromise<void, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).unlink(URI.revive(resource)));