{ "fileTypes": [ "html", "htm", "shtml", "xhtml", "inc", "tmpl", "tpl" ], "firstLineMatch": "<(?i:(!DOCTYPE\\s*)?html)", "injections": { "R:text.html - comment.block": { "comment": "Use R: to ensure this matches after any other injections.", "patterns": [ { "match": "<", "name": "invalid.illegal.bad-angle-bracket.html" } ] } }, "keyEquivalent": "^~H", "name": "HTML", "patterns": [ { "begin": "(<)([a-zA-Z0-9:]++)(?=[^>]*>)", "beginCaptures": { "1": { "name": "punctuation.definition.tag.html" }, "2": { "name": "entity.name.tag.html" } }, "end": "(>(<)/)(\\2)(>)", "endCaptures": { "1": { "name": "punctuation.definition.tag.html" }, "2": { "name": "meta.scope.between-tag-pair.html" }, "3": { "name": "entity.name.tag.html" }, "4": { "name": "punctuation.definition.tag.html" } }, "name": "meta.tag.any.html", "patterns": [ { "include": "#tag-stuff" } ] }, { "begin": "(<\\?)(xml)", "captures": { "1": { "name": "punctuation.definition.tag.html" }, "2": { "name": "entity.name.tag.xml.html" } }, "end": "(\\?>)", "name": "meta.tag.preprocessor.xml.html", "patterns": [ { "include": "#tag-generic-attribute" }, { "include": "#string-double-quoted" }, { "include": "#string-single-quoted" } ] }, { "begin": "