cm-spyglass
Version:
A Codemirror extension that provides syntax highlighting, linting, and autocompletion for Minecraft datapacks using SpyglassMC
42 lines (36 loc) • 910 B
JavaScript
import {Decoration} from "@codemirror/view";
export default class DecorationsCache {
/** @type {import("@codemirror/view").DecorationSet} */ decorations = Decoration.none;
/** @type {?number} */ version = null;
/**
* @param {number} version
* @param {import("@codemirror/view").DecorationSet} decorations
* @return {this}
*/
set(version, decorations) {
this.version = version;
this.decorations = decorations;
return this;
}
/**
* @param {number} version
* @return {boolean}
*/
has(version) {
return this.version === version;
}
/**
* @return {import("@codemirror/view").DecorationSet}
*/
get() {
return this.decorations;
}
/**
* @return {this}
*/
flush() {
this.version = null;
this.decorations = Decoration.none;
return this;
}
}