{"name":"JSON","scopeName":"source.json","patterns":[{"include":"#value"}],"repository":{"array":{"name":"meta.structure.array.json","begin":"\\[","end":"\\]","patterns":[{"include":"#value"},{"name":"punctuation.separator.array.json","match":","},{"name":"invalid.illegal.expected-array-separator.json","match":"[^\\s\\]]"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.json"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.json"}}},"constant":{"name":"constant.language.json","match":"\\b(?:true|false|null)\\b"},"number":{"name":"constant.numeric.json","match":"(?x:         # turn on extended mode\n\t\t\t             -?         # an optional minus\n\t\t\t             (?:\n\t\t\t               0        # a zero\n\t\t\t               |        # ...or...\n\t\t\t               [1-9]    # a 1-9 character\n\t\t\t               \\d*      # followed by zero or more digits\n\t\t\t             )\n\t\t\t             (?:\n\t\t\t               (?:\n\t\t\t                 \\.     # a period\n\t\t\t                 \\d+    # followed by one or more digits\n\t\t\t               )?\n\t\t\t               (?:\n\t\t\t                 [eE]   # an e character\n\t\t\t                 [+-]?  # followed by an option +/-\n\t\t\t                 \\d+    # followed by one or more digits\n\t\t\t               )?       # make exponent optional\n\t\t\t             )?         # make decimal portion optional\n\t\t\t           )"},"object":{"name":"meta.structure.dictionary.json","begin":"\\{","end":"\\}","patterns":[{"include":"#string"},{"name":"meta.structure.dictionary.value.json","begin":":","end":"(,)|(?=\\})","patterns":[{"include":"#value"},{"name":"invalid.illegal.expected-dictionary-separator.json","match":"[^\\s,]"}],"beginCaptures":{"0":{"name":"punctuation.separator.dictionary.key-value.json"}},"endCaptures":{"1":{"name":"punctuation.separator.dictionary.pair.json"}}},{"name":"invalid.illegal.expected-dictionary-separator.json","match":"[^\\s\\}]"}],"beginCaptures":{"0":{"name":"punctuation.definition.dictionary.begin.json"}},"endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.json"}}},"string":{"name":"string.quoted.double.json","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.json","match":"(?x:                # turn on extended mode\n                     \\\\                # a literal backslash\n                     (?:               # ...followed by...\n                       [\"\\\\/bfnrt]     # one of these characters\n                       |               # ...or...\n                       u               # a u\n                       [0-9a-fA-F]{4}  # and four hex digits\n                     )\n                   )"},{"name":"invalid.illegal.unrecognized-string-escape.json","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.json"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.json"}}},"value":{"patterns":[{"include":"#constant"},{"include":"#number"},{"include":"#string"},{"include":"#array"},{"include":"#object"}]}}}
