fileTypes mjml firstLineMatch <!(?i:DOCTYPE)|<(?i:mjml)|<\?(?i:php) foldingStartMarker (?x) (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)\b.*?> |<!--(?!.*--\s*>) |^<!--\ \#tminclude\ (?>.*?-->)$ |<\?(?:php)?.*\b(if|for(each)?|while)\b.+: |\{\{?(if|foreach|capture|literal|foreach|php|section|strip) |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/))) ) foldingStopMarker (?x) (</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)> |^(?!.*?<!--).*?--\s*> |^<!--\ end\ tminclude\ -->$ |<\?(?:php)?.*\bend(if|for(each)?|while)\b |\{\{?/(if|foreach|capture|literal|foreach|php|section|strip) |^[^{]*\} ) keyEquivalent ^~H name MJML patterns begin (<)([a-zA-Z0-9\-:]++)(?=[^>]*></\2>) beginCaptures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.mjml end (>)(<)(/)(\2)(>) endCaptures 1 name punctuation.definition.tag.end.mjml 2 name punctuation.definition.tag.begin.mjml meta.scope.between-tag-pair.mjml 3 name punctuation.definition.tag.begin.mjml 4 name entity.name.tag.mjml 5 name punctuation.definition.tag.end.mjml name meta.tag.any.mjml patterns include #tag-stuff begin (<\?)(xml) captures 1 name punctuation.definition.tag.mjml 2 name entity.name.tag.xml.mjml end (\?>) name meta.tag.preprocessor.xml.mjml patterns include #tag-generic-attribute include #string-double-quoted include #string-single-quoted begin <!-- captures 0 name punctuation.definition.comment.mjml end --\s*> name comment.block.mjml patterns match -- name invalid.illegal.bad-comments-or-CDATA.mjml include #embedded-code begin <! captures 0 name punctuation.definition.tag.mjml end > name meta.tag.sgml.mjml patterns begin (?i:DOCTYPE) captures 1 name entity.name.tag.doctype.mjml end (?=>) name meta.tag.sgml.doctype.mjml patterns match "[^">]*" name string.quoted.double.doctype.identifiers-and-DTDs.mjml begin \[CDATA\[ end ]](?=>) name constant.other.inline-data.mjml match (\s*)(?!--|>)\S(\s*) name invalid.illegal.bad-comments-or-CDATA.mjml include #embedded-code begin (?:^\s+)?(<)((?i:mj-style))\b(?![^>]*/>) captures 1 name punctuation.definition.tag.html 2 name entity.name.tag.style.html 3 name punctuation.definition.tag.html end (</)((?i:mj-style))(>)(?:\s*\n)? name source.css.embedded.html patterns include #tag-stuff begin (>) beginCaptures 1 name punctuation.definition.tag.html end (?=</(?i:mj-style)) patterns include #embedded-code include source.css begin (?:^\s+)?(<)((?i:style))\b(?![^>]*/>) beginCaptures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.style.mjml end (?<=</(?:[sS][tT][yY][lL][eE]))(>)(?:\s*\n)? endCaptures 2 name punctuation.definition.tag.mjml name meta.tag.style.mjml patterns include #tag-stuff begin (?<!</(?:[sS][tT][yY][lL][eE]))(>) captures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.style.mjml end (</)((?i:style)) contentName source.css.embedded.mjml patterns begin /\* captures 0 name punctuation.definition.comment.css end \*/|(?=</[sS][tT][yY][lL][eE]) name comment.block.css include source.css begin (?:^\s+)?(<)((?i:script))\b(?![^>]*/>)(?!.*type=["']text/(?:temp‌​late|mjml)['"]) beginCaptures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.script.mjml end (?<=</([sS][cC][rR][iI][pP][tT]))(>)(?:\s*\n)? endCaptures 2 name punctuation.definition.tag.mjml name meta.tag.script.mjml patterns include #tag-stuff begin (?<!</(?:[sS][cC][rR][iI][pP][tT]))(>) captures 1 name punctuation.definition.tag.end.mjml 2 name entity.name.tag.script.mjml end (</)((?i:script)) contentName source.js.embedded.mjml patterns captures 1 name punctuation.definition.comment.js match (//).*?((?=</[sS][cC][rR][iI][pP][tT])|$\n?) name comment.line.double-slash.js begin /\* captures 0 name punctuation.definition.comment.js end \*/|(?=</[sS][cC][rR][iI][pP][tT]) name comment.block.js include #php include source.js begin (</?)((?i:body|head|mjml)\b) captures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.structure.any.mjml end (>) endCaptures 1 name punctuation.definition.tag.end.mjml name meta.tag.structure.any.mjml patterns include #tag-stuff begin (</?)(((:*[a-z-])+|([a-z_])+)\b) captures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.structure.any.mjml end (>) endCaptures 1 name punctuation.definition.tag.end.mjml name meta.tag.structure.any.mjml patterns include #tag-stuff begin (</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\b) beginCaptures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.block.any.mjml end (>) endCaptures 1 name punctuation.definition.tag.end.mjml name meta.tag.block.any.mjml patterns include #tag-stuff begin (</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|mjml|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\b) beginCaptures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.inline.any.mjml end ((?: ?/)?>) endCaptures 1 name punctuation.definition.tag.end.mjml name meta.tag.inline.any.mjml patterns include #tag-stuff begin (</?)([a-zA-Z0-9:]+) beginCaptures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.other.mjml end (>) endCaptures 1 name punctuation.definition.tag.end.mjml name meta.tag.other.mjml patterns include #tag-stuff include #entities match <> name invalid.illegal.incomplete.mjml match < name invalid.illegal.bad-angle-bracket.mjml begin (</?)((?i:[a-z-]+)\b) beginCaptures 1 name punctuation.definition.tag.begin.mjml 2 name entity.name.tag.block.any.mjml end (>) endCaptures 1 name punctuation.definition.tag.end.mjml name meta.tag.block.any.mjml patterns include #tag-stuff repository embedded-code patterns include #ruby include #php include #python entities patterns captures 1 name punctuation.definition.entity.mjml 3 name punctuation.definition.entity.mjml match (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) name constant.character.entity.mjml match & name invalid.illegal.bad-ampersand.mjml php begin (?=(^\s*)?<\?) end (?!(^\s*)?<\?) patterns include source.php python begin (?:^\s*)<\?python(?!.*\?>) end \?>(?:\s*$\n)? contentName source.python.embedded.mjml patterns include source.python ruby patterns begin <%+# captures 0 name punctuation.definition.comment.erb end %> name comment.block.erb begin <%+(?!>)=? captures 0 name punctuation.section.embedded.ruby end -?%> contentName source.ruby.embedded.mjml patterns captures 1 name punctuation.definition.comment.ruby match (#).*?(?=-?%>) name comment.line.number-sign.ruby include source.ruby begin <\?r(?!>)=? captures 0 name punctuation.section.embedded.ruby.nitro end -?\?> contentName source.ruby.nitro.embedded.mjml patterns captures 1 name punctuation.definition.comment.ruby.nitro match (#).*?(?=-?\?>) name comment.line.number-sign.ruby.nitro include source.ruby string-double-quoted begin " beginCaptures 0 name punctuation.definition.string.begin.mjml end " endCaptures 0 name punctuation.definition.string.end.mjml name string.quoted.double.mjml patterns include #embedded-code include #entities string-single-quoted begin ' beginCaptures 0 name punctuation.definition.string.begin.mjml end ' endCaptures 0 name punctuation.definition.string.end.mjml name string.quoted.single.mjml patterns include #embedded-code include #entities tag-generic-attribute match \b([a-zA-Z\-:]+) name entity.other.attribute-name.mjml tag-id-attribute begin \b(id)\b\s*(=) captures 1 name entity.other.attribute-name.id.mjml 2 name punctuation.separator.key-value.mjml end (?<='|") name meta.attribute-with-value.id.mjml patterns begin " beginCaptures 0 name punctuation.definition.string.begin.mjml contentName meta.toc-list.id.mjml end " endCaptures 0 name punctuation.definition.string.end.mjml name string.quoted.double.mjml patterns include #embedded-code include #entities begin ' beginCaptures 0 name punctuation.definition.string.begin.mjml contentName meta.toc-list.id.mjml end ' endCaptures 0 name punctuation.definition.string.end.mjml name string.quoted.single.mjml patterns include #embedded-code include #entities tag-stuff patterns include #tag-id-attribute include #tag-generic-attribute include #string-double-quoted include #string-single-quoted include #embedded-code scopeName text.mjml.basic uuid 17994EC8-6B1D-11D9-AC3A-000D93589AF6