test('WorkspaceEdit', function() { let a = types.Uri.file('a.ts'); let b = types.Uri.file('b.ts'); let edit = new types.WorkspaceEdit(); assert.ok(!edit.has(a)); edit.set(a, [types.TextEdit.insert(new types.Position(0, 0), 'fff')]); assert.ok(edit.has(a)); assert.equal(edit.size, 1); assertToJSON(edit, [[URI.parse('file:///a.ts').toJSON(), [{ range: [{ line: 0, character: 0 }, { line: 0, character: 0 }], newText: 'fff' }]]]); edit.insert(b, new types.Position(1, 1), 'fff'); edit.delete(b, new types.Range(0, 0, 0, 0)); assert.ok(edit.has(b)); assert.equal(edit.size, 2); assertToJSON(edit, [ [URI.parse('file:///a.ts').toJSON(), [{ range: [{ line: 0, character: 0 }, { line: 0, character: 0 }], newText: 'fff' }]], [URI.parse('file:///b.ts').toJSON(), [{ range: [{ line: 1, character: 1 }, { line: 1, character: 1 }], newText: 'fff' }, { range: [{ line: 0, character: 0 }, { line: 0, character: 0 }], newText: '' }]] ]); edit.set(b, undefined); assert.ok(edit.has(b)); assert.equal(edit.size, 2); edit.set(b, [types.TextEdit.insert(new types.Position(0, 0), 'ffff')]); assert.equal(edit.get(b).length, 1); });
test('WorkspaceEdit', function() { let a = types.Uri.file('a.ts'); let b = types.Uri.file('b.ts'); let edit = new types.WorkspaceEdit(); assert.ok(!edit.has(a)); edit.set(a, [types.TextEdit.insert(new types.Position(0, 0), 'fff')]); assert.ok(edit.has(a)); assert.equal(edit.size, 1); assertToJSON(edit, [['file://a.ts', [{ range: [[0, 0], [0, 0]], newText: 'fff' }]]]); edit.insert(b, new types.Position(1, 1), 'fff'); edit.delete(b, new types.Range(0, 0, 0, 0)); assert.ok(edit.has(b)); assert.equal(edit.size, 2); assertToJSON(edit, [ ['file://a.ts', [{ range: [[0, 0], [0, 0]], newText: 'fff' }]], ['file://b.ts', [{ range: [[1, 1], [1, 1]], newText: 'fff' }, { range: [[0, 0], [0, 0]], newText: '' }]] ]); edit.set(b, undefined); assert.ok(edit.has(b)); assert.equal(edit.size, 2); edit.set(b, [types.TextEdit.insert(new types.Position(0, 0), 'ffff')]); assert.equal(edit.get(b).length, 1); });
let sub2 = participant.onWillSaveTextDocumentEvent(function (e) { // the document state AFTER the first listener kicked in assert.equal(document.version, 2); assert.equal(document.getText(), 'barfoo'); e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')])); });
let sub1 = participant.onWillSaveTextDocumentEvent(function (e) { // the document state we started with assert.equal(document.version, 1); assert.equal(document.getText(), 'foo'); e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')])); });
let sub = participant.onWillSaveTextDocumentEvent(function (e) { // concurrent change from somewhere documents.$acceptModelChanged(resource.toString(), [{ versionId: 2, range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 }, text: 'bar', rangeLength: undefined, eol: undefined, isRedoing: undefined, isUndoing: undefined, }]); e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')])); });
let sub = participant.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(function (e) { // concurrent change from somewhere documents.$acceptModelChanged(resource.toString(), { changes: [{ range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 }, rangeLength: undefined, text: 'bar' }], eol: undefined, versionId: 2 }, true); e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')])); });
let sub = participant.onWillSaveTextDocumentEvent(function (e) { e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')])); });
let sub = participant.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(function (e) { e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')])); e.waitUntil(TPromise.as([TextEdit.setEndOfLine(EndOfLine.CRLF)])); });