--- name: HTML (Active4D) fileTypes: - a4d - a4p scopeName: text.html.strict.active4d repository: tag-stuff: patterns: - include: "#tag-id-attribute" - include: "#tag-generic-attribute" - include: "#string-double-quoted" - include: "#string-single-quoted" - include: "#embedded-code" string-double-quoted: name: string.quoted.double.html endCaptures: "0": name: punctuation.definition.string.end.html begin: "\"" beginCaptures: "0": name: punctuation.definition.string.begin.html end: "\"" patterns: - include: "#embedded-code" - include: "#entities" entities: patterns: - name: constant.character.entity.html captures: "1": name: punctuation.definition.entity.html "3": name: punctuation.terminator.entity.html match: (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) - name: invalid.illegal.bad-ampersand.html match: "&" embedded-js: patterns: - include: "#string-double-quoted-js" - include: "#string-single-quoted-js" - include: "#embedded-code" string-single-quoted: name: string.quoted.single.html endCaptures: "0": name: punctuation.definition.string.end.html begin: "'" beginCaptures: "0": name: punctuation.definition.string.begin.html end: "'" patterns: - include: "#embedded-code" - include: "#entities" tag-id-attribute: name: meta.attribute-with-value.id.html captures: "1": name: entity.other.attribute-name.id.html "2": name: punctuation.separator.key-value.html begin: \b(id)\b\s*(=) end: (?<='|") patterns: - name: string.quoted.double.html endCaptures: "0": name: punctuation.definition.string.end.html begin: "\"" contentName: meta.toc-list.id.html beginCaptures: "0": name: punctuation.definition.string.begin.html end: "\"" patterns: - include: "#embedded-code" - include: "#entities" - name: string.quoted.single.html endCaptures: "0": name: punctuation.definition.string.end.html begin: "'" contentName: meta.toc-list.id.html beginCaptures: "0": name: punctuation.definition.string.begin.html end: "'" patterns: - include: "#embedded-code" - include: "#entities" string-double-quoted-js: name: string.quoted.double.js endCaptures: "0": name: punctuation.definition.string.end.js begin: "\"" beginCaptures: "0": name: punctuation.definition.string.begin.js end: "\"" patterns: - include: "#embedded-code" tag-generic-attribute: name: entity.other.attribute-name.html match: \b([a-zA-Z-:]+) string-single-quoted-js: name: string.quoted.single.js endCaptures: "0": name: punctuation.definition.string.end.js begin: "'" beginCaptures: "0": name: punctuation.definition.string.begin.js end: "'" patterns: - include: "#embedded-code" embedded-code: name: source.active4d.embedded.html endCaptures: "0": name: punctuation.section.embedded.active4d begin: <% beginCaptures: "0": name: punctuation.section.embedded.active4d end: "%>" patterns: - include: source.active4d uuid: E666209C-4477-4D83-8B49-9463DFBACD9F foldingStartMarker: |- (?x) (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?> |) |^\s*<%(?!.*%>) |(^\s*|<%\s*)(?i:if|while|for\ each|for|case\ of|repeat|method|save\ output)\b ) patterns: - name: meta.tag.any.html 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 begin: (<)([a-zA-Z0-9:]+)(?=[^>]*>) beginCaptures: "1": name: punctuation.definition.tag.html "2": name: entity.name.tag.html end: (>(<)/)(\2)(>) patterns: - include: "#tag-stuff" - name: meta.tag.preprocessor.xml.html captures: "1": name: punctuation.definition.tag.xml.html "2": name: entity.name.tag.xml.html begin: (<\?)(xml) end: (\?>) patterns: - include: "#tag-generic-attribute" - include: "#string-double-quoted" - include: "#string-single-quoted" - name: comment.block.html captures: "0": name: punctuation.definition.comment.html begin: patterns: - name: invalid.illegal.bad-comments-or-CDATA.html match: -- - name: meta.tag.sgml.html captures: "0": name: punctuation.definition.tag.html begin: " patterns: - name: meta.tag.sgml.doctype.html captures: "1": name: entity.name.tag.doctype.html begin: (DOCTYPE) end: (?=>) patterns: - name: string.quoted.double.doctype.identifiers-and-DTDs.html match: "\"[^\">]*\"" - name: constant.other.inline-data.html begin: \[CDATA\[ end: "]](?=>)" - name: invalid.illegal.bad-comments-or-CDATA.html match: (\s*)(?!--|>)\S(\s*) - name: meta.tag.processor.html endCaptures: "0": name: punctuation.section.embedded.active4d "1": name: meta.scope.between-tag-pair.html begin: <%(?=%>) beginCaptures: "0": name: punctuation.section.embedded.active4d end: (%)> patterns: - include: "#embedded-code" - include: "#embedded-code" - name: source.css.embedded.html captures: "1": name: punctuation.definition.tag.html "2": name: entity.name.tag.style.html "3": name: punctuation.definition.tag.html begin: (?:^\s+)?(<)((?i:style))\b(?![^>]*/>) end: ()(?:\s*\n)? patterns: - include: "#tag-stuff" - begin: (>) beginCaptures: "1": name: punctuation.definition.tag.html end: (?=]*/>) beginCaptures: "1": name: punctuation.definition.tag.html "2": name: entity.name.tag.script.html end: (?<=)(?:\s*\n)? patterns: - include: "#tag-stuff" - captures: "1": name: punctuation.definition.tag.html begin: (?) end: () patterns: - include: "#tag-stuff" - name: meta.tag.block.any.html captures: "1": name: punctuation.definition.tag.html "2": name: entity.name.tag.block.any.html begin: () patterns: - include: "#tag-stuff" - name: meta.tag.inline.any.html captures: "1": name: punctuation.definition.tag.html "2": name: entity.name.tag.inline.any.html begin: () patterns: - include: "#tag-stuff" - name: meta.tag.other.html captures: "1": name: punctuation.definition.tag.html "2": name: entity.name.tag.other.html begin: () patterns: - include: "#tag-stuff" - include: "#entities" - name: invalid.illegal.incomplete.html match: <> - name: invalid.illegal.bad-angle-bracket.html match: <(?=\W)|> foldingStopMarker: |- (?x) ( |^(?!.*? |^\s*%> |(^\s*|<%\s*)(?i:end\ (if|while|for\ each|for|case|method|save\ output)|until)\b ) keyEquivalent: ^~A