Save cell in-mem line number state (#169063)

This commit is contained in:
Peng Lyu
2022-12-13 14:57:53 -08:00
committed by GitHub
parent a44afe09a1
commit eb08f2aa24
5 changed files with 21 additions and 6 deletions

View File

@@ -765,6 +765,7 @@ export class NotebookViewModel extends Disposable implements EditorFoldingStateD
const editingCells: { [key: number]: boolean } = {};
const collapsedInputCells: { [key: number]: boolean } = {};
const collapsedOutputCells: { [key: number]: boolean } = {};
const cellLineNumberStates: { [key: number]: 'on' | 'off' } = {};
this._viewCells.forEach((cell, i) => {
if (cell.getEditState() === CellEditState.Editing) {
@@ -778,6 +779,10 @@ export class NotebookViewModel extends Disposable implements EditorFoldingStateD
if (cell instanceof CodeCellViewModel && cell.isOutputCollapsed) {
collapsedOutputCells[i] = true;
}
if (cell.lineNumbers !== 'inherit') {
cellLineNumberStates[i] = cell.lineNumbers;
}
});
const editorViewStates: { [key: number]: editorCommon.ICodeEditorViewState } = {};
this._viewCells.map(cell => ({ handle: cell.model.handle, state: cell.saveEditorViewState() })).forEach((viewState, i) => {
@@ -789,6 +794,7 @@ export class NotebookViewModel extends Disposable implements EditorFoldingStateD
return {
editingCells,
editorViewStates,
cellLineNumberStates,
collapsedInputCells,
collapsedOutputCells
};
@@ -812,6 +818,9 @@ export class NotebookViewModel extends Disposable implements EditorFoldingStateD
if (viewState.collapsedOutputCells && viewState.collapsedOutputCells[index] && cell instanceof CodeCellViewModel) {
cell.isOutputCollapsed = true;
}
if (viewState.cellLineNumberStates && viewState.cellLineNumberStates[index]) {
cell.lineNumbers = viewState.cellLineNumberStates[index];
}
});
}