Feature request: support JSONSchema with YAML
monaco-editor version: 0.17.0 Browser: Chrome OS: macOS
Steps or JS usage snippet reproducing the issue:
- Visit the schema validation demo. Observe red squiggles.
- Change it to use YAML instead of JSON (see code below)
- Observe that there are no red squiggles.
There was some discussion of this over at https://github.com/microsoft/monaco-editor/issues/131#issuecomment-491175238 and there is an (unmaintained) monaco-yaml project here: https://github.com/pengx17/monaco-yaml. vscode has this feature via a RedHat YAML plugin.
Code for playground:
// Configures two JSON schemas, with references.
var jsonCode = [
'p1: "v3"',
'p2: false',
].join('\n');
var modelUri = monaco.Uri.parse("a://b/foo.yaml"); // a made up unique URI for our model
var model = monaco.editor.createModel(jsonCode, "yaml", 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 first schema
schema: {
type: "object",
properties: {
q1: {
enum: ["x1", "x2"]
}
}
}
}]
});
monaco.editor.create(document.getElementById("container"), {
model: model
});
Just FYI the most current, maintained version of monaco-yaml is at https://github.com/remcohaszing/monaco-yaml
Would also like to see this feature added
I imagine there hasn't been any work done on this but just checking in. Seems like low hanging fruit since there is a working POC.