{ "name" : "context.json", "patterns" : [ { "include" : "#content" } ], "repository" : { "array" : { "begin" : "\u005C[", "beginCaptures" : { "0" : { "name" : "context.grouping.array.open.json" } }, "end" : "\u005C]", "endCaptures" : { "0" : { "name" : "context.grouping.array.close.json" } }, "patterns" : [ { "include" : "#content" } ] }, "content" : { "patterns" : [ { "include" : "#string" }, { "include" : "#hexnumber" }, { "include" : "#decnumber" }, { "include" : "#reserved" }, { "include" : "#hash" }, { "include" : "#array" }, { "include" : "#separator" } ] }, "decnumber" : { "match" : "\u005Cs*([\u005C-]?[0-9]+(\u005C.[0-9]+)?([eEpP]\u005C-?[0-9]+)?)", "name" : "context.number.dec.json" }, "hash" : { "begin" : "\u005C{", "beginCaptures" : { "0" : { "name" : "context.grouping.hash.open.json" } }, "end" : "\u005C}", "endCaptures" : { "0" : { "name" : "context.grouping.hash.close.json" } }, "patterns" : [ { "include" : "#kv_content" } ] }, "hexnumber" : { "match" : "\u005Cs*([\u005C-]?0[xX][A-Fa-f0-9]+(\u005C.[A-Fa-f0-9]+)?([eEpP]\u005C-?[A-Fa-f0-9]+)?)", "name" : "context.number.hex.json" }, "kv_array" : { "begin" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*(\u005C[)", "beginCaptures" : { "1" : { "name" : "context.quote.array.key.open.json" }, "2" : { "name" : "context.text.array.key.text.json" }, "3" : { "name" : "context.quote.array.key.close.json" }, "4" : { "name" : "context.operator.array.becomes.json" }, "5" : { "name" : "context.grouping.array.value.open.json" } }, "end" : "\u005C]", "endCaptures" : { "0" : { "name" : "context.grouping.array.value.close.json" } }, "patterns" : [ { "include" : "#content" } ] }, "kv_content" : { "patterns" : [ { "include" : "#kv_string" }, { "include" : "#kv_hexnumber" }, { "include" : "#kv_decnumber" }, { "include" : "#kv_reserved" }, { "include" : "#kv_hash" }, { "include" : "#kv_array" }, { "include" : "#separator" } ] }, "kv_decnumber" : { "captures" : { "1" : { "name" : "context.quote.dec.key.open.json" }, "2" : { "name" : "context.text.dec.key.text.json" }, "3" : { "name" : "context.quote.dec.key.close.json" }, "4" : { "name" : "context.operator.dec.becomes.json" }, "5" : { "name" : "context.number.dec.value.json" } }, "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*([\u005C-]?[0-9]+(\u005C.[0-9]+)?([eEpP]\u005C-?[0-9]+)?)" }, "kv_hash" : { "begin" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*(\u005C{)", "beginCaptures" : { "1" : { "name" : "context.quote.hash.key.open.json" }, "2" : { "name" : "context.text.hash.key.text.json" }, "3" : { "name" : "context.quote.hash.key.close.json" }, "4" : { "name" : "context.operator.hash.becomes.json" }, "5" : { "name" : "context.grouping.hash.value.open.json" } }, "end" : "\u005C}", "endCaptures" : { "0" : { "name" : "context.grouping.hash.value.close.json" } }, "patterns" : [ { "include" : "#kv_content" } ] }, "kv_hexnumber" : { "captures" : { "1" : { "name" : "context.quote.hex.key.open.json" }, "2" : { "name" : "context.text.hex.key.text.json" }, "3" : { "name" : "context.quote.hex.key.close.json" }, "4" : { "name" : "context.operator.hex.becomes.json" }, "5" : { "name" : "context.number.hex.value.json" } }, "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*([\u005C-]?0[xX][A-Fa-f0-9]+(\u005C.[A-Fa-f0-9]+)?([eEpP]\u005C-?[A-Fa-f0-9]+)?)" }, "kv_reserved" : { "captures" : { "1" : { "name" : "context.quote.reserved.key.open.json" }, "2" : { "name" : "context.text.reserved.key.text.json" }, "3" : { "name" : "context.quote.reserved.key.close.json" }, "4" : { "name" : "context.operator.reserved.becomes.json" }, "5" : { "name" : "context.primitive.reserved.value.json" } }, "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*(true|null|false)" }, "kv_string" : { "captures" : { "1" : { "name" : "context.quote.string.key.open.json" }, "2" : { "name" : "context.text.string.key.text.json" }, "3" : { "name" : "context.quote.string.key.close.json" }, "4" : { "name" : "context.operator.string.becomes.json" }, "5" : { "name" : "context.quote.string.value.open.json" }, "6" : { "name" : "context.string.string.value.text.json" }, "7" : { "name" : "context.quote.string.value.close.json" } }, "match" : "(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*(\u005C:)\u005Cs*(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)" }, "reserved" : { "match" : "\u005Cs*(true|null|false)", "name" : "context.primitive.reserved.json" }, "separator" : { "match" : "\u005Cs*(\u005C,)", "name" : "context.operator.separator.json" }, "string" : { "captures" : { "1" : { "name" : "context.quote.string.open.json" }, "2" : { "name" : "context.string.string.text.json" }, "3" : { "name" : "context.quote.string.close.json" } }, "match" : "\u005Cs*(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)" } }, "scopeName" : "source.context.json", "version" : "1.0.0" }