@@ -113,18 +113,18 @@ class DelayedEmitter {
113
113
114
114
emit ( data : {
115
115
triggerDirty : { value : boolean } | undefined ,
116
- modelContentChange : { value : NotebookTextModelChangedEvent } | undefined ,
116
+ contentChange : { value : NotebookTextModelChangedEvent } | undefined ,
117
117
} ) {
118
118
this . _increaseVersion ( ) ;
119
119
120
120
if ( data . triggerDirty ) {
121
121
this . _textModel . setDirty ( data . triggerDirty . value ) ;
122
122
}
123
123
124
- if ( data . modelContentChange ) {
124
+ if ( data . contentChange ) {
125
125
this . _onDidChangeContent . fire (
126
126
{
127
- ...data . modelContentChange . value ,
127
+ ...data . contentChange . value ,
128
128
versionId : this . _textModel . versionId
129
129
}
130
130
) ;
@@ -164,7 +164,6 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
164
164
165
165
metadata : NotebookDocumentMetadata = notebookDocumentMetadataDefaults ;
166
166
transientOptions : TransientOptions = { transientMetadata : { } , transientOutputs : false } ;
167
- private _isUntitled : boolean | undefined = undefined ;
168
167
private _versionId = 0 ;
169
168
170
169
//#region selection TODO@rebornix this shouldn't be here
@@ -251,14 +250,15 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
251
250
return new NotebookCellTextModel ( cellUri , cellHandle , cell . source , cell . language , cell . cellKind , cell . outputs || [ ] , cell . metadata , this . transientOptions , this . _modelService ) ;
252
251
} ) ;
253
252
254
- this . _isUntitled = false ;
255
-
256
253
for ( let i = 0 ; i < mainCells . length ; i ++ ) {
257
254
this . _mapping . set ( mainCells [ i ] . handle , mainCells [ i ] ) ;
258
255
const dirtyStateListener = mainCells [ i ] . onDidChangeContent ( ( ) => {
259
- this . setDirty ( true ) ;
260
- this . _increaseVersionId ( ) ;
261
- this . _onDidChangeContent . fire ( { kind : NotebookCellsChangeType . ChangeCellContent , versionId : this . versionId , synchronous : true } ) ;
256
+ this . _eventEmitter . emit ( {
257
+ triggerDirty : { value : true } ,
258
+ contentChange : {
259
+ value : { kind : NotebookCellsChangeType . ChangeCellContent , versionId : this . versionId , synchronous : true }
260
+ }
261
+ } ) ;
262
262
} ) ;
263
263
264
264
this . _cellListeners . set ( mainCells [ i ] . handle , dirtyStateListener ) ;
@@ -325,7 +325,6 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
325
325
return ;
326
326
}
327
327
328
- this . _isUntitled = false ; //TODO@rebornix fishy?
329
328
const oldViewCells = this . _cells . slice ( 0 ) ;
330
329
const oldMap = new Map ( this . _mapping ) ;
331
330
@@ -348,7 +347,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
348
347
const dirtyStateListener = cell . onDidChangeContent ( ( ) => {
349
348
this . _eventEmitter . emit ( {
350
349
triggerDirty : { value : true } ,
351
- modelContentChange : { value : { kind : NotebookCellsChangeType . ChangeCellContent , versionId : this . versionId , synchronous : true } }
350
+ contentChange : { value : { kind : NotebookCellsChangeType . ChangeCellContent , versionId : this . versionId , synchronous : true } }
352
351
} ) ;
353
352
} ) ;
354
353
this . _cellListeners . set ( cell . handle , dirtyStateListener ) ;
@@ -378,7 +377,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
378
377
// should be deferred
379
378
this . _eventEmitter . emit ( {
380
379
triggerDirty : { value : true } ,
381
- modelContentChange : {
380
+ contentChange : {
382
381
value : {
383
382
kind : NotebookCellsChangeType . ModelChange ,
384
383
versionId : this . _versionId ,
@@ -389,7 +388,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
389
388
} ) ;
390
389
}
391
390
392
- handleEdit ( label : string | undefined , undo : ( ) => void , redo : ( ) => void ) : void {
391
+ handleUnknownEdit ( label : string | undefined , undo : ( ) => void , redo : ( ) => void ) : void {
393
392
this . _operationManager . pushEditOperation ( {
394
393
type : UndoRedoElementType . Resource ,
395
394
resource : this . uri ,
@@ -404,6 +403,10 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
404
403
this . setDirty ( true ) ;
405
404
}
406
405
406
+ handleUnknownChange ( ) {
407
+ this . setDirty ( true ) ;
408
+ }
409
+
407
410
createSnapshot ( preserveBOM ?: boolean ) : ITextSnapshot {
408
411
return new NotebookTextModelSnapshot ( this ) ;
409
412
}
@@ -412,17 +415,13 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
412
415
this . _versionId = this . _versionId + 1 ;
413
416
}
414
417
415
- handleUnknownChange ( ) {
416
- this . setDirty ( true ) ;
417
- }
418
-
419
418
updateLanguages ( languages : string [ ] ) {
420
419
const allLanguages = languages . find ( lan => lan === '*' ) ;
421
420
this . _allLanguages = allLanguages !== undefined ;
422
421
this . _languages = languages ;
423
422
424
423
const resolvedLanguages = this . resolvedLanguages ;
425
- if ( this . _isUntitled && resolvedLanguages . length && this . _cells . length ) {
424
+ if ( resolvedLanguages . length && this . _cells . length ) {
426
425
this . _cells [ 0 ] . language = resolvedLanguages [ 0 ] ;
427
426
}
428
427
}
@@ -431,70 +430,17 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
431
430
this . metadata = metadata ;
432
431
this . _eventEmitter . emit ( {
433
432
triggerDirty : { value : true } ,
434
- modelContentChange : { value : { kind : NotebookCellsChangeType . ChangeDocumentMetadata , versionId : this . versionId , metadata : this . metadata , synchronous : true } }
433
+ contentChange : { value : { kind : NotebookCellsChangeType . ChangeDocumentMetadata , versionId : this . versionId , metadata : this . metadata , synchronous : true } }
435
434
} ) ;
436
435
}
437
436
438
- insertTemplateCell ( cell : NotebookCellTextModel ) {
439
- if ( this . _cells . length > 0 || this . _isUntitled !== undefined ) {
440
- return ;
441
- }
442
-
443
- this . _isUntitled = true ;
444
- this . _cells = [ cell ] ;
445
- this . _mapping . set ( cell . handle , cell ) ;
446
-
447
- const dirtyStateListener = cell . onDidChangeContent ( ( ) => {
448
- this . _isUntitled = false ;
449
- this . _eventEmitter . emit ( {
450
- triggerDirty : { value : true } ,
451
- modelContentChange : { value : { kind : NotebookCellsChangeType . ChangeCellContent , versionId : this . versionId , synchronous : true } }
452
- } ) ;
453
- } ) ;
454
-
455
- this . _cellListeners . set ( cell . handle , dirtyStateListener ) ;
456
- this . setDirty ( false ) ;
457
-
458
- // this._eventEmitter.emit({
459
- // triggerDirty: undefined,
460
- // modelContentChange: { value: {
461
- // kind: NotebookCellsChangeType.ModelChange,
462
- // versionId: this._versionId, changes:
463
- // [[
464
- // 0,
465
- // 0,
466
- // [cell]
467
- // ]],
468
- // synchronous: true
469
- // } }
470
- // });
471
-
472
- this . setDirty ( false ) ;
473
- // this._onDidChangeContent.fire(NotebookCellsChangeType.ModelChange);
474
-
475
- this . _onDidChangeContent . fire ( {
476
- kind : NotebookCellsChangeType . ModelChange ,
477
- versionId : this . _versionId , changes :
478
- [ [
479
- 0 ,
480
- 0 ,
481
- [ cell ]
482
- ] ] ,
483
- synchronous : true
484
- } ) ;
485
-
486
- return ;
487
- }
488
-
489
437
private _insertNewCell ( index : number , cells : NotebookCellTextModel [ ] , synchronous : boolean , endSelections ?: number [ ] ) : void {
490
- this . _isUntitled = false ;
491
-
492
438
for ( let i = 0 ; i < cells . length ; i ++ ) {
493
439
this . _mapping . set ( cells [ i ] . handle , cells [ i ] ) ;
494
440
const dirtyStateListener = cells [ i ] . onDidChangeContent ( ( ) => {
495
441
this . _eventEmitter . emit ( {
496
442
triggerDirty : { value : true } ,
497
- modelContentChange : { value : { kind : NotebookCellsChangeType . ChangeCellContent , versionId : this . versionId , synchronous : true } }
443
+ contentChange : { value : { kind : NotebookCellsChangeType . ChangeCellContent , versionId : this . versionId , synchronous : true } }
498
444
} ) ;
499
445
} ) ;
500
446
@@ -504,7 +450,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
504
450
this . _cells . splice ( index , 0 , ...cells ) ;
505
451
this . _eventEmitter . emit ( {
506
452
triggerDirty : { value : true } ,
507
- modelContentChange : {
453
+ contentChange : {
508
454
value : {
509
455
kind : NotebookCellsChangeType . ModelChange ,
510
456
versionId : this . _versionId , changes :
@@ -523,8 +469,6 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
523
469
}
524
470
525
471
private _removeCell ( index : number , count : number , synchronous : boolean , endSelections ?: number [ ] ) {
526
- this . _isUntitled = false ;
527
-
528
472
for ( let i = index ; i < index + count ; i ++ ) {
529
473
const cell = this . _cells [ i ] ;
530
474
this . _cellListeners . get ( cell . handle ) ?. dispose ( ) ;
@@ -533,7 +477,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
533
477
this . _cells . splice ( index , count ) ;
534
478
this . _eventEmitter . emit ( {
535
479
triggerDirty : { value : true } ,
536
- modelContentChange : { value : { kind : NotebookCellsChangeType . ModelChange , versionId : this . _versionId , changes : [ [ index , count , [ ] ] ] , synchronous, endSelections } }
480
+ contentChange : { value : { kind : NotebookCellsChangeType . ModelChange , versionId : this . _versionId , changes : [ [ index , count , [ ] ] ] , synchronous, endSelections } }
537
481
} ) ;
538
482
}
539
483
@@ -582,7 +526,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
582
526
583
527
this . _eventEmitter . emit ( {
584
528
triggerDirty : { value : triggerDirtyChange } ,
585
- modelContentChange : {
529
+ contentChange : {
586
530
value : { kind : NotebookCellsChangeType . ChangeCellMetadata , versionId : this . _versionId , index : this . _cells . indexOf ( cell ) , metadata : cell . metadata , synchronous : true }
587
531
}
588
532
} ) ;
@@ -596,7 +540,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
596
540
597
541
this . _eventEmitter . emit ( {
598
542
triggerDirty : { value : ! this . transientOptions . transientOutputs } ,
599
- modelContentChange : {
543
+ contentChange : {
600
544
value : {
601
545
kind : NotebookCellsChangeType . Output ,
602
546
versionId : this . versionId ,
@@ -626,7 +570,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
626
570
627
571
this . _eventEmitter . emit ( {
628
572
triggerDirty : undefined ,
629
- modelContentChange : { value : { kind : NotebookCellsChangeType . ChangeLanguage , versionId : this . _versionId , index : this . _cells . indexOf ( cell ) , language : languageId , synchronous : true } }
573
+ contentChange : { value : { kind : NotebookCellsChangeType . ChangeLanguage , versionId : this . _versionId , index : this . _cells . indexOf ( cell ) , language : languageId , synchronous : true } }
630
574
} ) ;
631
575
}
632
576
}
@@ -671,7 +615,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
671
615
this . _cells . splice ( newIdx , 0 , ...cells ) ;
672
616
this . _eventEmitter . emit ( {
673
617
triggerDirty : { value : true } ,
674
- modelContentChange : { value : { kind : NotebookCellsChangeType . Move , versionId : this . _versionId , index, length, newIdx, cells, synchronous, endSelections } }
618
+ contentChange : { value : { kind : NotebookCellsChangeType . Move , versionId : this . _versionId , index, length, newIdx, cells, synchronous, endSelections } }
675
619
} ) ;
676
620
}
677
621
0 commit comments