{"name":"JSON","scopeName":"source.json","patterns":[{"include":"#main"}],"repository":{"array":{"name":"meta.block.array.json","begin":"\\[","end":"\\]","patterns":[{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.array.begin.json"}},"endCaptures":{"0":{"name":"punctuation.definition.block.array.end.json"}}},"boolean":{"name":"constant.language.boolean.$1.json","match":"(?\u003c=^|[,:\\s\\[])(true|false)(?=$|[,\\s}\\]])"},"delimiters":{"patterns":[{"name":"punctuation.separator.key-value.colon.json","match":"(?\u003c=\")\\s*:"},{"name":"punctuation.separator.comma.json","match":",(?!\\s*[}\\]])"}]},"escapes":{"patterns":[{"name":"constant.character.escape.json","match":"(\\\\)[\"\\\\/bfnrt]","captures":{"1":{"name":"punctuation.definition.escape.backslash.json"}}},{"name":"constant.character.escape.unicode.json","match":"(\\\\)u[0-9A-Fa-f]{4}","captures":{"1":{"name":"punctuation.definition.escape.backslash.json"}}},{"name":"invalid.illegal.unrecognised-escape.json","match":"\\\\."}]},"invalid":{"name":"invalid.illegal.unexpected-character.json","match":"\\S[^}\\]]*"},"key":{"name":"entity.name.tag.key.json","match":"(\")((?:[^\\\\\"]|\\\\.)*+)(\")(?=\\s*:)","captures":{"1":{"name":"punctuation.definition.key.start.json"},"2":{"patterns":[{"include":"#escapes"}]},"3":{"name":"punctuation.definition.key.end.json"}}},"main":{"patterns":[{"include":"#object"},{"include":"#key"},{"include":"#array"},{"include":"#string"},{"include":"#number"},{"include":"#boolean"},{"include":"#null"},{"include":"#delimiters"},{"include":"#invalid"}]},"null":{"name":"constant.language.null.json","match":"(?\u003c=^|[,:\\s\\[])null(?=$|[,\\s}\\]])"},"number":{"patterns":[{"name":"invalid.illegal.leading-zero.json","match":"-?0\\d+(?:\\.\\d+)?(?:[eE][-+]?[0-9]+)?"},{"name":"constant.numeric.json","match":"-?\\d+(?:\\.\\d+)?(?:[eE][-+]?[0-9]+)?"}]},"object":{"name":"meta.block.object.json","begin":"{","end":"}","patterns":[{"include":"#main"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.object.begin.json"}},"endCaptures":{"0":{"name":"punctuation.definition.block.object.end.json"}}},"string":{"name":"string.quoted.double.json","match":"(\")((?:[^\\\\\"]|\\\\.)*+)(\")(?!\\s*:)","captures":{"1":{"name":"punctuation.definition.string.begin.json"},"2":{"patterns":[{"include":"#escapes"}]},"3":{"name":"punctuation.definition.string.end.json"}}}}}