joh/plastic fowl (#154275)

* * derive workspace dto with util
* be strict when defining reference version ids (must be set to a value or undefined)

* relax `ResourceNotebookCellEdit`
This commit is contained in:
Johannes Rieken
2022-07-06 18:33:04 +02:00
committed by GitHub
parent 0df86c37b6
commit f413297170
14 changed files with 159 additions and 147 deletions

View File

@@ -4,13 +4,12 @@
*--------------------------------------------------------------------------------------------*/
import * as assert from 'assert';
import * as extHostTypes from 'vs/workbench/api/common/extHostTypes';
import { MainContext, IWorkspaceEditDto, WorkspaceEditType, MainThreadBulkEditsShape } from 'vs/workbench/api/common/extHost.protocol';
import { MainContext, IWorkspaceEditDto, MainThreadBulkEditsShape, IWorkspaceTextEditDto } from 'vs/workbench/api/common/extHost.protocol';
import { URI } from 'vs/base/common/uri';
import { mock } from 'vs/base/test/common/mock';
import { ExtHostDocumentsAndEditors } from 'vs/workbench/api/common/extHostDocumentsAndEditors';
import { SingleProxyRPCProtocol, TestRPCProtocol } from 'vs/workbench/api/test/common/testRPCProtocol';
import { NullLogService } from 'vs/platform/log/common/log';
import { assertType } from 'vs/base/common/types';
import { ExtHostBulkEdits } from 'vs/workbench/api/common/extHostBulkEdits';
import { nullExtensionDescription } from 'vs/workbench/services/extensions/common/extensions';
@@ -50,8 +49,7 @@ suite('ExtHostBulkEdits.applyWorkspaceEdit', () => {
await bulkEdits.applyWorkspaceEdit(edit, nullExtensionDescription);
assert.strictEqual(workspaceResourceEdits.edits.length, 1);
const [first] = workspaceResourceEdits.edits;
assertType(first._type === WorkspaceEditType.Text);
assert.strictEqual(first.modelVersionId, 1337);
assert.strictEqual((<IWorkspaceTextEditDto>first).versionId, 1337);
});
test('does not use version id if document is not available', async () => {
@@ -60,8 +58,7 @@ suite('ExtHostBulkEdits.applyWorkspaceEdit', () => {
await bulkEdits.applyWorkspaceEdit(edit, nullExtensionDescription);
assert.strictEqual(workspaceResourceEdits.edits.length, 1);
const [first] = workspaceResourceEdits.edits;
assertType(first._type === WorkspaceEditType.Text);
assert.ok(typeof first.modelVersionId === 'undefined');
assert.ok(typeof (<IWorkspaceTextEditDto>first).versionId === 'undefined');
});
});

View File

@@ -266,8 +266,8 @@ suite('ExtHostDocumentSaveParticipant', () => {
sub.dispose();
assert.strictEqual(dto.edits.length, 2);
assert.ok((<IWorkspaceTextEditDto>dto.edits[0]).edit);
assert.ok((<IWorkspaceTextEditDto>dto.edits[1]).edit);
assert.ok((<IWorkspaceTextEditDto>dto.edits[0]).textEdit);
assert.ok((<IWorkspaceTextEditDto>dto.edits[1]).textEdit);
});
});
@@ -317,7 +317,7 @@ suite('ExtHostDocumentSaveParticipant', () => {
for (const edit of dto.edits) {
const uri = URI.revive((<IWorkspaceTextEditDto>edit).resource);
const { text, range } = (<IWorkspaceTextEditDto>edit).edit;
const { text, range } = (<IWorkspaceTextEditDto>edit).textEdit;
documents.$acceptModelChanged(uri, {
changes: [{
range,

View File

@@ -9,7 +9,7 @@ import { TestConfigurationService } from 'vs/platform/configuration/test/common/
import { ModelService } from 'vs/editor/common/services/modelService';
import { TestCodeEditorService } from 'vs/editor/test/browser/editorTestServices';
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
import { IWorkspaceTextEditDto, WorkspaceEditType } from 'vs/workbench/api/common/extHost.protocol';
import { IWorkspaceTextEditDto } from 'vs/workbench/api/common/extHost.protocol';
import { mock } from 'vs/base/test/common/mock';
import { Event } from 'vs/base/common/event';
import { URI } from 'vs/base/common/uri';
@@ -197,10 +197,9 @@ suite('MainThreadEditors', () => {
const model = modelService.createModel('something', null, resource);
const workspaceResourceEdit: IWorkspaceTextEditDto = {
_type: WorkspaceEditType.Text,
resource: resource,
modelVersionId: model.getVersionId(),
edit: {
versionId: model.getVersionId(),
textEdit: {
text: 'asdfg',
range: new Range(1, 1, 1, 1)
}
@@ -219,19 +218,17 @@ suite('MainThreadEditors', () => {
const model = modelService.createModel('something', null, resource);
const workspaceResourceEdit1: IWorkspaceTextEditDto = {
_type: WorkspaceEditType.Text,
resource: resource,
modelVersionId: model.getVersionId(),
edit: {
versionId: model.getVersionId(),
textEdit: {
text: 'asdfg',
range: new Range(1, 1, 1, 1)
}
};
const workspaceResourceEdit2: IWorkspaceTextEditDto = {
_type: WorkspaceEditType.Text,
resource: resource,
modelVersionId: model.getVersionId(),
edit: {
versionId: model.getVersionId(),
textEdit: {
text: 'asdfg',
range: new Range(1, 1, 1, 1)
}
@@ -251,9 +248,9 @@ suite('MainThreadEditors', () => {
test(`applyWorkspaceEdit with only resource edit`, () => {
return bulkEdits.$tryApplyWorkspaceEdit({
edits: [
{ _type: WorkspaceEditType.File, oldUri: resource, newUri: resource, options: undefined },
{ _type: WorkspaceEditType.File, oldUri: undefined, newUri: resource, options: undefined },
{ _type: WorkspaceEditType.File, oldUri: resource, newUri: undefined, options: undefined }
{ oldResource: resource, newResource: resource, options: undefined },
{ oldResource: undefined, newResource: resource, options: undefined },
{ oldResource: resource, newResource: undefined, options: undefined }
]
}).then((result) => {
assert.strictEqual(result, true);