{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "vscode-html-customdata", "version": 1.1, "title": "VS Code HTML Custom Data format", "description": "Format for loading Custom Data in VS Code's HTML support", "type": "object", "required": [ "version" ], "definitions": { "references": { "type": "object", "required": [ "name", "url" ], "properties": { "name": { "type": "string", "description": "The name of the reference." }, "url": { "type": "string", "description": "The URL of the reference.", "pattern": "https?:\/\/", "patternErrorMessage": "URL should start with http:// or https://" } } }, "markupDescription": { "type": "object", "required": [ "kind", "value" ], "properties": { "kind": { "type": "string", "description": "Whether `description.value` should be rendered as plaintext or markdown", "enum": [ "plaintext", "markdown" ] }, "value": { "type": "string", "description": "Description shown in completion and hover" } } } }, "properties": { "version": { "const": 1.1, "description": "The custom data version", "type": "number" }, "tags": { "description": "Custom HTML tags", "type": "array", "items": { "type": "object", "required": [ "name" ], "defaultSnippets": [ { "body": { "name": "$1", "description": "", "attributes": [] } } ], "properties": { "name": { "type": "string", "description": "Name of tag" }, "description": { "description": "Description of tag shown in completion and hover", "anyOf": [ { "type": "string" }, { "$ref": "#/definitions/markupDescription" } ] }, "attributes": { "type": "array", "description": "A list of possible attributes for the tag", "items": { "type": "object", "required": [ "name" ], "defaultSnippets": [ { "body": { "name": "$1", "description": "", "values": [] } } ], "properties": { "name": { "type": "string", "description": "Name of attribute" }, "description": { "description": "Description of attribute shown in completion and hover", "anyOf": [ { "type": "string" }, { "$ref": "#/definitions/markupDescription" } ] }, "valueSet": { "type": "string", "description": "Name of the matching attribute value set" }, "values": { "type": "array", "description": "A list of possible values for the attribute", "items": { "type": "object", "required": [ "name" ], "defaultSnippets": [ { "body": { "name": "$1", "description": "" } } ], "properties": { "name": { "type": "string", "description": "Name of attribute value" }, "description": { "description": "Description of attribute value shown in completion and hover", "anyOf": [ { "type": "string" }, { "$ref": "#/definitions/markupDescription" } ] }, "references": { "type": "array", "description": "A list of references for the attribute value shown in completion and hover", "items": { "$ref": "#/definitions/references" } } } } }, "references": { "type": "array", "description": "A list of references for the attribute shown in completion and hover", "items": { "$ref": "#/definitions/references" } } } } }, "references": { "type": "array", "description": "A list of references for the tag shown in completion and hover", "items": { "$ref": "#/definitions/references" } }, "browsers": { "type": "array", "description": "Supported browsers", "items": { "type": "string", "pattern": "(E|FFA|FF|SM|S|CA|C|IE|O)([\\d|\\.]+)?", "patternErrorMessage": "Browser item must follow the format of `${browser}${version}`. `browser` is one of:\n- E: Edge\n- FF: Firefox\n- FM: Firefox Android\n- S: Safari\n- SM: Safari on iOS\n- C: Chrome\n- CM: Chrome on Android\n- IE: Internet Explorer\n- O: Opera" } }, "baseline": { "type": "object", "description": "Baseline information for the feature", "properties": { "status": { "type": "string", "description": "Baseline status", "enum": [ "high", "low", "false" ] }, "baseline_low_date": { "type": "string", "description": "Date when the feature became newly supported in all major browsers", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "patternErrorMessage": "Date must be in the format of `YYYY-MM-DD`" }, "baseline_high_date": { "type": "string", "description": "Date when the feature became widely supported in all major browsers", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "patternErrorMessage": "Date must be in the format of `YYYY-MM-DD`" } } } } }, "globalAttributes": { "description": "Custom HTML global attributes", "type": "array", "items": { "$ref": "#/properties/tags/items/properties/attributes/items" } }, "valueSets": { "description": "A set of attribute value. When an attribute refers to an attribute set, its value completion will use value from that set", "type": "array", "items": { "type": "object", "required": [ "name" ], "defaultSnippets": [ { "body": { "name": "$1", "description": "", "values": [] } } ], "properties": { "name": { "type": "string", "description": "Name of attribute value in value set" }, "values": { "$ref": "#/properties/tags/items/properties/attributes/items/properties/values" } } } } } } }