/ duper-vs-code / syntaxes / duper-markdown.tmLanguage.json
duper-markdown.tmLanguage.json
 1  {
 2    "fileTypes": [],
 3    "injectionSelector": "L:text.html.markdown",
 4    "patterns": [
 5      {
 6        "include": "#duper-code-block"
 7      }
 8    ],
 9    "repository": {
10      "duper-code-block": {
11        "begin": "(^|\\G)(\\s*)(\\`{3,}|~{3,})\\s*(?i:(duper)(\\s+[^`~]*)?$)",
12        "name": "markup.fenced_code.block.markdown",
13        "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
14        "beginCaptures": {
15          "3": {
16            "name": "punctuation.definition.markdown"
17          },
18          "4": {
19            "name": "fenced_code.block.language.markdown"
20          },
21          "5": {
22            "name": "fenced_code.block.language.attributes.markdown"
23          }
24        },
25        "endCaptures": {
26          "3": {
27            "name": "punctuation.definition.markdown"
28          }
29        },
30        "patterns": [
31          {
32            "begin": "(^|\\G)(\\s*)(.*)",
33            "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
34            "contentName": "meta.embedded.block.duper",
35            "patterns": [
36              {
37                "include": "source.duper"
38              }
39            ]
40          }
41        ]
42      }
43    },
44    "scopeName": "markdown.duper.codeblock"
45  }