{ "scopeName": "text.esml", "fileTypes": [ "esml" ], "name": "Jibo Embodied Speech Markup Language", "patterns": [ { "begin": "()", "endCaptures": { "1": { "name": "keyword.control.tts.end.esml" } }, "name": "meta.tag.tts.esml", "patterns": [ { "include": "#tts-tag-stuff" } ] }, { "begin": "()", "endCaptures": { "1": { "name": "keyword.control.anim.end.esml" } }, "name": "meta.tag.anim.esml", "patterns": [ { "include": "#es-ssa-sfx-anim-tag-stuff" } ] }, { "begin": "()", "endCaptures": { "1": { "name": "keyword.control.sound.end.esml" } }, "name": "meta.tag.sound.esml", "patterns": [ { "include": "#sound-tag-stuff" } ] }, { "begin": "()", "endCaptures": { "1": { "name": "keyword.control.break.end.esml" } }, "name": "meta.tag.break.esml", "patterns": [ { "include": "#break-tag-stuff" } ] }, { "begin": "()", "endCaptures": { "1": { "name": "keyword.control.tag.end.esml" } }, "name": "meta.tag.other.esml" }, { "match": "<>", "name": "invalid.illegal.incomplete.emsl" } ], "repository": { "string-double-quoted": { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.esml" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.esml" } }, "name": "string.quoted.double.esml" }, "string-single-quoted": { "begin": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.esml" } }, "end": "'", "endCaptures": { "0": { "name": "punctuation.definition.string.end.esml" } }, "name": "string.quoted.single.esml" }, "tts-attribute": { "match": "(?<=[^=])\\b(params|config)", "name": "entity.other.tts.attribute-name.esml" }, "es-ssa-sfx-anim-attribute": { "match": "(?<=[^=])\\b(path|name|cat|nonBlocking|endNeutral|filter|layers)", "name": "entity.other.es-ssa-sfx-anim.attribute-name.esml" }, "sound-attribute": { "match": "(?<=[^=])\\b(path|nonBlocking)", "name": "entity.other.sound.attribute-name.esml" }, "break-attribute": { "match": "(?<=[^=])\\b(size)", "name": "entity.other.break.attribute-name.esml" }, "tts-tag-stuff": { "patterns": [ { "include": "#tts-attribute" }, { "include": "#string-double-quoted" }, { "include": "#string-single-quoted" }, { "include": "#unquoted-attribute" } ] }, "es-ssa-sfx-anim-tag-stuff": { "patterns": [ { "include": "#es-ssa-sfx-anim-attribute" }, { "include": "#string-double-quoted" }, { "include": "#string-single-quoted" }, { "include": "#unquoted-attribute" } ] }, "sound-tag-stuff": { "patterns": [ { "include": "#sound-attribute" }, { "include": "#string-double-quoted" }, { "include": "#string-single-quoted" }, { "include": "#unquoted-attribute" } ] }, "break-tag-stuff": { "patterns": [ { "include": "#break-attribute" }, { "include": "#string-double-quoted" }, { "include": "#string-single-quoted" }, { "include": "#unquoted-attribute" } ] }, "unquoted-attribute": { "match": "(?<==)(?:[^\\s<>/'\"]|/(?!>))+", "name": "invalid.illegal.unquoted.esml" } } }