UNPKG

codemirror-json-schema

Version:

Codemirror 6 extensions that provide full JSONSchema support for `@codemirror/lang-json` and `codemirror-json5`

25 lines (24 loc) 662 B
import { StateEffect, StateField } from "@codemirror/state"; const schemaEffect = StateEffect.define(); export const schemaStateField = StateField.define({ create() { }, update(schema, tr) { for (const e of tr.effects) { if (e.is(schemaEffect)) { return e.value; } } return schema; }, }); export const updateSchema = (view, schema) => { view.dispatch({ effects: schemaEffect.of(schema), }); }; export const getJSONSchema = (state) => { return state.field(schemaStateField); }; export const stateExtensions = (schema) => [ schemaStateField.init(() => schema), ];