Builds on @codemirror/lang-json's and codemirror-json5's grammars with JSONSchema support!
It's at a very early stage, but usable.
-
lints: validates json against schema -
hints: provides code completion (no complex types yet) -
infos: provides hover tooltip
-
lints: validates json against schema -
infos: provides hover tooltip -
hints: provides code completion
You will need to install the relevant language mode for our library to use.
npm install --save @codemirror/lang-json codemirror-json-schema import { json } from "@codemirror/lang-json"; import { jsonSchemaLinting, jsonSchemaHover } from "codemirror-json-schema"; const state = EditorState.create({ doc: jsonText, extensions: [ json(), linter(jsonParseLinter()), linter(jsonSchemaLinter(schema)), jsonLanguage.data.of({ autocomplete: jsonCompletion(schema), }), hoverTooltip(jsonSchemaHover(schema)), ]; })npm install --save codemirror-json codemirror-json-schema json5 import { json5 } from "codemirror-json5"; import { jsonSchemaLinting, jsonSchemaHover, } from "codemirror-json-schema/json5"; const json5State = EditorState.create({ doc: json5Text, extensions: [ ...commonExtensions, json5(), linter(json5ParseLinter()), linter(json5SchemaLinter(schema)), hoverTooltip(json5SchemaHover(schema)), ], });You can start with the deployed example to learn advanced usage.
Many more docs to come, including API docs!
- only linting & hover is available for
oneOf,anyOf,allOfand other schema combination methods - it only works with one json schema instance at a time, and doesn't yet fetch remote schemas. schema service coming soon!
- currently only tested with standard schemas using json4 spec. results may vary
- doesn't provide insert text on completion yet
- currently you can override the rendering of a hover. we plan to add the same for validation errors and autocomplete
monaco-json and monaco-yaml both provide these features, and I want the nascent codemirror 6 to have them as well!
also, json5 is slowly growing in usage, and it needs full language support!
- working GeoJSON spec linter & completion
- working variables json mode for
cm6-graphql, alamonaco-graphql - json5 + json4 json schema features for all!
