提交 ac75ac53 编写于 作者: R rebornix

🏃 fewer event emitters

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