mirror of
https://github.com/kotaindah55/extended-markdown-syntax.git
synced 2026-07-22 12:00:23 +00:00
fix: highlight color no longer disappears in canvas
This commit is contained in:
parent
451374a33b
commit
de5de8f8de
1 changed files with 20 additions and 0 deletions
|
|
@ -1,15 +1,35 @@
|
|||
import { EditorView, PluginValue, ViewUpdate } from "@codemirror/view";
|
||||
import { DecorationBuilder } from "src/editor-mode/decorator/builder";
|
||||
import { builderField } from "src/editor-mode/state-fields";
|
||||
import { pluginFacet } from "src/editor-mode/facets";
|
||||
import ExtendedMarkdownSyntax from "main";
|
||||
|
||||
export class BuilderPlugin implements PluginValue {
|
||||
builder: DecorationBuilder;
|
||||
mainPlugin: ExtendedMarkdownSyntax;
|
||||
root: DocumentOrShadowRoot;
|
||||
constructor(view: EditorView) {
|
||||
let state = view.state;
|
||||
this.mainPlugin = state.facet(pluginFacet);
|
||||
this.root = view.root;
|
||||
this.builder = state.field(builderField);
|
||||
this.builder.onViewInit(view);
|
||||
}
|
||||
update(update: ViewUpdate) {
|
||||
if (this.root !== update.view.root) {
|
||||
this.onRootChanged(update.view.root);
|
||||
}
|
||||
this.builder.onViewUpdate(update);
|
||||
}
|
||||
destroy(): void {
|
||||
this.mainPlugin.colorsHandler.abandon(this.root);
|
||||
this.mainPlugin.opacityHandler.abandon(this.root);
|
||||
}
|
||||
onRootChanged(newRoot: DocumentOrShadowRoot) {
|
||||
this.mainPlugin.colorsHandler.abandon(this.root);
|
||||
this.mainPlugin.opacityHandler.abandon(this.root);
|
||||
this.mainPlugin.colorsHandler.adopt(newRoot);
|
||||
this.mainPlugin.opacityHandler.adopt(newRoot);
|
||||
this.root = newRoot;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue