--- name: MultiMarkdown firstLineMatch: ^Format:\s*(?i:complete)\s*$ scopeName: text.html.markdown.multimarkdown uuid: F5E04BF4-69A9-45AE-9205-B3F3C2B00130 foldingStartMarker: |- (?x) (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?> |) |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/))) ) patterns: - name: meta.header.multimarkdown begin: ^([A-Za-z0-9]+)(:)\s* beginCaptures: "1": name: keyword.other.multimarkdown "2": name: punctuation.separator.key-value.multimarkdown end: ^$|^(?=[A-Za-z0-9]+:) patterns: - name: string.unquoted.multimarkdown match: .+ comment: |- The reason for not setting scopeName = "string.unquoted" (for the parent rule) is that we do not want newlines to be marked as string.unquoted - name: meta.content.multimarkdown begin: ^(?!=[A-Za-z0-9]+:) end: ^(?=not)possible$ patterns: - include: text.html.markdown foldingStopMarker: |- (?x) ( |^\s*--> |(^|\s)\} ) keyEquivalent: ^~M