Add an untitled document data property (#115790)

* Add an untitled document data property

* Dispose of the model passed back

* Fix layer problem

* Add untitledDocumentData to untitled notebooks

* Fix compilation errors

* Switch to using VS Buffer

* Fix threading the untitled document data back through

* Prevent save dialog on untitled reopen with

* Change ignore save setting

* Change setting name and abide by preserve focus

* Add unit test

* Switch to js doc comments

* Consolidate calculating the untitled value, and added test
This commit is contained in:
Logan Ramos
2021-03-10 14:54:18 -05:00
committed by GitHub
parent 371562f630
commit c72d7612b4
19 changed files with 155 additions and 26 deletions

View File

@@ -3,6 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { VSBuffer } from 'vs/base/common/buffer';
import { CancellationToken } from 'vs/base/common/cancellation';
import { hash } from 'vs/base/common/hash';
import { DisposableStore } from 'vs/base/common/lifecycle';
@@ -208,7 +209,7 @@ export class ExtHostCustomEditors implements extHostProtocol.ExtHostCustomEditor
}));
}
async $createCustomDocument(resource: UriComponents, viewType: string, backupId: string | undefined, cancellation: CancellationToken) {
async $createCustomDocument(resource: UriComponents, viewType: string, backupId: string | undefined, untitledDocumentData: VSBuffer | undefined, cancellation: CancellationToken) {
const entry = this._editorProviders.get(viewType);
if (!entry) {
throw new Error(`No provider found for '${viewType}'`);
@@ -219,7 +220,7 @@ export class ExtHostCustomEditors implements extHostProtocol.ExtHostCustomEditor
}
const revivedResource = URI.revive(resource);
const document = await entry.provider.openCustomDocument(revivedResource, { backupId }, cancellation);
const document = await entry.provider.openCustomDocument(revivedResource, { backupId, untitledDocumentData: untitledDocumentData?.buffer }, cancellation);
let storageRoot: URI | undefined;
if (this.supportEditing(entry.provider) && this._extensionStoragePaths) {