monaco-editor/website/playground/new-samples/extending-language-services/configure-json-defaults/sample.js
2021-11-16 22:32:27 +01:00

42 lines
1 KiB
JavaScript

// Configures two JSON schemas, with references.
var jsonCode = ['{', ' "p1": "v3",', ' "p2": false', '}'].join('\n');
var modelUri = monaco.Uri.parse('a://b/foo.json'); // a made up unique URI for our model
var model = monaco.editor.createModel(jsonCode, 'json', modelUri);
// configure the JSON language support with schemas and schema associations
monaco.languages.json.jsonDefaults.setDiagnosticsOptions({
validate: true,
schemas: [
{
uri: 'http://myserver/foo-schema.json', // id of the first schema
fileMatch: [modelUri.toString()], // associate with our model
schema: {
type: 'object',
properties: {
p1: {
enum: ['v1', 'v2']
},
p2: {
$ref: 'http://myserver/bar-schema.json' // reference the second schema
}
}
}
},
{
uri: 'http://myserver/bar-schema.json', // id of the second schema
schema: {
type: 'object',
properties: {
q1: {
enum: ['x1', 'x2']
}
}
}
}
]
});
monaco.editor.create(document.getElementById('container'), {
model: model
});