Skip to content

Commit 9df3fcd

Browse files
committed
use ref when dealing with cell text model.
1 parent 7223877 commit 9df3fcd

3 files changed

Lines changed: 7 additions & 19 deletions

File tree

src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export abstract class BaseCellViewModel extends Disposable {
104104
}
105105

106106
hasModel(): this is IEditableCellViewModel {
107-
return !!this.model.textModel;
107+
return !!this._textModel;
108108
}
109109

110110
private _dragging: boolean = false;

src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,6 @@ export class NotebookCellTextModel extends Disposable implements ICell {
7070
return this._textBuffer;
7171
}
7272

73-
private _textModel?: model.ITextModel;
74-
75-
get textModel(): model.ITextModel | undefined {
76-
return this._textModel;
77-
}
78-
79-
set textModel(m: model.ITextModel | undefined) {
80-
this._textModel = m;
81-
}
8273

8374
constructor(
8475
readonly uri: URI,
@@ -144,10 +135,6 @@ export class NotebookCellTextModel extends Disposable implements ICell {
144135

145136
async resolveTextModelRef() {
146137
const ref = await this._modelService.createModelReference(this.uri);
147-
148-
ref.object.textEditorModel.onWillDispose(() => {
149-
this.textModel = undefined;
150-
});
151138
return ref;
152139
}
153140

src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -559,14 +559,15 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel
559559
async splitNotebookCell(index: number, newLinesContents: string[], endSelections: number[]) {
560560
const cell = this.cells[index];
561561

562-
if (!cell.textModel) {
563-
return;
564-
}
562+
const ref = await cell.resolveTextModelRef();
563+
const textModel = ref.object.textEditorModel;
565564

566-
cell.textModel.applyEdits([
567-
{ range: cell.textModel.getFullModelRange(), text: newLinesContents[0] }
565+
textModel.applyEdits([
566+
{ range: textModel.getFullModelRange(), text: newLinesContents[0] }
568567
], false);
569568

569+
ref.dispose();
570+
570571
// create new cells based on the new text models
571572
const language = cell.language;
572573
const kind = cell.cellKind;

0 commit comments

Comments
 (0)