         match: "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"
         name: "constant.character.escape.js"
       }
-      {
-        include: "#placeholder-patterns"
-      }
     ]
   "expression-string-escapes":
     patterns: [

        include: "#expression-no-gt"
      }
    ]
  "attr-js-block":
    applyEndPatternLast: 1
    begin: "\\s\\{"
    beginCaptures:
      "0":
        name: "punctuation.section.scope.begin.js"
    end: "\\}"
    endCaptures:
      "0":
        name: "punctuation.section.scope.end.js"
    patterns: [
      {
        include: "#js"
      }
    ]
  "attr-no-value":
    captures:
      "1":
        name: "entity.other.attribute-name.html"
      "2":
        name: "entity.other.attribute-name.html"
      "3":
        name: "entity.other.attribute-name.html"
    match: "\\s+(?:([a-zA-Z][a-zA-Z]*)|(data-[a-zA-Z0-9-]*)|([a-zA-Z0-9][a-zA-Z0-9:_.-]+))(?=\\s|/>|>|$)"
  "attr-semicolon":
    applyEndPatternLast: 1
    begin: "([;])"
    beginCaptures:
      "1":
        name: "punctuation.terminator.statement.js"
    end: "(?=\\n)"
    patterns: [
      {
        include: "#comment-line"
      }
      {
        include: "#comment-block"
      }
    ]
  "attr-special":
    captures:
      "1":
        name: "support.function.marko-attribute"
    match: "\\s+(else)\\b"
  "attr-stuff-concise":
    patterns: [
      {

repository:
  "attr-assignment-concise":
    applyEndPatternLast: 1
    begin: "(?:\\s+|[,])(?:(key)|([a-zA-Z][a-zA-Z]*)|([_a-zA-Z0-9][a-zA-Z0-9:_.-]*))\\s*([=])\\s*"
    beginCaptures:
      "1":
        name: "support.function.marko-attribute"
