提交 ac75ac53 编写于 作者: R rebornix

🏃 fewer event emitters

上级 29622d37
......@@ -428,6 +428,8 @@ export interface CellViewModelStateChangeEvent {
runStateChanged?: boolean;
editStateChanged?: boolean;
languageChanged?: boolean;
foldingStateChanged?: boolean;
contentChanged?: boolean;
}
/**
......
......@@ -131,7 +131,11 @@ export class StatefullMarkdownCell extends Disposable {
notebookEditor.layoutNotebookCell(viewCell, clientHeight);
}));
this.localDisposables.add(viewCell.onDidChangeContent(() => {
this.localDisposables.add(viewCell.onDidChangeState((e) => {
if (!e.contentChanged) {
return;
}
this.markdownContainer.innerHTML = '';
let renderedHTML = viewCell.getHTML();
if (renderedHTML) {
......@@ -162,7 +166,11 @@ export class StatefullMarkdownCell extends Disposable {
this.foldingState = viewCell.foldingState;
this.setFoldingIndicator();
this._register(viewCell.onDidChangeFoldingState(() => {
this._register(viewCell.onDidChangeState((e) => {
if (!e.foldingStateChanged) {
return;
}
const foldingState = viewCell.foldingState;
if (foldingState !== this.foldingState) {
......
......@@ -35,9 +35,6 @@ export class CodeCellViewModel extends BaseCellViewModel implements ICellViewMod
return this.model.outputs;
}
private readonly _onDidChangeContent: Emitter<void> = this._register(new Emitter<void>());
public readonly onDidChangeContent: Event<void> = this._onDidChangeContent.event;
protected readonly _onDidChangeLayout = new Emitter<CodeCellLayoutChangeEvent>();
readonly onDidChangeLayout = this._onDidChangeLayout.event;
......@@ -191,7 +188,7 @@ export class CodeCellViewModel extends BaseCellViewModel implements ICellViewMod
this._register(ref);
this._register(this._textModel.onDidChangeContent(() => {
this.model.contentChange();
this._onDidChangeContent.fire();
this._onDidChangeState.fire({ contentChanged: true });
}));
}
......
......@@ -22,9 +22,6 @@ export class MarkdownCellViewModel extends BaseCellViewModel implements ICellVie
cellKind: CellKind.Markdown = CellKind.Markdown;
private _mdRenderer: MarkdownRenderer | null = null;
private _html: HTMLElement | null = null;
private readonly _onDidChangeContent: Emitter<void> = this._register(new Emitter<void>());
public readonly onDidChangeContent: Event<void> = this._onDidChangeContent.event;
private _layoutInfo: MarkdownCellLayoutInfo;
get layoutInfo() {
......@@ -42,9 +39,6 @@ export class MarkdownCellViewModel extends BaseCellViewModel implements ICellVie
protected readonly _onDidChangeLayout = new Emitter<MarkdownCellLayoutChangeEvent>();
readonly onDidChangeLayout = this._onDidChangeLayout.event;
protected readonly _onDidChangeFoldingState = new Emitter<void>();
readonly onDidChangeFoldingState = this._onDidChangeFoldingState.event;
get foldingState() {
return this.foldingDelegate.getFoldingState(this);
}
......@@ -74,7 +68,7 @@ export class MarkdownCellViewModel extends BaseCellViewModel implements ICellVie
}));
this._register(foldingDelegate.onDidFoldingRegionChanged(() => {
this._onDidChangeFoldingState.fire();
this._onDidChangeState.fire({ foldingStateChanged: true });
}));
}
......@@ -149,7 +143,7 @@ export class MarkdownCellViewModel extends BaseCellViewModel implements ICellVie
this._register(this._textModel.onDidChangeContent(() => {
this.model.contentChange();
this._html = null;
this._onDidChangeContent.fire();
this._onDidChangeState.fire({ contentChanged: true });
}));
}
return this._textModel;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册