@theia/notebook 1.43.1 → 1.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/lib/browser/contributions/notebook-actions-contribution.d.ts +2 -2
  2. package/lib/browser/contributions/notebook-actions-contribution.d.ts.map +1 -1
  3. package/lib/browser/contributions/notebook-actions-contribution.js +1 -1
  4. package/lib/browser/contributions/notebook-actions-contribution.js.map +1 -1
  5. package/lib/browser/index.d.ts +1 -0
  6. package/lib/browser/index.d.ts.map +1 -1
  7. package/lib/browser/index.js +1 -0
  8. package/lib/browser/index.js.map +1 -1
  9. package/lib/browser/notebook-editor-widget.d.ts +4 -1
  10. package/lib/browser/notebook-editor-widget.d.ts.map +1 -1
  11. package/lib/browser/notebook-editor-widget.js +9 -3
  12. package/lib/browser/notebook-editor-widget.js.map +1 -1
  13. package/lib/browser/notebook-frontend-module.js +1 -1
  14. package/lib/browser/notebook-frontend-module.js.map +1 -1
  15. package/lib/browser/notebook-output-utils.d.ts +13 -0
  16. package/lib/browser/notebook-output-utils.d.ts.map +1 -0
  17. package/lib/browser/notebook-output-utils.js +112 -0
  18. package/lib/browser/notebook-output-utils.js.map +1 -0
  19. package/lib/browser/notebook-types.d.ts +120 -0
  20. package/lib/browser/notebook-types.d.ts.map +1 -0
  21. package/lib/browser/notebook-types.js +28 -0
  22. package/lib/browser/notebook-types.js.map +1 -0
  23. package/lib/browser/service/notebook-cell-context-manager.d.ts +5 -4
  24. package/lib/browser/service/notebook-cell-context-manager.d.ts.map +1 -1
  25. package/lib/browser/service/notebook-cell-context-manager.js +15 -10
  26. package/lib/browser/service/notebook-cell-context-manager.js.map +1 -1
  27. package/lib/browser/service/notebook-editor-widget-service.d.ts +2 -5
  28. package/lib/browser/service/notebook-editor-widget-service.d.ts.map +1 -1
  29. package/lib/browser/service/notebook-editor-widget-service.js +12 -15
  30. package/lib/browser/service/notebook-editor-widget-service.js.map +1 -1
  31. package/lib/browser/service/notebook-execution-service.d.ts +3 -4
  32. package/lib/browser/service/notebook-execution-service.d.ts.map +1 -1
  33. package/lib/browser/service/notebook-execution-service.js +2 -12
  34. package/lib/browser/service/notebook-execution-service.js.map +1 -1
  35. package/lib/browser/service/notebook-execution-state-service.d.ts +2 -5
  36. package/lib/browser/service/notebook-execution-state-service.d.ts.map +1 -1
  37. package/lib/browser/service/notebook-execution-state-service.js.map +1 -1
  38. package/lib/browser/service/notebook-kernel-history-service.d.ts +4 -1
  39. package/lib/browser/service/notebook-kernel-history-service.d.ts.map +1 -1
  40. package/lib/browser/service/notebook-kernel-history-service.js +15 -0
  41. package/lib/browser/service/notebook-kernel-history-service.js.map +1 -1
  42. package/lib/browser/service/notebook-kernel-quick-pick-service.d.ts +5 -11
  43. package/lib/browser/service/notebook-kernel-quick-pick-service.d.ts.map +1 -1
  44. package/lib/browser/service/notebook-kernel-quick-pick-service.js +33 -48
  45. package/lib/browser/service/notebook-kernel-quick-pick-service.js.map +1 -1
  46. package/lib/browser/service/notebook-service.d.ts.map +1 -1
  47. package/lib/browser/service/notebook-service.js +9 -4
  48. package/lib/browser/service/notebook-service.js.map +1 -1
  49. package/lib/browser/view/notebook-cell-editor.d.ts +1 -1
  50. package/lib/browser/view/notebook-cell-editor.d.ts.map +1 -1
  51. package/lib/browser/view/notebook-cell-editor.js +5 -5
  52. package/lib/browser/view/notebook-cell-editor.js.map +1 -1
  53. package/lib/browser/view/notebook-cell-list-view.d.ts.map +1 -1
  54. package/lib/browser/view/notebook-cell-list-view.js +9 -3
  55. package/lib/browser/view/notebook-cell-list-view.js.map +1 -1
  56. package/lib/browser/view/notebook-cell-toolbar-factory.d.ts +1 -0
  57. package/lib/browser/view/notebook-cell-toolbar-factory.d.ts.map +1 -1
  58. package/lib/browser/view/notebook-cell-toolbar-factory.js +2 -1
  59. package/lib/browser/view/notebook-cell-toolbar-factory.js.map +1 -1
  60. package/lib/browser/view/notebook-cell-toolbar.d.ts +5 -4
  61. package/lib/browser/view/notebook-cell-toolbar.d.ts.map +1 -1
  62. package/lib/browser/view/notebook-cell-toolbar.js +6 -4
  63. package/lib/browser/view/notebook-cell-toolbar.js.map +1 -1
  64. package/lib/browser/view/notebook-main-toolbar.d.ts.map +1 -1
  65. package/lib/browser/view/notebook-main-toolbar.js +8 -0
  66. package/lib/browser/view/notebook-main-toolbar.js.map +1 -1
  67. package/lib/browser/view-model/notebook-cell-model.d.ts +22 -2
  68. package/lib/browser/view-model/notebook-cell-model.d.ts.map +1 -1
  69. package/lib/browser/view-model/notebook-cell-model.js +5 -0
  70. package/lib/browser/view-model/notebook-cell-model.js.map +1 -1
  71. package/lib/browser/view-model/notebook-cell-output-model.d.ts.map +1 -1
  72. package/lib/browser/view-model/notebook-cell-output-model.js +4 -3
  73. package/lib/browser/view-model/notebook-cell-output-model.js.map +1 -1
  74. package/lib/browser/view-model/notebook-model.d.ts +9 -7
  75. package/lib/browser/view-model/notebook-model.d.ts.map +1 -1
  76. package/lib/browser/view-model/notebook-model.js +42 -36
  77. package/lib/browser/view-model/notebook-model.js.map +1 -1
  78. package/lib/common/notebook-common.d.ts +14 -146
  79. package/lib/common/notebook-common.d.ts.map +1 -1
  80. package/lib/common/notebook-common.js +13 -9
  81. package/lib/common/notebook-common.js.map +1 -1
  82. package/package.json +7 -7
  83. package/src/browser/contributions/notebook-actions-contribution.ts +2 -2
  84. package/src/browser/index.ts +1 -0
  85. package/src/browser/notebook-editor-widget.tsx +11 -5
  86. package/src/browser/notebook-frontend-module.ts +2 -2
  87. package/src/browser/notebook-output-utils.ts +119 -0
  88. package/src/browser/notebook-types.ts +172 -0
  89. package/src/browser/service/notebook-cell-context-manager.ts +17 -12
  90. package/src/browser/service/notebook-editor-widget-service.ts +14 -19
  91. package/src/browser/service/notebook-execution-service.ts +4 -16
  92. package/src/browser/service/notebook-execution-state-service.ts +2 -5
  93. package/src/browser/service/notebook-kernel-history-service.ts +18 -1
  94. package/src/browser/service/notebook-kernel-quick-pick-service.ts +29 -49
  95. package/src/browser/service/notebook-service.ts +13 -4
  96. package/src/browser/view/notebook-cell-editor.tsx +7 -5
  97. package/src/browser/view/notebook-cell-list-view.tsx +8 -3
  98. package/src/browser/view/notebook-cell-toolbar-factory.tsx +3 -1
  99. package/src/browser/view/notebook-cell-toolbar.tsx +8 -5
  100. package/src/browser/view/notebook-main-toolbar.tsx +9 -0
  101. package/src/browser/view-model/notebook-cell-model.ts +30 -3
  102. package/src/browser/view-model/notebook-cell-output-model.ts +6 -5
  103. package/src/browser/view-model/notebook-model.ts +52 -45
  104. package/src/common/notebook-common.ts +22 -181
@@ -17,18 +17,16 @@
17
17
  import { Disposable, Emitter, URI } from '@theia/core';
18
18
  import { Saveable, SaveOptions } from '@theia/core/lib/browser';
19
19
  import {
20
- CellData,
21
- CellEditOperation, CellEditType, CellUri, NotebookCellInternalMetadata,
20
+ CellData, CellEditType, CellUri, NotebookCellInternalMetadata,
22
21
  NotebookCellsChangeType, NotebookCellTextModelSplice, NotebookData,
23
- NotebookDocumentMetadata, NotebookModelWillAddRemoveEvent,
24
- NotebookTextModelChangedEvent, NullablePartialNotebookCellInternalMetadata
22
+ NotebookDocumentMetadata,
25
23
  } from '../../common';
24
+ import { NotebookContentChangedEvent, NotebookModelWillAddRemoveEvent, CellEditOperation, NullablePartialNotebookCellInternalMetadata } from '../notebook-types';
26
25
  import { NotebookSerializer } from '../service/notebook-service';
27
26
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
28
27
  import { NotebookCellModel, NotebookCellModelFactory } from './notebook-cell-model';
29
28
  import { MonacoTextModelService } from '@theia/monaco/lib/browser/monaco-text-model-service';
30
29
  import { inject, injectable, interfaces, postConstruct } from '@theia/core/shared/inversify';
31
- import { NotebookKernel } from '../service/notebook-kernel-service';
32
30
  import { UndoRedoService } from '@theia/editor/lib/browser/undo-redo-service';
33
31
 
34
32
  export const NotebookModelFactory = Symbol('NotebookModelFactory');
@@ -62,7 +60,7 @@ export class NotebookModel implements Saveable, Disposable {
62
60
  protected readonly onDidAddOrRemoveCellEmitter = new Emitter<NotebookModelWillAddRemoveEvent>();
63
61
  readonly onDidAddOrRemoveCell = this.onDidAddOrRemoveCellEmitter.event;
64
62
 
65
- protected readonly onDidChangeContentEmitter = new Emitter<NotebookTextModelChangedEvent>();
63
+ protected readonly onDidChangeContentEmitter = new Emitter<NotebookContentChangedEvent[]>();
66
64
  readonly onDidChangeContent = this.onDidChangeContentEmitter.event;
67
65
 
68
66
  @inject(FileService)
@@ -81,11 +79,19 @@ export class NotebookModel implements Saveable, Disposable {
81
79
  protected cellModelFactory: NotebookCellModelFactory;
82
80
  readonly autoSave: 'off' | 'afterDelay' | 'onFocusChange' | 'onWindowChange';
83
81
 
84
- nextHandle: number = 0;
82
+ protected nextHandle: number = 0;
85
83
 
86
- kernel?: NotebookKernel;
84
+ protected _dirty: boolean = false;
85
+
86
+ set dirty(dirty: boolean) {
87
+ this._dirty = dirty;
88
+ this.onDirtyChangedEmitter.fire();
89
+ }
90
+
91
+ get dirty(): boolean {
92
+ return this._dirty;
93
+ }
87
94
 
88
- dirty: boolean;
89
95
  selectedCell?: NotebookCellModel;
90
96
  protected dirtyCells: NotebookCellModel[] = [];
91
97
 
@@ -121,18 +127,6 @@ export class NotebookModel implements Saveable, Disposable {
121
127
 
122
128
  this.metadata = this.metadata;
123
129
 
124
- this.modelService.onDidCreate(editorModel => {
125
- const modelUri = new URI(editorModel.uri);
126
- if (modelUri.scheme === CellUri.scheme) {
127
- const cellUri = CellUri.parse(modelUri);
128
- if (cellUri && cellUri.notebook.isEqual(this.uri)) {
129
- const cell = this.cells.find(c => c.handle === cellUri.handle);
130
- if (cell) {
131
- cell.textModel = editorModel;
132
- }
133
- }
134
- }
135
- });
136
130
  this.nextHandle = this.cells.length;
137
131
  }
138
132
 
@@ -147,7 +141,6 @@ export class NotebookModel implements Saveable, Disposable {
147
141
  async save(options: SaveOptions): Promise<void> {
148
142
  this.dirtyCells = [];
149
143
  this.dirty = false;
150
- this.onDirtyChangedEmitter.fire();
151
144
 
152
145
  const serializedNotebook = await this.props.serializer.fromNotebook({
153
146
  cells: this.cells.map(cell => cell.getData()),
@@ -170,9 +163,34 @@ export class NotebookModel implements Saveable, Disposable {
170
163
  };
171
164
  }
172
165
 
166
+ async applySnapshot(snapshot: Saveable.Snapshot): Promise<void> {
167
+ const rawData = 'read' in snapshot ? snapshot.read() : snapshot.value;
168
+ if (!rawData) {
169
+ throw new Error('could not read notebook snapshot');
170
+ }
171
+ const data = JSON.parse(rawData);
172
+ const cells = data.cells.map((cell: CellData, index: number) => {
173
+ const handle = this.nextHandle++;
174
+ return this.cellModelFactory({
175
+ uri: CellUri.generate(this.uri, handle),
176
+ handle: handle,
177
+ source: cell.source,
178
+ language: cell.language,
179
+ cellKind: cell.cellKind,
180
+ outputs: cell.outputs,
181
+ metadata: cell.metadata,
182
+ internalMetadata: cell.internalMetadata,
183
+ collapseState: cell.collapseState
184
+ });
185
+ });
186
+ this.addCellOutputListeners(cells);
187
+
188
+ this.metadata = data.metadata;
189
+
190
+ }
191
+
173
192
  async revert(options?: Saveable.RevertOptions): Promise<void> {
174
193
  this.dirty = false;
175
- this.onDirtyChangedEmitter.fire();
176
194
  }
177
195
 
178
196
  isDirty(): boolean {
@@ -186,8 +204,8 @@ export class NotebookModel implements Saveable, Disposable {
186
204
  this.dirtyCells.splice(this.dirtyCells.indexOf(cell), 1);
187
205
  }
188
206
 
189
- const oldDirtyState = this.dirty;
190
- this.dirty = this.dirtyCells.length > 0;
207
+ const oldDirtyState = this._dirty;
208
+ this._dirty = this.dirtyCells.length > 0;
191
209
  if (this.dirty !== oldDirtyState) {
192
210
  this.onDirtyChangedEmitter.fire();
193
211
  }
@@ -211,7 +229,6 @@ export class NotebookModel implements Saveable, Disposable {
211
229
  for (const cell of cells) {
212
230
  cell.onDidChangeOutputs(() => {
213
231
  this.dirty = true;
214
- this.onDirtyChangedEmitter.fire();
215
232
  });
216
233
  }
217
234
  }
@@ -294,7 +311,7 @@ export class NotebookModel implements Saveable, Disposable {
294
311
  });
295
312
  this.addCellOutputListeners(cells);
296
313
 
297
- const changes: NotebookCellTextModelSplice<NotebookCellModel>[] = [[start, deleteCount, cells]];
314
+ const changes: NotebookCellTextModelSplice<NotebookCellModel>[] = [{ start, deleteCount, newItems: cells }];
298
315
 
299
316
  const deletedCells = this.cells.splice(start, deleteCount, ...cells);
300
317
 
@@ -308,8 +325,8 @@ export class NotebookModel implements Saveable, Disposable {
308
325
  async () => this.replaceCells(start, deleteCount, newCells, false));
309
326
  }
310
327
 
311
- this.onDidAddOrRemoveCellEmitter.fire({ rawEvent: { kind: NotebookCellsChangeType.ModelChange, changes } });
312
- this.onDidChangeContentEmitter.fire({ rawEvents: [{ kind: NotebookCellsChangeType.ModelChange, changes }] });
328
+ this.onDidAddOrRemoveCellEmitter.fire({ rawEvent: { kind: NotebookCellsChangeType.ModelChange, changes }, newCellIds: cells.map(cell => cell.handle) });
329
+ this.onDidChangeContentEmitter.fire([{ kind: NotebookCellsChangeType.ModelChange, changes }]);
313
330
  }
314
331
 
315
332
  private changeCellInternalMetadataPartial(cell: NotebookCellModel, internalMetadata: NullablePartialNotebookCellInternalMetadata): void {
@@ -323,11 +340,9 @@ export class NotebookModel implements Saveable, Disposable {
323
340
  }
324
341
 
325
342
  cell.internalMetadata = newInternalMetadata;
326
- this.onDidChangeContentEmitter.fire({
327
- rawEvents: [
328
- { kind: NotebookCellsChangeType.ChangeCellInternalMetadata, index: this.cells.indexOf(cell), internalMetadata: newInternalMetadata }
329
- ]
330
- });
343
+ this.onDidChangeContentEmitter.fire([
344
+ { kind: NotebookCellsChangeType.ChangeCellInternalMetadata, index: this.cells.indexOf(cell), internalMetadata: newInternalMetadata }
345
+ ]);
331
346
  }
332
347
 
333
348
  private updateNotebookMetadata(metadata: NotebookDocumentMetadata, computeUndoRedo: boolean): void {
@@ -340,10 +355,7 @@ export class NotebookModel implements Saveable, Disposable {
340
355
  }
341
356
 
342
357
  this.metadata = metadata;
343
- this.onDidChangeContentEmitter.fire({
344
- rawEvents: [{ kind: NotebookCellsChangeType.ChangeDocumentMetadata, metadata: this.metadata }],
345
- synchronous: true,
346
- });
358
+ this.onDidChangeContentEmitter.fire([{ kind: NotebookCellsChangeType.ChangeDocumentMetadata, metadata: this.metadata }]);
347
359
  }
348
360
 
349
361
  private changeCellLanguage(cell: NotebookCellModel, languageId: string, computeUndoRedo: boolean): void {
@@ -353,10 +365,7 @@ export class NotebookModel implements Saveable, Disposable {
353
365
 
354
366
  cell.language = languageId;
355
367
 
356
- this.onDidChangeContentEmitter.fire({
357
- rawEvents: [{ kind: NotebookCellsChangeType.ChangeCellLanguage, index: this.cells.indexOf(cell), language: languageId }],
358
- synchronous: true,
359
- });
368
+ this.onDidChangeContentEmitter.fire([{ kind: NotebookCellsChangeType.ChangeCellLanguage, index: this.cells.indexOf(cell), language: languageId }]);
360
369
  }
361
370
 
362
371
  private moveCellToIndex(fromIndex: number, length: number, toIndex: number, computeUndoRedo: boolean): boolean {
@@ -369,9 +378,7 @@ export class NotebookModel implements Saveable, Disposable {
369
378
 
370
379
  const cells = this.cells.splice(fromIndex, length);
371
380
  this.cells.splice(toIndex, 0, ...cells);
372
- this.onDidChangeContentEmitter.fire({
373
- rawEvents: [{ kind: NotebookCellsChangeType.Move, index: fromIndex, length, newIdx: toIndex, cells }],
374
- });
381
+ this.onDidChangeContentEmitter.fire([{ kind: NotebookCellsChangeType.Move, index: fromIndex, length, newIdx: toIndex, cells }]);
375
382
 
376
383
  return true;
377
384
  }
@@ -14,11 +14,18 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { CancellationToken, Command, Event, URI } from '@theia/core';
17
+ import { Command, URI, isObject } from '@theia/core';
18
18
  import { MarkdownString } from '@theia/core/lib/common/markdown-rendering/markdown-string';
19
19
  import { BinaryBuffer } from '@theia/core/lib/common/buffer';
20
20
  import { UriComponents } from '@theia/core/lib/common/uri';
21
- import { CellRange } from './notebook-range';
21
+
22
+ export interface NotebookCommand {
23
+ id: string;
24
+ title?: string;
25
+ tooltip?: string;
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ arguments?: any[];
28
+ }
22
29
 
23
30
  export enum CellKind {
24
31
  Markup = 1,
@@ -88,23 +95,6 @@ export interface NotebookCellCollapseState {
88
95
  outputCollapsed?: boolean;
89
96
  }
90
97
 
91
- export interface NotebookCell {
92
- readonly uri: URI;
93
- handle: number;
94
- language: string;
95
- cellKind: CellKind;
96
- outputs: CellOutput[];
97
- metadata: NotebookCellMetadata;
98
- internalMetadata: NotebookCellInternalMetadata;
99
- text: string;
100
- onDidChangeOutputs?: Event<NotebookCellOutputsSplice>;
101
- onDidChangeOutputItems?: Event<CellOutput>;
102
- onDidChangeLanguage: Event<string>;
103
- onDidChangeMetadata: Event<void>;
104
- onDidChangeInternalMetadata: Event<CellInternalMetadataChangedEvent>;
105
-
106
- }
107
-
108
98
  export interface CellData {
109
99
  source: string;
110
100
  language: string;
@@ -115,13 +105,6 @@ export interface CellData {
115
105
  collapseState?: NotebookCellCollapseState;
116
106
  }
117
107
 
118
- export interface CellReplaceEdit {
119
- editType: CellEditType.Replace;
120
- index: number;
121
- count: number;
122
- cells: CellData[];
123
- }
124
-
125
108
  export interface NotebookDocumentMetadataEdit {
126
109
  editType: CellEditType.DocumentMetadata;
127
110
  metadata: NotebookDocumentMetadata;
@@ -140,32 +123,11 @@ export interface NotebookContributionData {
140
123
  exclusive: boolean;
141
124
  }
142
125
 
143
- export interface NotebookCellStatusBarItemList {
144
- items: NotebookCellStatusBarItem[];
145
- dispose?(): void;
146
- }
147
-
148
- export interface NotebookCellStatusBarItemProvider {
149
- viewType: string;
150
- onDidChangeStatusBarItems?: Event<void>;
151
- provideCellStatusBarItems(uri: UriComponents, index: number, token: CancellationToken): Promise<NotebookCellStatusBarItemList | undefined>;
152
- }
153
-
154
- export interface NotebookCellOutputsSplice {
155
- start: number /* start */;
156
- deleteCount: number /* delete count */;
157
- newOutputs: CellOutput[];
158
- };
159
-
160
- export interface CellInternalMetadataChangedEvent {
161
- readonly lastRunSuccessChanged?: boolean;
162
- }
163
-
164
- export type NotebookCellTextModelSplice<T> = [
126
+ export interface NotebookCellTextModelSplice<T> {
165
127
  start: number,
166
128
  deleteCount: number,
167
129
  newItems: T[]
168
- ];
130
+ };
169
131
 
170
132
  export enum NotebookCellsChangeType {
171
133
  ModelChange = 1,
@@ -182,69 +144,12 @@ export enum NotebookCellsChangeType {
182
144
  Unknown = 100
183
145
  }
184
146
 
185
- export enum SelectionStateType {
186
- Handle = 0,
187
- Index = 1
188
- }
189
- export interface SelectionHandleState {
190
- kind: SelectionStateType.Handle;
191
- primary: number | null;
192
- selections: number[];
193
- }
194
-
195
- export interface SelectionIndexState {
196
- kind: SelectionStateType.Index;
197
- focus: CellRange;
198
- selections: CellRange[];
199
- }
200
-
201
- export type SelectionState = SelectionHandleState | SelectionIndexState;
202
-
203
- export interface NotebookTextModelChangedEvent {
204
- readonly rawEvents: NotebookRawContentEvent[];
205
- // readonly versionId: number;
206
- readonly synchronous?: boolean;
207
- readonly endSelectionState?: SelectionState;
208
- };
209
-
210
- export interface NotebookCellsInitializeEvent<T> {
211
- readonly kind: NotebookCellsChangeType.Initialize;
212
- readonly changes: NotebookCellTextModelSplice<T>[];
213
- }
214
-
215
147
  export interface NotebookCellsChangeLanguageEvent {
216
148
  readonly kind: NotebookCellsChangeType.ChangeCellLanguage;
217
149
  readonly index: number;
218
150
  readonly language: string;
219
151
  }
220
152
 
221
- export interface NotebookCellsModelChangedEvent<T> {
222
- readonly kind: NotebookCellsChangeType.ModelChange;
223
- readonly changes: NotebookCellTextModelSplice<T>[];
224
- }
225
-
226
- export interface NotebookCellsModelMoveEvent<T> {
227
- readonly kind: NotebookCellsChangeType.Move;
228
- readonly index: number;
229
- readonly length: number;
230
- readonly newIdx: number;
231
- readonly cells: T[];
232
- }
233
-
234
- export interface NotebookOutputChangedEvent {
235
- readonly kind: NotebookCellsChangeType.Output;
236
- readonly index: number;
237
- readonly outputs: CellOutput[];
238
- readonly append: boolean;
239
- }
240
-
241
- export interface NotebookOutputItemChangedEvent {
242
- readonly kind: NotebookCellsChangeType.OutputItem;
243
- readonly index: number;
244
- readonly outputId: string;
245
- readonly outputItems: CellOutputItem[];
246
- readonly append: boolean;
247
- }
248
153
  export interface NotebookCellsChangeMetadataEvent {
249
154
  readonly kind: NotebookCellsChangeType.ChangeCellMetadata;
250
155
  readonly index: number;
@@ -257,35 +162,23 @@ export interface NotebookCellsChangeInternalMetadataEvent {
257
162
  readonly internalMetadata: NotebookCellInternalMetadata;
258
163
  }
259
164
 
260
- export interface NotebookDocumentChangeMetadataEvent {
261
- readonly kind: NotebookCellsChangeType.ChangeDocumentMetadata;
262
- readonly metadata: NotebookDocumentMetadata;
263
- }
264
-
265
- export interface NotebookDocumentUnknownChangeEvent {
266
- readonly kind: NotebookCellsChangeType.Unknown;
267
- }
268
-
269
165
  export interface NotebookCellContentChangeEvent {
270
166
  readonly kind: NotebookCellsChangeType.ChangeCellContent;
271
167
  readonly index: number;
272
168
  }
273
169
 
274
- export type NotebookRawContentEvent = (NotebookCellsInitializeEvent<NotebookCell> | NotebookDocumentChangeMetadataEvent | NotebookCellContentChangeEvent |
275
- NotebookCellsModelChangedEvent<NotebookCell> | NotebookCellsModelMoveEvent<NotebookCell> | NotebookOutputChangedEvent | NotebookOutputItemChangedEvent |
276
- NotebookCellsChangeLanguageEvent | NotebookCellsChangeMetadataEvent |
277
- NotebookCellsChangeInternalMetadataEvent | NotebookDocumentUnknownChangeEvent); // & { transient: boolean };
278
-
279
- export interface NotebookModelChangedEvent {
280
- readonly rawEvents: NotebookRawContentEvent[];
281
- readonly versionId: number;
282
- // readonly synchronous: boolean | undefined;
283
- // readonly endSelectionState: ISelectionState | undefined;
284
- };
170
+ export interface NotebookModelResource {
171
+ notebookModelUri: URI;
172
+ }
285
173
 
286
- export interface NotebookModelWillAddRemoveEvent {
287
- readonly rawEvent: NotebookCellsModelChangedEvent<CellData>;
288
- };
174
+ export namespace NotebookModelResource {
175
+ export function is(item: unknown): item is NotebookModelResource {
176
+ return isObject<NotebookModelResource>(item) && item.notebookModelUri instanceof URI;
177
+ }
178
+ export function create(uri: URI): NotebookModelResource {
179
+ return { notebookModelUri: uri };
180
+ }
181
+ }
289
182
 
290
183
  export enum NotebookCellExecutionState {
291
184
  Unconfirmed = 1,
@@ -321,51 +214,12 @@ export interface CellExecutionStateUpdateDto {
321
214
  isPaused?: boolean;
322
215
  }
323
216
 
324
- export interface CellOutputEdit {
325
- editType: CellEditType.Output;
326
- index: number;
327
- outputs: CellOutput[];
328
- append?: boolean;
329
- }
330
-
331
- export interface CellOutputEditByHandle {
332
- editType: CellEditType.Output;
333
- handle: number;
334
- outputs: CellOutput[];
335
- append?: boolean;
336
- }
337
-
338
- export interface CellOutputItemEdit {
339
- editType: CellEditType.OutputItems;
340
- items: CellOutputItem[];
341
- outputId: string;
342
- append?: boolean;
343
- }
344
-
345
217
  export interface CellMetadataEdit {
346
218
  editType: CellEditType.Metadata;
347
219
  index: number;
348
220
  metadata: NotebookCellMetadata;
349
221
  }
350
222
 
351
- export interface CellLanguageEdit {
352
- editType: CellEditType.CellLanguage;
353
- index: number;
354
- language: string;
355
- }
356
-
357
- export interface DocumentMetadataEdit {
358
- editType: CellEditType.DocumentMetadata;
359
- metadata: NotebookDocumentMetadata;
360
- }
361
-
362
- export interface CellMoveEdit {
363
- editType: CellEditType.Move;
364
- index: number;
365
- length: number;
366
- newIdx: number;
367
- }
368
-
369
223
  export const enum CellEditType {
370
224
  Replace = 1,
371
225
  Output = 2,
@@ -378,19 +232,6 @@ export const enum CellEditType {
378
232
  PartialInternalMetadata = 9,
379
233
  }
380
234
 
381
- export type ImmediateCellEditOperation = CellOutputEditByHandle | CellOutputItemEdit | CellPartialInternalMetadataEditByHandle; // add more later on
382
- export type CellEditOperation = ImmediateCellEditOperation | CellReplaceEdit | CellOutputEdit |
383
- CellMetadataEdit | CellLanguageEdit | DocumentMetadataEdit | CellMoveEdit; // add more later on
384
-
385
- export type NullablePartialNotebookCellInternalMetadata = {
386
- [Key in keyof Partial<NotebookCellInternalMetadata>]: NotebookCellInternalMetadata[Key] | null
387
- };
388
- export interface CellPartialInternalMetadataEditByHandle {
389
- editType: CellEditType.PartialInternalMetadata;
390
- handle: number;
391
- internalMetadata: NullablePartialNotebookCellInternalMetadata;
392
- }
393
-
394
235
  export interface NotebookKernelSourceAction {
395
236
  readonly label: string;
396
237
  readonly description?: string;