From d37a76dc92538ec842b5e72e8b8963b0b7cb2d78 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Thu, 19 May 2016 12:45:37 +0200 Subject: [PATCH] allow empty string as valid document content, fixes #6526 --- .../vscode-api-tests/src/workspace.test.ts | 17 +++++++++++++++++ src/vs/workbench/api/node/extHostDocuments.ts | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/extensions/vscode-api-tests/src/workspace.test.ts b/extensions/vscode-api-tests/src/workspace.test.ts index 6a7e09de9b3..47c7616650a 100644 --- a/extensions/vscode-api-tests/src/workspace.test.ts +++ b/extensions/vscode-api-tests/src/workspace.test.ts @@ -294,6 +294,23 @@ suite('workspace-namespace', () => { }); }); + test('registerTextDocumentContentProvider, empty doc', function () { + + let registration = workspace.registerTextDocumentContentProvider('foo', { + provideTextDocumentContent(uri) { + return ''; + } + }); + + const uri = Uri.parse('foo:doc/empty'); + + return workspace.openTextDocument(uri).then(doc => { + assert.equal(doc.getText(), ''); + assert.equal(doc.uri.toString(), uri.toString()); + registration.dispose(); + }); + }); + test('registerTextDocumentContentProvider, change event', function () { let callCount = 0; diff --git a/src/vs/workbench/api/node/extHostDocuments.ts b/src/vs/workbench/api/node/extHostDocuments.ts index 4c24bf70d34..57e269d6f60 100644 --- a/src/vs/workbench/api/node/extHostDocuments.ts +++ b/src/vs/workbench/api/node/extHostDocuments.ts @@ -631,7 +631,7 @@ export class MainThreadDocuments { this._resourceContentProvider[handle] = ResourceEditorInput.registerResourceContentProvider(scheme, { provideTextContent: (uri: URI): TPromise => { return this._proxy.$provideTextDocumentContent(handle, uri).then(value => { - if (value) { + if (typeof value === 'string') { this._virtualDocumentSet[uri.toString()] = true; const firstLineText = value.substr(0, 1 + value.search(/\r?\n/)); const mode = this._modeService.getOrCreateModeByFilenameOrFirstLine(uri.fsPath, firstLineText); -- GitLab