name: HTML (Active4D) fileTypes:

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: