Skip to content

Commit bf0b4ac

Browse files
committed
remove old notebook events from API proposal and implementation
1 parent c2e314a commit bf0b4ac

11 files changed

+41
-202
lines changed

src/vs/workbench/api/browser/mainThreadNotebookDocuments.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,6 @@ export class MainThreadNotebookDocuments implements MainThreadNotebookDocumentsS
109109
this._notebookEditorModelResolverService.isDirty(textModel.uri),
110110
hasDocumentMetadataChangeEvent ? textModel.metadata : undefined
111111
);
112-
113-
if (hasDocumentMetadataChangeEvent) {
114-
this._proxy.$acceptDocumentPropertiesChanged(textModel.uri, { metadata: textModel.metadata });
115-
}
116112
}));
117113

118114
this._documentEventListenersMapping.set(textModel.uri, disposableStore);

src/vs/workbench/api/common/extHost.api.impl.ts

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
153153
const extHostDocumentContentProviders = rpcProtocol.set(ExtHostContext.ExtHostDocumentContentProviders, new ExtHostDocumentContentProvider(rpcProtocol, extHostDocumentsAndEditors, extHostLogService));
154154
const extHostDocumentSaveParticipant = rpcProtocol.set(ExtHostContext.ExtHostDocumentSaveParticipant, new ExtHostDocumentSaveParticipant(extHostLogService, extHostDocuments, rpcProtocol.getProxy(MainContext.MainThreadBulkEdits)));
155155
const extHostNotebook = rpcProtocol.set(ExtHostContext.ExtHostNotebook, new ExtHostNotebookController(rpcProtocol, extHostCommands, extHostDocumentsAndEditors, extHostDocuments, extensionStoragePaths));
156-
const extHostNotebookDocuments = rpcProtocol.set(ExtHostContext.ExtHostNotebookDocuments, new ExtHostNotebookDocuments(extHostLogService, extHostNotebook));
156+
const extHostNotebookDocuments = rpcProtocol.set(ExtHostContext.ExtHostNotebookDocuments, new ExtHostNotebookDocuments(extHostNotebook));
157157
const extHostNotebookEditors = rpcProtocol.set(ExtHostContext.ExtHostNotebookEditors, new ExtHostNotebookEditors(extHostLogService, rpcProtocol, extHostNotebook));
158158
const extHostNotebookKernels = rpcProtocol.set(ExtHostContext.ExtHostNotebookKernels, new ExtHostNotebookKernels(rpcProtocol, initData, extHostNotebook, extHostCommands, extHostLogService));
159159
const extHostNotebookRenderers = rpcProtocol.set(ExtHostContext.ExtHostNotebookRenderers, new ExtHostNotebookRenderers(rpcProtocol, extHostNotebook));
@@ -1118,40 +1118,20 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
11181118
registerNotebookCellStatusBarItemProvider: (notebookType: string, provider: vscode.NotebookCellStatusBarItemProvider) => {
11191119
return extHostNotebook.registerNotebookCellStatusBarItemProvider(extension, notebookType, provider);
11201120
},
1121-
get onDidSaveNotebookDocument(): Event<vscode.NotebookDocument> {
1122-
checkProposedApiEnabled(extension, 'notebookEditor');
1123-
return extHostNotebookDocuments.onDidSaveNotebookDocument;
1124-
},
11251121
createNotebookEditorDecorationType(options: vscode.NotebookDecorationRenderOptions): vscode.NotebookEditorDecorationType {
11261122
checkProposedApiEnabled(extension, 'notebookEditorDecorationType');
11271123
return extHostNotebookEditors.createNotebookEditorDecorationType(options);
11281124
},
11291125
createRendererMessaging(rendererId) {
11301126
return extHostNotebookRenderers.createRendererMessaging(extension, rendererId);
11311127
},
1132-
onDidChangeNotebookDocumentMetadata(listener, thisArgs?, disposables?) {
1133-
checkProposedApiEnabled(extension, 'notebookEditor');
1134-
return extHostNotebookDocuments.onDidChangeNotebookDocumentMetadata(listener, thisArgs, disposables);
1135-
},
1136-
onDidChangeNotebookCells(listener, thisArgs?, disposables?) {
1137-
checkProposedApiEnabled(extension, 'notebookEditor');
1138-
return extHostNotebook.onDidChangeNotebookCells(listener, thisArgs, disposables);
1139-
},
11401128
onDidChangeNotebookCellExecutionState(listener, thisArgs?, disposables?) {
11411129
checkProposedApiEnabled(extension, 'notebookCellExecutionState');
11421130
return extHostNotebookKernels.onDidChangeNotebookCellExecutionState(listener, thisArgs, disposables);
11431131
},
1144-
onDidChangeCellOutputs(listener, thisArgs?, disposables?) {
1145-
checkProposedApiEnabled(extension, 'notebookEditor');
1146-
return extHostNotebook.onDidChangeCellOutputs(listener, thisArgs, disposables);
1147-
},
1148-
onDidChangeCellMetadata(listener, thisArgs?, disposables?) {
1149-
checkProposedApiEnabled(extension, 'notebookEditor');
1150-
return extHostNotebook.onDidChangeCellMetadata(listener, thisArgs, disposables);
1151-
},
11521132
createConcatTextDocument(notebook, selector) {
11531133
checkProposedApiEnabled(extension, 'notebookConcatTextDocument');
1154-
return new ExtHostNotebookConcatDocument(extHostNotebook, extHostDocuments, notebook, selector);
1134+
return new ExtHostNotebookConcatDocument(extHostNotebookDocuments, extHostDocuments, notebook, selector);
11551135
},
11561136
};
11571137

src/vs/workbench/api/common/extHost.protocol.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2064,7 +2064,6 @@ export interface ExtHostNotebookDocumentsShape {
20642064
$acceptModelChanged(uriComponents: UriComponents, event: SerializableObjectWithBuffers<NotebookCellsChangedEventDto>, isDirty: boolean, newMetadata?: notebookCommon.NotebookDocumentMetadata): void;
20652065
$acceptDirtyStateChanged(uriComponents: UriComponents, isDirty: boolean): void;
20662066
$acceptModelSaved(uriComponents: UriComponents): void;
2067-
$acceptDocumentPropertiesChanged(uriComponents: UriComponents, data: INotebookDocumentPropertiesChangeData): void;
20682067
}
20692068

20702069
export type INotebookEditorViewColumnInfo = Record<string, number>;

src/vs/workbench/api/common/extHostNotebook.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,6 @@ export class ExtHostNotebookController implements ExtHostNotebookShape {
4848
private readonly _editors = new Map<string, ExtHostNotebookEditor>();
4949
private readonly _commandsConverter: CommandsConverter;
5050

51-
private readonly _onDidChangeNotebookCells = new Emitter<vscode.NotebookCellsChangeEvent>();
52-
readonly onDidChangeNotebookCells = this._onDidChangeNotebookCells.event;
53-
private readonly _onDidChangeCellOutputs = new Emitter<vscode.NotebookCellOutputsChangeEvent>();
54-
readonly onDidChangeCellOutputs = this._onDidChangeCellOutputs.event;
55-
private readonly _onDidChangeCellMetadata = new Emitter<vscode.NotebookCellMetadataChangeEvent>();
56-
readonly onDidChangeCellMetadata = this._onDidChangeCellMetadata.event;
5751
private readonly _onDidChangeActiveNotebookEditor = new Emitter<vscode.NotebookEditor | undefined>();
5852
readonly onDidChangeActiveNotebookEditor = this._onDidChangeActiveNotebookEditor.event;
5953

@@ -442,23 +436,11 @@ export class ExtHostNotebookController implements ExtHostNotebookShape {
442436
if (this._documents.has(uri)) {
443437
throw new Error(`adding EXISTING notebook ${uri} `);
444438
}
445-
const that = this;
446439

447440
const document = new ExtHostNotebookDocument(
448441
this._notebookDocumentsProxy,
449442
this._textDocumentsAndEditors,
450443
this._textDocuments,
451-
{
452-
emitModelChange(event: vscode.NotebookCellsChangeEvent): void {
453-
that._onDidChangeNotebookCells.fire(event);
454-
},
455-
emitCellOutputsChange(event: vscode.NotebookCellOutputsChangeEvent): void {
456-
that._onDidChangeCellOutputs.fire(event);
457-
},
458-
emitCellMetadataChange(event: vscode.NotebookCellMetadataChangeEvent): void {
459-
that._onDidChangeCellMetadata.fire(event);
460-
}
461-
},
462444
uri,
463445
modelData
464446
);

src/vs/workbench/api/common/extHostNotebookConcatDocument.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
import * as types from 'vs/workbench/api/common/extHostTypes';
77
import * as vscode from 'vscode';
88
import { Event, Emitter } from 'vs/base/common/event';
9-
import { ExtHostNotebookController } from 'vs/workbench/api/common/extHostNotebook';
109
import { ExtHostDocuments } from 'vs/workbench/api/common/extHostDocuments';
1110
import { PrefixSumComputer } from 'vs/editor/common/model/prefixSumComputer';
1211
import { DisposableStore } from 'vs/base/common/lifecycle';
1312
import { score } from 'vs/editor/common/languageSelector';
1413
import { ResourceMap } from 'vs/base/common/map';
1514
import { URI } from 'vs/base/common/uri';
1615
import { generateUuid } from 'vs/base/common/uuid';
16+
import { ExtHostNotebookDocuments } from 'vs/workbench/api/common/extHostNotebookDocuments';
1717

1818
export class ExtHostNotebookConcatDocument implements vscode.NotebookConcatTextDocument {
1919

@@ -32,7 +32,7 @@ export class ExtHostNotebookConcatDocument implements vscode.NotebookConcatTextD
3232
readonly uri = URI.from({ scheme: 'vscode-concat-doc', path: generateUuid() });
3333

3434
constructor(
35-
extHostNotebooks: ExtHostNotebookController,
35+
extHostNotebooks: ExtHostNotebookDocuments,
3636
extHostDocuments: ExtHostDocuments,
3737
private readonly _notebook: vscode.NotebookDocument,
3838
private readonly _selector: vscode.DocumentSelector | undefined,
@@ -56,7 +56,7 @@ export class ExtHostNotebookConcatDocument implements vscode.NotebookConcatTextD
5656
}
5757
};
5858

59-
this._disposables.add(extHostNotebooks.onDidChangeNotebookCells(e => documentChange(e.document)));
59+
this._disposables.add(extHostNotebooks.onDidChangeNotebookDocument(e => documentChange(e.notebook)));
6060
}
6161

6262
dispose(): void {

src/vs/workbench/api/common/extHostNotebookDocument.ts

Lines changed: 6 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { Schemas } from 'vs/base/common/network';
7-
import { deepFreeze, equals } from 'vs/base/common/objects';
87
import { URI } from 'vs/base/common/uri';
98
import * as extHostProtocol from 'vs/workbench/api/common/extHost.protocol';
109
import { ExtHostDocuments } from 'vs/workbench/api/common/extHostDocuments';
@@ -16,10 +15,12 @@ import * as vscode from 'vscode';
1615

1716
class RawContentChangeEvent {
1817

19-
20-
constructor(readonly start: number, readonly deletedCount: number, readonly deletedItems: vscode.NotebookCell[], readonly items: ExtHostCell[]) {
21-
22-
}
18+
constructor(
19+
readonly start: number,
20+
readonly deletedCount: number,
21+
readonly deletedItems: vscode.NotebookCell[],
22+
readonly items: ExtHostCell[]
23+
) { }
2324

2425
asApiEvent(): vscode.NotebookDocumentContentChange {
2526
return {
@@ -28,18 +29,6 @@ class RawContentChangeEvent {
2829
removedCells: this.deletedItems,
2930
};
3031
}
31-
32-
33-
static asApiEvents(events: RawContentChangeEvent[]): readonly vscode.NotebookCellsChangeData[] {
34-
return events.map(event => {
35-
return {
36-
start: event.start,
37-
deletedCount: event.deletedCount,
38-
deletedItems: event.deletedItems,
39-
items: event.items.map(data => data.apiCell)
40-
};
41-
});
42-
}
4332
}
4433

4534
export class ExtHostCell {
@@ -138,12 +127,6 @@ export class ExtHostCell {
138127
}
139128
}
140129

141-
export interface INotebookEventEmitter {
142-
emitModelChange(events: vscode.NotebookCellsChangeEvent): void;
143-
emitCellOutputsChange(event: vscode.NotebookCellOutputsChangeEvent): void;
144-
emitCellMetadataChange(event: vscode.NotebookCellMetadataChangeEvent): void;
145-
}
146-
147130

148131
export class ExtHostNotebookDocument {
149132

@@ -165,7 +148,6 @@ export class ExtHostNotebookDocument {
165148
private readonly _proxy: extHostProtocol.MainThreadNotebookDocumentsShape,
166149
private readonly _textDocumentsAndEditors: ExtHostDocumentsAndEditors,
167150
private readonly _textDocuments: ExtHostDocuments,
168-
private readonly _emitter: INotebookEventEmitter,
169151
readonly uri: URI,
170152
data: extHostProtocol.INotebookModelAddedData
171153
) {
@@ -388,13 +370,6 @@ export class ExtHostNotebookDocument {
388370
bucket.push(changeEvent.asApiEvent());
389371
}
390372
}
391-
392-
if (!initialization) {
393-
this._emitter.emitModelChange(deepFreeze({
394-
document: this.apiNotebook,
395-
changes: RawContentChangeEvent.asApiEvents(contentChangeEvents)
396-
}));
397-
}
398373
}
399374

400375
private _moveCell(index: number, newIdx: number, bucket: vscode.NotebookDocumentContentChange[]): void {
@@ -407,22 +382,16 @@ export class ExtHostNotebookDocument {
407382
for (const change of changes) {
408383
bucket.push(change.asApiEvent());
409384
}
410-
this._emitter.emitModelChange(deepFreeze({
411-
document: this.apiNotebook,
412-
changes: RawContentChangeEvent.asApiEvents(changes)
413-
}));
414385
}
415386

416387
private _setCellOutputs(index: number, outputs: extHostProtocol.NotebookOutputDto[]): void {
417388
const cell = this._cells[index];
418389
cell.setOutputs(outputs);
419-
this._emitter.emitCellOutputsChange(deepFreeze({ document: this.apiNotebook, cells: [cell.apiCell] }));
420390
}
421391

422392
private _setCellOutputItems(index: number, outputId: string, append: boolean, outputItems: extHostProtocol.NotebookOutputItemDto[]): void {
423393
const cell = this._cells[index];
424394
cell.setOutputItems(outputId, append, outputItems);
425-
this._emitter.emitCellOutputsChange(deepFreeze({ document: this.apiNotebook, cells: [cell.apiCell] }));
426395
}
427396

428397
private _changeCellLanguage(index: number, newLanguageId: string): void {
@@ -439,14 +408,7 @@ export class ExtHostNotebookDocument {
439408

440409
private _changeCellMetadata(index: number, newMetadata: notebookCommon.NotebookCellMetadata): void {
441410
const cell = this._cells[index];
442-
443-
const originalExtMetadata = cell.apiCell.metadata;
444411
cell.setMetadata(newMetadata);
445-
const newExtMetadata = cell.apiCell.metadata;
446-
447-
if (!equals(originalExtMetadata, newExtMetadata)) {
448-
this._emitter.emitCellMetadataChange(deepFreeze({ document: this.apiNotebook, cell: cell.apiCell }));
449-
}
450412
}
451413

452414
private _changeCellInternalMetadata(index: number, newInternalMetadata: notebookCommon.NotebookCellInternalMetadata): void {

src/vs/workbench/api/common/extHostNotebookDocuments.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import { Emitter } from 'vs/base/common/event';
77
import { URI, UriComponents } from 'vs/base/common/uri';
8-
import { ILogService } from 'vs/platform/log/common/log';
98
import * as extHostProtocol from 'vs/workbench/api/common/extHost.protocol';
109
import { ExtHostNotebookController } from 'vs/workbench/api/common/extHostNotebook';
1110
import { NotebookDocumentMetadata } from 'vs/workbench/contrib/notebook/common/notebookCommon';
@@ -14,17 +13,13 @@ import type * as vscode from 'vscode';
1413

1514
export class ExtHostNotebookDocuments implements extHostProtocol.ExtHostNotebookDocumentsShape {
1615

17-
private readonly _onDidChangeNotebookDocumentMetadata = new Emitter<vscode.NotebookDocumentMetadataChangeEvent>();
18-
readonly onDidChangeNotebookDocumentMetadata = this._onDidChangeNotebookDocumentMetadata.event;
19-
2016
private readonly _onDidSaveNotebookDocument = new Emitter<vscode.NotebookDocument>();
2117
readonly onDidSaveNotebookDocument = this._onDidSaveNotebookDocument.event;
2218

2319
private readonly _onDidChangeNotebookDocument = new Emitter<vscode.NotebookDocumentChangeEvent>();
2420
readonly onDidChangeNotebookDocument = this._onDidChangeNotebookDocument.event;
2521

2622
constructor(
27-
@ILogService private readonly _logService: ILogService,
2823
private readonly _notebooksAndEditors: ExtHostNotebookController,
2924
) { }
3025

@@ -43,13 +38,4 @@ export class ExtHostNotebookDocuments implements extHostProtocol.ExtHostNotebook
4338
const document = this._notebooksAndEditors.getNotebookDocument(URI.revive(uri));
4439
this._onDidSaveNotebookDocument.fire(document.apiNotebook);
4540
}
46-
47-
$acceptDocumentPropertiesChanged(uri: UriComponents, data: extHostProtocol.INotebookDocumentPropertiesChangeData): void {
48-
this._logService.debug('ExtHostNotebook#$acceptDocumentPropertiesChanged', uri.path, data);
49-
const document = this._notebooksAndEditors.getNotebookDocument(URI.revive(uri));
50-
document.acceptDocumentPropertiesChanged(data);
51-
if (data.metadata) {
52-
this._onDidChangeNotebookDocumentMetadata.fire({ document: document.apiNotebook });
53-
}
54-
}
5541
}

src/vs/workbench/api/test/browser/extHostNotebook.test.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ suite('NotebookCell#Document', function () {
6060
}
6161
};
6262
extHostNotebooks = new ExtHostNotebookController(rpcProtocol, new ExtHostCommands(rpcProtocol, new NullLogService()), extHostDocumentsAndEditors, extHostDocuments, extHostStoragePaths);
63-
extHostNotebookDocuments = new ExtHostNotebookDocuments(new NullLogService(), extHostNotebooks);
63+
extHostNotebookDocuments = new ExtHostNotebookDocuments(extHostNotebooks);
6464

6565
let reg = extHostNotebooks.registerNotebookContentProvider(nullExtensionDescription, 'test', new class extends mock<vscode.NotebookContentProvider>() {
6666
// async openNotebook() { }
@@ -146,12 +146,13 @@ suite('NotebookCell#Document', function () {
146146
test('cell document is vscode.TextDocument after changing it', async function () {
147147

148148
const p = new Promise<void>((resolve, reject) => {
149-
extHostNotebooks.onDidChangeNotebookCells(e => {
149+
150+
extHostNotebookDocuments.onDidChangeNotebookDocument(e => {
150151
try {
151-
assert.strictEqual(e.changes.length, 1);
152-
assert.strictEqual(e.changes[0].items.length, 2);
152+
assert.strictEqual(e.contentChanges.length, 1);
153+
assert.strictEqual(e.contentChanges[0].addedCells.length, 2);
153154

154-
const [first, second] = e.changes[0].items;
155+
const [first, second] = e.contentChanges[0].addedCells;
155156

156157
const doc1 = extHostDocuments.getAllDocumentData().find(data => isEqual(data.document.uri, first.document.uri));
157158
assert.ok(doc1);
@@ -167,6 +168,7 @@ suite('NotebookCell#Document', function () {
167168
reject(err);
168169
}
169170
});
171+
170172
});
171173

172174
extHostNotebookDocuments.$acceptModelChanged(notebookUri, new SerializableObjectWithBuffers({
@@ -317,7 +319,7 @@ suite('NotebookCell#Document', function () {
317319

318320
test('ERR MISSING extHostDocument for notebook cell: #116711', async function () {
319321

320-
const p = Event.toPromise(extHostNotebooks.onDidChangeNotebookCells);
322+
const p = Event.toPromise(extHostNotebookDocuments.onDidChangeNotebookDocument);
321323

322324
// DON'T call this, make sure the cell-documents have not been created yet
323325
// assert.strictEqual(notebook.notebookDocument.cellCount, 2);
@@ -350,14 +352,14 @@ suite('NotebookCell#Document', function () {
350352

351353
const event = await p;
352354

353-
assert.strictEqual(event.document === notebook.apiNotebook, true);
354-
assert.strictEqual(event.changes.length, 1);
355-
assert.strictEqual(event.changes[0].deletedCount, 2);
356-
assert.strictEqual(event.changes[0].deletedItems[0].document.isClosed, true);
357-
assert.strictEqual(event.changes[0].deletedItems[1].document.isClosed, true);
358-
assert.strictEqual(event.changes[0].items.length, 2);
359-
assert.strictEqual(event.changes[0].items[0].document.isClosed, false);
360-
assert.strictEqual(event.changes[0].items[1].document.isClosed, false);
355+
assert.strictEqual(event.notebook === notebook.apiNotebook, true);
356+
assert.strictEqual(event.contentChanges.length, 1);
357+
assert.strictEqual(event.contentChanges[0].range.end - event.contentChanges[0].range.start, 2);
358+
assert.strictEqual(event.contentChanges[0].removedCells[0].document.isClosed, true);
359+
assert.strictEqual(event.contentChanges[0].removedCells[1].document.isClosed, true);
360+
assert.strictEqual(event.contentChanges[0].addedCells.length, 2);
361+
assert.strictEqual(event.contentChanges[0].addedCells[0].document.isClosed, false);
362+
assert.strictEqual(event.contentChanges[0].addedCells[1].document.isClosed, false);
361363
});
362364

363365

0 commit comments

Comments
 (0)