{"/Users/sadick/github/highlights/deps/language-c/grammars/c++.cson":{"scopeName":"source.cpp","fileTypes":["cc","cpp","cp","cxx","c++","cu","cuh","h","hh","hpp","hxx","h++","ipp"],"firstLineMatch":"-\\*- C\\+\\+ -\\*-","name":"C++","patterns":[{"include":"#special_block"},{"include":"source.c"},{"match":"\\b(friend|explicit|virtual)\\b","name":"storage.modifier.cpp"},{"match":"\\b(private:|protected:|public:)","name":"storage.modifier.cpp"},{"match":"\\b(catch|operator|try|throw|using)\\b","name":"keyword.control.cpp"},{"match":"\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])","name":"keyword.control.cpp"},{"comment":"common C++ instance var naming idiom -- fMemberName","match":"\\b(f|m)[A-Z]\\w*\\b","name":"variable.other.readwrite.member.cpp"},{"match":"\\b(this|nullptr)\\b","name":"variable.language.cpp"},{"match":"\\btemplate\\b\\s*","name":"storage.type.template.cpp"},{"match":"\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*","name":"keyword.operator.cast.cpp"},{"match":"\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq)\\b","name":"keyword.operator.cpp"},{"match":"\\b(class|wchar_t)\\b","name":"storage.type.cpp"},{"match":"\\b(constexpr|export|mutable|typename)\\b","name":"storage.modifier.cpp"},{"begin":"(?x)\n    \t\t\t\t(?:  ^                                 # begin-of-line\n    \t\t\t\t  |  (?: (?<!else|new|=) )             #  or word + space before name\n    \t\t\t\t)\n    \t\t\t\t((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n    \t\t\t\t \\s*(\\()                           # start bracket or end-of-line\n    \t\t\t","beginCaptures":{"1":{"name":"entity.name.function.cpp"},"2":{"name":"punctuation.definition.parameters.begin.c"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.c"}},"name":"meta.function.destructor.cpp","patterns":[{"include":"$base"}]},{"begin":"(?x)\n    \t\t\t\t(?:  ^                                 # begin-of-line\n    \t\t\t\t  |  (?: (?<!else|new|=) )             #  or word + space before name\n    \t\t\t\t)\n    \t\t\t\t((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n    \t\t\t\t \\s*(\\()                           # terminating semi-colon\n    \t\t\t","beginCaptures":{"1":{"name":"entity.name.function.cpp"},"2":{"name":"punctuation.definition.parameters.begin.c"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.c"}},"name":"meta.function.destructor.prototype.cpp","patterns":[{"include":"$base"}]}],"repository":{"angle_brackets":{"begin":"<","end":">","name":"meta.angle-brackets.cpp","patterns":[{"include":"#angle_brackets"},{"include":"$base"}]},"block":{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.c"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.section.block.end.c"}},"name":"meta.block.cpp","patterns":[{"captures":{"1":{"name":"support.function.any-method.c"},"2":{"name":"punctuation.definition.parameters.c"}},"match":"(?x)\n    \t\t\t\t(\n    \t\t\t\t\t(?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)(?: \\b[A-Za-z_][A-Za-z0-9_]*+\\b | :: )*+                  # actual name\n    \t\t\t\t)\n    \t\t\t\t \\s*(\\()","name":"meta.function-call.c"},{"include":"$base"}]},"constructor":{"patterns":[{"begin":"(?x)\n    \t\t\t\t(?:  ^\\s*)                             # begin-of-line\n    \t\t\t\t((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n    \t\t\t\t \\s*(\\()                            # start bracket or end-of-line\n    \t\t\t","beginCaptures":{"1":{"name":"entity.name.function.cpp"},"2":{"name":"punctuation.definition.parameters.begin.c"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.c"}},"name":"meta.function.constructor.cpp","patterns":[{"include":"$base"}]},{"begin":"(?x)\n    \t\t\t\t(:)                            # begin-of-line\n    \t\t\t\t((?=\\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n    \t\t\t\t \\s*(\\()))                      # start bracket or end-of-line\n    \t\t\t","beginCaptures":{"1":{"name":"punctuation.definition.parameters.c"}},"end":"(?=\\{)","name":"meta.function.constructor.initializer-list.cpp","patterns":[{"include":"$base"}]}]},"special_block":{"patterns":[{"begin":"\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)","beginCaptures":{"1":{"name":"keyword.control.cpp"},"2":{"name":"storage.type.cpp"},"3":{"name":"entity.name.type.cpp"}},"end":"(;)","name":"meta.using-namespace-declaration.cpp"},{"begin":"\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+","beginCaptures":{"1":{"name":"storage.type.cpp"},"2":{"name":"entity.name.type.cpp"}},"captures":{"1":{"name":"keyword.control.namespace.$2"}},"end":"(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))","name":"meta.namespace-block.cpp","patterns":[{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.scope.cpp"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.scope.cpp"}},"patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}]},{"include":"$base"}]},{"begin":"\\b(class|struct)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?","beginCaptures":{"1":{"name":"storage.type.cpp"},"2":{"name":"entity.name.type.cpp"},"4":{"name":"storage.type.modifier.cpp"},"5":{"name":"entity.name.type.inherited.cpp"},"6":{"patterns":[{"match":"(public|protected|private)","name":"storage.type.modifier.cpp"},{"match":"[_A-Za-z][_A-Za-z0-9]*","name":"entity.name.type.inherited.cpp"}]}},"end":"(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))","name":"meta.class-struct-block.cpp","patterns":[{"include":"#angle_brackets"},{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.cpp"}},"end":"(\\})(\\s*\\n)?","endCaptures":{"1":{"name":"punctuation.section.block.end.cpp"},"2":{"name":"invalid.illegal.you-forgot-semicolon.cpp"}},"patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}]},{"include":"$base"}]},{"begin":"\\b(extern)(?=\\s*\")","beginCaptures":{"1":{"name":"storage.modifier.cpp"}},"end":"(?<=\\})|(?=\\w)","name":"meta.extern-block.cpp","patterns":[{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.c"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.section.block.end.c"}},"patterns":[{"include":"#special_block"},{"include":"$base"}]},{"include":"$base"}]}]}}},"/Users/sadick/github/highlights/deps/language-c/grammars/c.cson":{"scopeName":"source.c","fileTypes":["c","h"],"firstLineMatch":"-[*]-( Mode:)? C -[*]-","name":"C","patterns":[{"include":"#preprocessor-rule-enabled"},{"include":"#preprocessor-rule-disabled"},{"include":"#preprocessor-rule-other"},{"include":"#comments"},{"match":"\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b","name":"keyword.control.c"},{"match":"\\b(asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\b","name":"storage.type.c"},{"match":"\\b(const|extern|register|restrict|static|volatile|inline)\\b","name":"storage.modifier.c"},{"comment":"common C constant naming idiom -- kConstantVariable","match":"\\bk[A-Z]\\w*\\b","name":"constant.other.variable.mac-classic.c"},{"match":"\\bg[A-Z]\\w*\\b","name":"variable.other.readwrite.global.mac-classic.c"},{"match":"\\bs[A-Z]\\w*\\b","name":"variable.other.readwrite.static.mac-classic.c"},{"match":"\\b(NULL|true|false|TRUE|FALSE)\\b","name":"constant.language.c"},{"include":"#sizeof"},{"match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b","name":"constant.numeric.c"},{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}},"name":"string.quoted.double.c","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}},"name":"string.quoted.single.c","patterns":[{"include":"#string_escaped_char"}]},{"begin":"(?x)\n        \t\t^\\s*\\#\\s*(define)\\s+             # define\n        \t\t((?<id>[a-zA-Z_][a-zA-Z0-9_]*))  # macro name\n        \t\t(?:                              # and optionally:\n        \t\t    (\\()                         # an open parenthesis\n        \t\t        (\n        \t\t            \\s* \\g<id> \\s*       # first argument\n        \t\t            ((,) \\s* \\g<id> \\s*)*  # additional arguments\n        \t\t            (?:\\.\\.\\.)?          # varargs ellipsis?\n        \t\t        )\n        \t\t    (\\))                         # a close parenthesis\n        \t\t)?\n        \t","beginCaptures":{"1":{"name":"keyword.control.import.define.c"},"2":{"name":"entity.name.function.preprocessor.c"},"4":{"name":"punctuation.definition.parameters.begin.c"},"5":{"name":"variable.parameter.preprocessor.c"},"7":{"name":"punctuation.separator.parameters.c"},"8":{"name":"punctuation.definition.parameters.end.c"}},"end":"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)","name":"meta.preprocessor.macro.c","patterns":[{"match":"(?>\\\\\\s*\\n)","name":"punctuation.separator.continuation.c"},{"include":"$base"}]},{"begin":"^\\s*#\\s*(error|warning)\\b","captures":{"1":{"name":"keyword.control.import.error.c"}},"end":"(?<!\\\\)(?=\\n)","name":"meta.preprocessor.diagnostic.c","patterns":[{"match":"(?>\\\\\\s*\\n)","name":"punctuation.separator.continuation.c"}]},{"begin":"^\\s*#\\s*(include|import)\\b\\s+","captures":{"1":{"name":"keyword.control.import.include.c"}},"end":"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)","name":"meta.preprocessor.c.include","patterns":[{"match":"(?>\\\\\\s*\\n)","name":"punctuation.separator.continuation.c"},{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}},"name":"string.quoted.double.include.c"},{"begin":"<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.c"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.string.end.c"}},"name":"string.quoted.other.lt-gt.include.c"}]},{"include":"#pragma-mark"},{"begin":"^\\s*#\\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef)\\b","captures":{"1":{"name":"keyword.control.import.c"}},"end":"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)","name":"meta.preprocessor.c","patterns":[{"match":"(?>\\\\\\s*\\n)","name":"punctuation.separator.continuation.c"}]},{"match":"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b","name":"support.type.sys-types.c"},{"match":"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b","name":"support.type.pthread.c"},{"match":"\\b(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)\\b","name":"support.type.stdint.c"},{"match":"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b","name":"support.constant.mac-classic.c"},{"match":"\\b(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\\b","name":"support.type.mac-classic.c"},{"comment":"Reserved POSIX types","match":"\\b([a-z0-9_]+_t)\\b","name":"support.type.posix-reserved.c"},{"include":"#block"},{"begin":"(?x)\n    \t\t(?:  ^                                 # begin-of-line\n    \t\t  |  \n    \t\t     (?: (?= \\s )           (?<!else|new|return) (?<=\\w)      #  or word + space before name\n    \t\t       | (?= \\s*[A-Za-z_] ) (?<!&&)       (?<=[*&>])   #  or type modifier before name\n    \t\t     )\n    \t\t)\n    \t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|[cr]?iterate)\\s*\\()\n    \t\t(\n    \t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ |                  # actual name\n    \t\t\t(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) )  # if it is a C++ operator\n    \t\t)\n    \t\t \\s*(?=\\()","beginCaptures":{"1":{"name":"punctuation.whitespace.function.leading.c"},"3":{"name":"entity.name.function.c"},"4":{"name":"punctuation.definition.parameters.c"}},"end":"(?<=\\})|(?=#)|(;)","name":"meta.function.c","patterns":[{"include":"#comments"},{"include":"#parens"},{"match":"\\b(const|override|final)\\b","name":"storage.modifier.c"},{"include":"#block"}]}],"repository":{"access":{"captures":{"1":{"name":"punctuation.separator.variable-access.c"},"2":{"name":"variable.other.dot-access.c"}},"match":"(\\.)([a-zA-Z_][a-zA-Z_0-9]*)\\b(?!\\s*\\()"},"block":{"patterns":[{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.c"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.section.block.end.c"}},"name":"meta.block.c","patterns":[{"include":"#block_innards"}]}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-other-block"},{"include":"#sizeof"},{"include":"#access"},{"include":"#libc"},{"include":"#c_function_call"},{"captures":{"1":{"name":"variable.other.c"},"2":{"name":"punctuation.definition.parameters.c"}},"match":"(?x)\n\t\t\t        (?x)\n\t\t\t(?:  \n\t\t\t     (?: (?= \\s )           (?<!else|new|return) (?<=\\w)\\s+      #  or word + space before name\n\t\t\t     )\n\t\t\t)\n\t\t\t(\n\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++    |              # actual name\n\t\t\t\t(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) )?  # if it is a C++ operator\n\t\t\t)\n\t\t\t \\s*(\\()","name":"meta.initialization.c"},{"include":"#block"},{"include":"$base"}]},"c_function_call":{"captures":{"1":{"name":"punctuation.whitespace.function-call.leading.c"},"2":{"name":"support.function.any-method.c"},"3":{"name":"punctuation.definition.parameters.c"}},"match":"(?x) (?: (?= \\s )  (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n\t\t\t(\\b \n\t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|[cr]?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++                  # actual name\n\t\t\t)\n\t\t\t \\s*(\\()","name":"meta.function-call.c"},"comments":{"patterns":[{"captures":{"1":{"name":"meta.toc-list.banner.block.c"}},"match":"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?","name":"comment.block.c"},{"begin":"/\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.c"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.c"}},"name":"comment.block.c"},{"match":"\\*/.*\\n","name":"invalid.illegal.stray-comment-end.c"},{"captures":{"1":{"name":"meta.toc-list.banner.line.c"}},"match":"^// =(\\s*.*?)\\s*=\\s*$\\n?","name":"comment.line.banner.c++"},{"begin":"(^[ \\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.c++"}},"end":"(?!\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.c++"}},"end":"\\n","name":"comment.line.double-slash.c++","patterns":[{"match":"(?>\\\\\\s*\\n)","name":"punctuation.separator.continuation.c++"}]}]}]},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","comment":"eat nested preprocessor if(def)s","end":"^\\s*#\\s*endif\\b","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},"libc":{"captures":{"1":{"name":"punctuation.whitespace.support.function.leading.c"},"2":{"name":"support.function.C99.c"}},"match":"(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"},"parens":{"begin":"\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.c"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.c"}},"name":"meta.parens.c","patterns":[{"include":"$base"}]},"pragma-mark":{"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.pragma.c"},"3":{"name":"meta.toc-list.pragma-mark.c"}},"match":"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))","name":"meta.section"},"preprocessor-rule-disabled":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}},"end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}},"end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"$base"}]},{"begin":"","end":"(?=^\\s*#\\s*(else|endif)\\b)","name":"comment.block.preprocessor.if-branch","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}]},"preprocessor-rule-disabled-block":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}},"end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}},"end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#block_innards"}]},{"begin":"","end":"(?=^\\s*#\\s*(else|endif)\\b)","name":"comment.block.preprocessor.if-branch.in-block","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}]},"preprocessor-rule-enabled":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}},"end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b).*","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}},"contentName":"comment.block.preprocessor.else-branch","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},{"begin":"","end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"$base"}]}]},"preprocessor-rule-enabled-block":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}},"end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"begin":"^\\s*(#\\s*(else)\\b).*","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}},"contentName":"comment.block.preprocessor.else-branch.in-block","end":"(?=^\\s*#\\s*endif\\b)","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},{"begin":"","end":"(?=^\\s*#\\s*(else|endif)\\b)","patterns":[{"include":"#block_innards"}]}]},"preprocessor-rule-other":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.c"}},"end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"include":"$base"}]},"preprocessor-rule-other-block":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.c"}},"end":"^\\s*(#\\s*(endif)\\b)","patterns":[{"include":"#block_innards"}]},"sizeof":{"match":"\\b(sizeof)\\b","name":"keyword.operator.sizeof.c"},"string_escaped_char":{"patterns":[{"match":"\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})","name":"constant.character.escape.c"},{"match":"\\\\.","name":"invalid.illegal.unknown-escape.c"}]},"string_placeholder":{"patterns":[{"match":"(?x)%\n    \t\t\t\t\t\t(\\d+\\$)?                             # field (argument #)\n    \t\t\t\t\t\t[#0\\- +']*                           # flags\n    \t\t\t\t\t\t[,;:_]?                              # separator character (AltiVec)\n    \t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)?              # minimum field width\n    \t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?         # precision\n    \t\t\t\t\t\t(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n    \t\t\t\t\t\t[diouxXDOUeEfFgGaACcSspn%]           # conversion type\n    \t\t\t\t\t","name":"constant.other.placeholder.c"},{"match":"%","name":"invalid.illegal.placeholder.c"}]}}},"/Users/sadick/github/highlights/deps/language-clojure/grammars/clojure.cson":{"scopeName":"source.clojure","fileTypes":["clj","cljs","clojure","edn"],"foldingStartMarker":"\\(\\s*$","foldingStopMarker":"^\\s*\\)","name":"Clojure","patterns":[{"include":"#comment"},{"include":"#shebang-comment"},{"include":"#quoted-sexp"},{"include":"#sexp"},{"include":"#keyfn"},{"include":"#string"},{"include":"#vector"},{"include":"#set"},{"include":"#map"},{"include":"#regexp"},{"include":"#var"},{"include":"#constants"},{"include":"#symbol"},{"include":"#whitespace"}],"repository":{"comment":{"captures":{"1":{"name":"punctuation.definition.comment.clojure"}},"match":"(;).*$\\n?","name":"comment.line.semicolon.clojure"},"constants":{"patterns":[{"match":"(nil)(?=(\\s|\\)|\\]|\\}))","name":"constant.language.nil.clojure"},{"match":"(true|false)","name":"constant.language.boolean.clojure"},{"match":"(\\d+/\\d+)","name":"constant.numeric.ratio.clojure"},{"match":"(\\d+r\\d+)","name":"constant.numeric.arbitrary-radix.clojure"},{"match":"(0x\\d+)","name":"constant.numeric.hexidecimal.clojure"},{"match":"(0\\d+)","name":"constant.numeric.octal.clojure"},{"match":"(\\d+)","name":"constant.numeric.decimal.clojure"},{"match":"(?<=(\\s|\\(|\\[|\\{)):[a-zA-Z0-9\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))","name":"constant.keyword.clojure"}]},"keyfn":{"patterns":[{"match":"(?<=(\\s|\\(|\\[|\\{))(if(-[-a-z\\?]*)?|when(-[-a-z]*)?|for(-[-a-z]*)?|cond|do|let(-[-a-z\\?]*)?|binding|loop|recur|fn|throw[a-z\\-]*|try|catch|finally|([a-z]*case))(?=(\\s|\\)|\\]|\\}))","name":"storage.control.clojure"},{"match":"(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[a-z\\-]*))(?=(\\s|\\)|\\]|\\}))","name":"keyword.control.clojure"}]},"map":{"begin":"(\\{)","end":"(\\})","name":"meta.map.clojure","patterns":[{"include":"$self"}]},"quoted-sexp":{"begin":"(['``]\\()","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.clojure"}},"end":"(\\))(\\n)?","endCaptures":{"1":{"name":"punctuation.section.expression.end.clojure"},"2":{"name":"meta.after-expression.clojure"}},"name":"meta.quoted-expression.clojure","patterns":[{"include":"$self"}]},"regexp":{"begin":"#\\\"","end":"\\\"","name":"string.regexp.clojure","patterns":[{"include":"#regexp_escaped_char"}]},"regexp_escaped_char":{"match":"\\\\(\\\")","name":"string.regexp.clojure"},"set":{"begin":"(\\#\\{)","end":"(\\})","name":"meta.set.clojure","patterns":[{"include":"$self"}]},"sexp":{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.clojure"}},"end":"(\\))(\\n)?","endCaptures":{"1":{"name":"punctuation.section.expression.end.clojure"},"2":{"name":"meta.after-expression.clojure"}},"name":"meta.expression.clojure","patterns":[{"begin":"(?<=\\()(ns|def|def-|defn|defn-|defvar|defvar-|defmacro|defmacro-|deftest)\\s+(.+?)(?=\\s|\\))","beginCaptures":{"1":{"name":"keyword.control.clojure"},"2":{"name":"entity.global.clojure"}},"end":"(?=\\))","name":"meta.definition.global.clojure","patterns":[{"include":"$self"}]},{"include":"$self"}]},"shebang-comment":{"captures":{"1":{"name":"punctuation.definition.comment.shebang.clojure"}},"match":"^(\\#!).*$\\n?","name":"comment.line.semicolon.clojure"},"string":{"begin":"(\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.clojure"}},"end":"(\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.clojure"}},"name":"string.quoted.double.clojure","patterns":[{"match":"\\\\.","name":"constant.character.escape.clojure"}]},"symbol":{"patterns":[{"match":"(\\w[\\w\\d]+)","name":"meta.symbol.clojure"}]},"var":{"match":"(?<=(\\s|\\(|\\[|\\{)\\#)'[a-zA-Z0-9\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))","name":"meta.var.clojure"},"vector":{"begin":"(\\[)","end":"(\\])","name":"meta.vector.clojure","patterns":[{"include":"$self"}]},"whitespace":{"match":"\\s+$","name":"invalid.trailing-whitespace"}}},"/Users/sadick/github/highlights/deps/language-coffee-script/grammars/coffeescript (literate).cson":{"comment":"CoffeeScript (Literate)","fileTypes":["litcoffee","litcoffee.erb","coffee.md"],"foldingStartMarker":"(?x)\n\t\t(<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\\b.*?>\n\t\t|<!--(?!.*-->)\n\t\t|\\{\\s*($|\\?>\\s*$|//|/\\*(.*\\*/\\s*$|(?!.*?\\*/)))\n\t\t)","foldingStopMarker":"(?x)\n\t\t(</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>\n\t\t|^\\s*-->\n\t\t|(^|\\s)\\}\n\t\t)","name":"CoffeeScript (Literate)","patterns":[{"begin":"(?x)^\n\t\t\t\t(?=\t([ ]{4}|\\t)(?!$))","end":"(?x)^\n\t\t\t\t(?!\t([ ]{4}|\\t))","name":"markup.raw.block.markdown","patterns":[{"include":"#block_raw"}]},{"begin":"(?x)^\n\t\t\t\t(?=\t[ ]{,3}>.\n\t\t\t\t|\t[#]{1,6}\\s*+\n\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t)","comment":"\n\t\t\t\tWe could also use an empty end match and set\n\t\t\t\tapplyEndPatternLast, but then we must be sure that the begin\n\t\t\t\tpattern will only match stuff matched by the sub-patterns.\n\t\t\t","end":"(?x)^\n\t\t\t\t(?!\t[ ]{,3}>.\n\t\t\t\t|\t[#]{1,6}\\s*+\n\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t)","name":"meta.block-level.markdown","patterns":[{"include":"#block_quote"},{"include":"#heading"},{"include":"#separator"}]},{"begin":"^[ ]{0,3}([*+-])(?=\\s)","captures":{"1":{"name":"punctuation.definition.list_item.markdown"}},"end":"^(?=\\S)","name":"markup.list.unnumbered.markdown","patterns":[{"include":"#list-paragraph"}]},{"begin":"^[ ]{0,3}([0-9]+\\.)(?=\\s)","captures":{"1":{"name":"punctuation.definition.list_item.markdown"}},"end":"^(?=\\S)","name":"markup.list.numbered.markdown","patterns":[{"include":"#list-paragraph"}]},{"begin":"^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)(?!.*?</\\1>)","comment":"\n\t\t\t\tMarkdown formatting is disabled inside block-level tags.\n\t\t\t","end":"(?<=^</\\1>$\\n)","name":"meta.disable-markdown","patterns":[{"include":"text.html.basic"}]},{"begin":"^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)","comment":"Same rule but for one line disables.","end":"$\\n?","name":"meta.disable-markdown","patterns":[{"include":"text.html.basic"}]},{"captures":{"1":{"name":"punctuation.definition.constant.markdown"},"2":{"name":"constant.other.reference.link.markdown"},"3":{"name":"punctuation.definition.constant.markdown"},"4":{"name":"punctuation.separator.key-value.markdown"},"5":{"name":"punctuation.definition.link.markdown"},"6":{"name":"markup.underline.link.markdown"},"7":{"name":"punctuation.definition.link.markdown"},"8":{"name":"string.other.link.description.title.markdown"},"9":{"name":"punctuation.definition.string.begin.markdown"},"10":{"name":"punctuation.definition.string.end.markdown"},"11":{"name":"string.other.link.description.title.markdown"},"12":{"name":"punctuation.definition.string.begin.markdown"},"13":{"name":"punctuation.definition.string.end.markdown"}},"match":"(?x:\n\t\t\t\t\\s*\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t(\\[)(.+?)(\\])(:)\t\t# Reference name\n\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\t\t\t\t(?:\n\t\t\t\t\t  ((\\().+?(\\)))\t\t# Match title in quotes…\n\t\t\t\t\t| ((\").+?(\"))\t\t# or in parens.\n\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t$\n\t\t\t)","name":"meta.link.reference.def.markdown"},{"begin":"^(?=\\S)(?![=-]{3,}(?=$))","end":"^(?:\\s*$|(?=[ ]{,3}>.))|(?=[ \\t]*\\n)(?<=^===|^====|=====|^---|^----|-----)[ \\t]*\\n|(?=^#)","name":"meta.paragraph.markdown","patterns":[{"include":"#inline"},{"include":"text.html.basic"},{"captures":{"1":{"name":"punctuation.definition.heading.markdown"}},"match":"^(={3,})(?=[ \\t]*$)","name":"markup.heading.1.markdown"},{"captures":{"1":{"name":"punctuation.definition.heading.markdown"}},"match":"^(-{3,})(?=[ \\t]*$)","name":"markup.heading.2.markdown"}]}],"repository":{"ampersand":{"comment":"\n\t\t\t\tMarkdown will convert this for us. We match it so that the\n\t\t\t\tHTML grammar will not mark it up as invalid.\n\t\t\t","match":"&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)","name":"meta.other.valid-ampersand.markdown"},"block_quote":{"begin":"\\G[ ]{,3}(>)(?!$)[ ]?","beginCaptures":{"1":{"name":"punctuation.definition.blockquote.markdown"}},"comment":"\n\t\t\t\tWe terminate the block quote when seeing an empty line, a\n\t\t\t\tseparator or a line with leading > characters. The latter is\n\t\t\t\tto “reset” the quote level for quoted lines.\n\t\t\t","end":"(?x)^\n\t\t\t\t(?=\t\\s*$\n\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t|\t[ ]{,3}>.\n\t\t\t\t)","name":"markup.quote.markdown","patterns":[{"begin":"(?x)\\G\n\t\t\t\t\t\t(?=\t[ ]{,3}>.\n\t\t\t\t\t\t)","end":"^","patterns":[{"include":"#block_quote"}]},{"applyEndPatternLast":1,"begin":"(?x)\\G\n\t\t\t\t\t\t(?=\t([ ]{4}|\\t)\n\t\t\t\t\t\t|\t[#]{1,6}\\s*+\n\t\t\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t\t\t)","end":"^","patterns":[{"include":"#block_raw"},{"include":"#heading"},{"include":"#separator"}]},{"begin":"(?x)\\G\n\t\t\t\t\t\t(?!\t$\n\t\t\t\t\t\t|\t[ ]{,3}>.\n\t\t\t\t\t\t|\t([ ]{4}|\\t)\n\t\t\t\t\t\t|\t[#]{1,6}\\s*+\n\t\t\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t\t\t)","end":"$|(?<=\\n)","patterns":[{"include":"#inline"}]}]},"block_raw":{"name":"markup.raw.block.markdown","patterns":[{"include":"#coffee_script"}]},"bold":{"begin":"(?x)\n\t\t\t\t\t\t(\\*\\*|__)(?=\\S)\t\t\t\t\t\t\t\t# Open\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t    <[^>]*+>\t\t\t\t\t\t\t# HTML tags\n\t\t\t\t\t\t\t  | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# Raw\n\t\t\t\t\t\t\t  | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\t\t\t# Escapes\n\t\t\t\t\t\t\t  | \\[\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t        (?<square>\t\t\t\t\t# Named group\n\t\t\t\t\t\t\t\t\t\t\t[^\\[\\]\\\\]\t\t\t\t# Match most chars\n\t\t\t\t\t\t\t\t          | \\\\.\t\t\t\t\t\t# Escaped chars\n\t\t\t\t\t\t\t\t          | \\[ \\g<square>*+ \\]\t\t# Nested brackets\n\t\t\t\t\t\t\t\t        )*+\n\t\t\t\t\t\t\t\t\t\\]\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t# Reference Link\n\t\t\t\t\t\t\t\t\t\t\t[ ]?\t\t\t\t\t# Optional space\n\t\t\t\t\t\t\t\t\t\t\t\\[[^\\]]*+\\]\t\t\t\t# Ref name\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t  | (\t\t\t\t\t\t\t# Inline Link\n\t\t\t\t\t\t\t\t\t\t\t\\(\t\t\t\t\t\t# Opening paren\n\t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\t\t\t\t\t\t\t\t\t\t\t\t<?(.*?)>?\t\t\t# URL\n\t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\t\t\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t# Optional Title\n\t\t\t\t\t\t\t\t\t\t\t\t\t(?<title>['\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t(.*?)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\k<title>\n\t\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t\t\\)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t  | (?!(?<=\\S)\\1).\t\t\t\t\t\t# Everything besides\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# style closer\n\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t(?<=\\S)\\1\t\t\t\t\t\t\t\t# Close\n\t\t\t\t\t\t)\n\t\t\t\t\t","captures":{"1":{"name":"punctuation.definition.bold.markdown"}},"end":"(?<=\\S)(\\1)","name":"markup.bold.markdown","patterns":[{"applyEndPatternLast":1,"begin":"(?=<[^>]*?>)","end":"(?<=>)","patterns":[{"include":"text.html.basic"}]},{"include":"#escape"},{"include":"#ampersand"},{"include":"#bracket"},{"include":"#raw"},{"include":"#italic"},{"include":"#image-inline"},{"include":"#link-inline"},{"include":"#link-inet"},{"include":"#link-email"},{"include":"#image-ref"},{"include":"#link-ref-literal"},{"include":"#link-ref"}]},"bracket":{"comment":"\n\t\t\t\tMarkdown will convert this for us. We match it so that the\n\t\t\t\tHTML grammar will not mark it up as invalid.\n\t\t\t","match":"<(?![a-z/?\\$!])","name":"meta.other.valid-bracket.markdown"},"coffee_script":{"patterns":[{"include":"source.coffee"}]},"escape":{"match":"\\\\[-`*_#+.!(){}\\[\\]\\\\>]","name":"constant.character.escape.markdown"},"heading":{"begin":"\\G(#{1,6})(?!#)\\s*(?=\\S)","captures":{"1":{"name":"punctuation.definition.heading.markdown"}},"contentName":"entity.name.section.markdown","end":"\\s*(#*)$\\n?","name":"markup.heading.markdown","patterns":[{"include":"#inline"}]},"image-inline":{"captures":{"1":{"name":"punctuation.definition.string.begin.markdown"},"2":{"name":"string.other.link.description.markdown"},"3":{"name":"punctuation.definition.string.end.markdown"},"5":{"name":"invalid.illegal.whitespace.markdown"},"6":{"name":"punctuation.definition.metadata.markdown"},"7":{"name":"punctuation.definition.link.markdown"},"8":{"name":"markup.underline.link.image.markdown"},"9":{"name":"punctuation.definition.link.markdown"},"10":{"name":"string.other.link.description.title.markdown"},"11":{"name":"punctuation.definition.string.markdown"},"12":{"name":"punctuation.definition.string.markdown"},"13":{"name":"string.other.link.description.title.markdown"},"14":{"name":"punctuation.definition.string.markdown"},"15":{"name":"punctuation.definition.string.markdown"},"16":{"name":"punctuation.definition.metadata.markdown"}},"match":"(?x:\n\t\t\t\t\\!\t\t\t\t\t\t\t# Images start with !\n\t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n\t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\t\t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t(?:\n\t\t\t\t\t\t  ((\\().+?(\\)))\t\t# Match title in parens…\n\t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t(\\))\n\t\t\t )","name":"meta.image.inline.markdown"},"image-ref":{"captures":{"1":{"name":"punctuation.definition.string.begin.markdown"},"2":{"name":"string.other.link.description.markdown"},"4":{"name":"punctuation.definition.string.begin.markdown"},"5":{"name":"punctuation.definition.constant.markdown"},"6":{"name":"constant.other.reference.link.markdown"},"7":{"name":"punctuation.definition.constant.markdown"}},"match":"\\!(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])","name":"meta.image.reference.markdown"},"inline":{"patterns":[{"include":"#escape"},{"include":"#ampersand"},{"include":"#bracket"},{"include":"#raw"},{"include":"#bold"},{"include":"#italic"},{"include":"#line-break"},{"include":"#image-inline"},{"include":"#link-inline"},{"include":"#link-inet"},{"include":"#link-email"},{"include":"#image-ref"},{"include":"#link-ref-literal"},{"include":"#link-ref"}]},"italic":{"begin":"(?x)\n\t\t\t\t\t\t(\\*|_)(?=\\S)\t\t\t\t\t\t\t\t# Open\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t    <[^>]*+>\t\t\t\t\t\t\t# HTML tags\n\t\t\t\t\t\t\t  | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# Raw\n\t\t\t\t\t\t\t  | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\t\t\t# Escapes\n\t\t\t\t\t\t\t  | \\[\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t        (?<square>\t\t\t\t\t# Named group\n\t\t\t\t\t\t\t\t\t\t\t[^\\[\\]\\\\]\t\t\t\t# Match most chars\n\t\t\t\t\t\t\t\t          | \\\\.\t\t\t\t\t\t# Escaped chars\n\t\t\t\t\t\t\t\t          | \\[ \\g<square>*+ \\]\t\t# Nested brackets\n\t\t\t\t\t\t\t\t        )*+\n\t\t\t\t\t\t\t\t\t\\]\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t# Reference Link\n\t\t\t\t\t\t\t\t\t\t\t[ ]?\t\t\t\t\t# Optional space\n\t\t\t\t\t\t\t\t\t\t\t\\[[^\\]]*+\\]\t\t\t\t# Ref name\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t  | (\t\t\t\t\t\t\t# Inline Link\n\t\t\t\t\t\t\t\t\t\t\t\\(\t\t\t\t\t\t# Opening paren\n\t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\t\t\t\t\t\t\t\t\t\t\t\t<?(.*?)>?\t\t\t# URL\n\t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\t\t\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t# Optional Title\n\t\t\t\t\t\t\t\t\t\t\t\t\t(?<title>['\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t(.*?)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\k<title>\n\t\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t\t\\)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t  | \\1\\1\t\t\t\t\t\t\t\t# Must be bold closer\n\t\t\t\t\t\t\t  | (?!(?<=\\S)\\1).\t\t\t\t\t\t# Everything besides\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# style closer\n\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t(?<=\\S)\\1\t\t\t\t\t\t\t\t# Close\n\t\t\t\t\t\t)\n\t\t\t\t\t","captures":{"1":{"name":"punctuation.definition.italic.markdown"}},"end":"(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))","name":"markup.italic.markdown","patterns":[{"applyEndPatternLast":1,"begin":"(?=<[^>]*?>)","end":"(?<=>)","patterns":[{"include":"text.html.basic"}]},{"include":"#escape"},{"include":"#ampersand"},{"include":"#bracket"},{"include":"#raw"},{"include":"#bold"},{"include":"#image-inline"},{"include":"#link-inline"},{"include":"#link-inet"},{"include":"#link-email"},{"include":"#image-ref"},{"include":"#link-ref-literal"},{"include":"#link-ref"}]},"line-break":{"match":" {2,}$","name":"meta.dummy.line-break"},"link-email":{"captures":{"1":{"name":"punctuation.definition.link.markdown"},"2":{"name":"markup.underline.link.markdown"},"4":{"name":"punctuation.definition.link.markdown"}},"match":"(<)((?:mailto:)?[-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(>)","name":"meta.link.email.lt-gt.markdown"},"link-inet":{"captures":{"1":{"name":"punctuation.definition.link.markdown"},"2":{"name":"markup.underline.link.markdown"},"3":{"name":"punctuation.definition.link.markdown"}},"match":"(<)((?:https?|ftp)://.*?)(>)","name":"meta.link.inet.markdown"},"link-inline":{"captures":{"1":{"name":"punctuation.definition.string.begin.markdown"},"2":{"name":"string.other.link.title.markdown"},"4":{"name":"punctuation.definition.string.end.markdown"},"5":{"name":"invalid.illegal.whitespace.markdown"},"6":{"name":"punctuation.definition.metadata.markdown"},"7":{"name":"punctuation.definition.link.markdown"},"8":{"name":"markup.underline.link.markdown"},"9":{"name":"punctuation.definition.link.markdown"},"10":{"name":"string.other.link.description.title.markdown"},"11":{"name":"punctuation.definition.string.begin.markdown"},"12":{"name":"punctuation.definition.string.end.markdown"},"13":{"name":"string.other.link.description.title.markdown"},"14":{"name":"punctuation.definition.string.begin.markdown"},"15":{"name":"punctuation.definition.string.end.markdown"},"16":{"name":"punctuation.definition.metadata.markdown"}},"match":"(?x:\n\t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n\t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\t\t\t\t\t(<?)(.*?)(>?)\t\t\t# The url\n\t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t(?:\n\t\t\t\t\t\t  ((\\().+?(\\)))\t\t# Match title in parens…\n\t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t(\\))\n\t\t\t )","name":"meta.link.inline.markdown"},"link-ref":{"captures":{"1":{"name":"punctuation.definition.string.begin.markdown"},"2":{"name":"string.other.link.title.markdown"},"4":{"name":"punctuation.definition.string.end.markdown"},"5":{"name":"punctuation.definition.constant.begin.markdown"},"6":{"name":"constant.other.reference.link.markdown"},"7":{"name":"punctuation.definition.constant.end.markdown"}},"match":"(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)([^\\]]*+)(\\])","name":"meta.link.reference.markdown"},"link-ref-literal":{"captures":{"1":{"name":"punctuation.definition.string.begin.markdown"},"2":{"name":"string.other.link.title.markdown"},"4":{"name":"punctuation.definition.string.end.markdown"},"5":{"name":"punctuation.definition.constant.begin.markdown"},"6":{"name":"punctuation.definition.constant.end.markdown"}},"match":"(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])","name":"meta.link.reference.literal.markdown"},"list-paragraph":{"patterns":[{"begin":"\\G\\s+(?=\\S)","end":"^\\s*$","name":"meta.paragraph.list.markdown","patterns":[{"include":"#inline"},{"captures":{"1":{"name":"punctuation.definition.list_item.markdown"}},"comment":"Match the list punctuation","match":"^\\s*([*+-]|[0-9]+\\.)"}]}]},"raw":{"captures":{"1":{"name":"punctuation.definition.raw.markdown"},"3":{"name":"punctuation.definition.raw.markdown"}},"match":"(`+)([^`]|(?!(?<!`)\\1(?!`))`)*+(\\1)","name":"markup.raw.inline.markdown"},"separator":{"match":"\\G[ ]{,3}([-*_])([ ]{,2}\\1){2,}[ \\t]*$\\n?","name":"meta.separator.markdown"}},"scopeName":"source.litcoffee"},"/Users/sadick/github/highlights/deps/language-coffee-script/grammars/coffeescript.cson":{"scopeName":"source.coffee","name":"CoffeeScript","fileTypes":["coffee","Cakefile","coffee.erb","cson","_coffee"],"firstLineMatch":"^#!.*\\bcoffee","foldingStartMarker":"^\\s*class\\s+\\S.*$|.*(->|=>)\\s*$|.*[\\[{]\\s*$","foldingStopMarker":"^\\s*$|^\\s*[}\\]]\\s*$","patterns":[{"captures":{"1":{"name":"variable.parameter.function.coffee"},"2":{"name":"storage.type.function.coffee"}},"comment":"match stuff like: a -> … ","match":"(\\([^()]*?\\))\\s*([=-]>)","name":"meta.inline.function.coffee"},{"captures":{"1":{"name":"keyword.operator.new.coffee"},"4":{"name":"storage.type.class.coffee"},"6":{"name":"entity.name.type.instance.coffee"},"7":{"name":"entity.name.type.instance.coffee"}},"match":"(new)\\s+(((class)(\\s+(\\w+(?:\\.\\w*)*))?)|(\\w+(?:\\.\\w*)*))","name":"meta.class.instance.constructor"},{"begin":"'''","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.coffee"}},"end":"'''","endCaptures":{"0":{"name":"punctuation.definition.string.end.coffee"}},"name":"string.quoted.heredoc.coffee"},{"begin":"\"\"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.coffee"}},"end":"\"\"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.coffee"}},"name":"string.quoted.double.heredoc.coffee","patterns":[{"match":"\\\\.","name":"constant.character.escape.coffee"},{"include":"#interpolated_coffee"}]},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.coffee"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.coffee"}},"name":"string.quoted.script.coffee","patterns":[{"include":"source.js"}]},{"begin":"(?<!#)###(?!#)","captures":{"0":{"name":"punctuation.definition.comment.coffee"}},"end":"###(?:[ \\t]*\\n)","name":"comment.block.coffee","patterns":[{"match":"(?<=^|\\s)@\\w*(?=\\s)","name":"storage.type.annotation.coffee"}]},{"begin":"(#)(?!\\{)","beginCaptures":{"1":{"name":"punctuation.definition.comment.coffee"}},"end":"\\n","name":"comment.line.number-sign.coffee"},{"begin":"/{3}","end":"(/{3})[imgy]{0,4}","name":"string.regexp.coffee","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"endCaptures":{"1":{"name":"punctuation.definition.string.begin.js"}},"patterns":[{"include":"#heregexp"}]},{"begin":"/(?=(?![ /*+?])([^\\\\]|\\\\.)*?/[igmy]{0,4}(?![a-zA-Z0-9]))","end":"(/)[imgy]{0,4}","name":"string.regexp.coffee","patterns":[{"include":"source.js.regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"endCaptures":{"1":{"name":"punctuation.definition.string.begin.js"}}},{"match":"(?x)\\b(?<![\\.\\$])(\n\t\t\t\t\tbreak|by|catch|continue|else|finally|for|in|of|if|return|switch|\n\t\t\t\t\tthen|throw|try|unless|when|while|until|loop|do|(?<=for)\\s+own\n\t\t\t\t)(?!\\s*:)\\b","name":"keyword.control.coffee"},{"match":"(?x)and=|or=|!|%|&|\\^|\\*|\\/|(\\-)?\\-(?!>)|\\+\\+|\\+|~|==|=(?!>)|!=|<=|>=|<<=|>>=|\n\t\t\t\t>>>=|<>|<|>|!|&&|\\.\\.(\\.)?|\\?|\\||\\|\\||\\:|\\*=|(?<!\\()/=|%=|\\+=|\\-=|&=|\n\t\t\t\t\\^=|\\b(?<![\\.\\$])(instanceof|new|delete|typeof|and|or|is|isnt|not|super)(?!\\s*:)\\b","name":"keyword.operator.coffee"},{"match":"\\b(?<![\\.\\$])(case|default|function|var|void|with|const|let|enum|export|import|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static|yield)(?!\\s*:)\\b","name":"keyword.reserved.coffee"},{"captures":{"1":{"name":"variable.assignment.coffee"},"4":{"name":"punctuation.separator.key-value"},"5":{"name":"keyword.operator.coffee"}},"match":"([a-zA-Z\\$_](\\w|\\$|\\.)*\\s*(?!\\::)((:)|((?:or|and|[-+/&%*?])?=)(?![>=]))(?!(\\s*\\(.*\\))?\\s*([=-]>)))","name":"variable.assignment.coffee"},{"begin":"(?<=\\s|^)(\\{)(?=.+?\\}\\s+[:=])","beginCaptures":{"0":{"name":"keyword.operator.coffee"}},"end":"(\\}\\s*[:=])","endCaptures":{"0":{"name":"keyword.operator.coffee"}},"name":"meta.variable.assignment.destructured.object.coffee","patterns":[{"include":"#variable_name"},{"include":"#instance_variable"},{"include":"#single_quoted_string"},{"include":"#double_quoted_string"},{"include":"#numeric"}]},{"begin":"(?<=\\s|^)(\\[)(?=.+?\\]\\s+[:=])","beginCaptures":{"0":{"name":"keyword.operator.coffee"}},"end":"(\\]\\s*[:=])","endCaptures":{"0":{"name":"keyword.operator.coffee"}},"name":"meta.variable.assignment.destructured.array.coffee","patterns":[{"include":"#variable_name"},{"include":"#instance_variable"},{"include":"#single_quoted_string"},{"include":"#double_quoted_string"},{"include":"#numeric"}]},{"captures":{"1":{"name":"entity.name.function.coffee"},"3":{"name":"variable.parameter.function.coffee"},"4":{"name":"storage.type.function.coffee"}},"match":"(?x)\n\t\t\t\t(?<=^|\\s)\n\t\t\t\t(?=@?[a-zA-Z\\$_])\n\t\t\t\t(\n\t\t\t\t\t@?[a-zA-Z\\$_](\\w|\\$|:|\\.)*\\s*\n\t\t\t\t\t(?=[:=](\\s*\\(.*\\))?\\s*([=-]>))\n\t\t\t\t)\n\t\t\t","name":"meta.function.coffee"},{"match":"[=-]>","name":"storage.type.function.coffee"},{"match":"\\b(?<!\\.|::)(true|on|yes)(?!\\s*[:=][^=])\\b","name":"constant.language.boolean.true.coffee"},{"match":"\\b(?<!\\.|::)(false|off|no)(?!\\s*[:=][^=])\\b","name":"constant.language.boolean.false.coffee"},{"match":"\\b(?<!\\.|::)null(?!\\s*[:=][^=])\\b","name":"constant.language.null.coffee"},{"match":"\\b(?<!\\.|::)extends(?!\\s*[:=])\\b","name":"variable.language.coffee"},{"match":"\\b(?<!\\.)this(?!\\s*[:=][^=])\\b","name":"variable.language.this.coffee"},{"captures":{"1":{"name":"storage.type.class.coffee"},"2":{"name":"keyword.control.inheritance.coffee"},"3":{"name":"entity.other.inherited-class.coffee"}},"match":"(?<=\\s|^|\\[|\\()(class)\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*)","name":"meta.class.coffee"},{"captures":{"1":{"name":"storage.type.class.coffee"},"2":{"name":"entity.name.type.class.coffee"},"3":{"name":"keyword.control.inheritance.coffee"},"4":{"name":"entity.other.inherited-class.coffee"}},"match":"(?<=\\s|^|\\[|\\()(class\\b)\\s+(@?[a-zA-Z\\$_][\\w\\.]*)?(?:\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*))?","name":"meta.class.coffee"},{"match":"\\b(debugger|\\\\)\\b","name":"keyword.other.coffee"},{"match":"(?x)\\b(\n\t\t\t\tArray|ArrayBuffer|Blob|Boolean|Date|document|Function|\n\t\t\t\tInt(8|16|32|64)Array|Math|Map|Number|\n\t\t\t\tObject|Proxy|RegExp|Set|String|WeakMap|\n\t\t\t\twindow|Uint(8|16|32|64)Array|XMLHttpRequest\n\t\t\t)\\b","name":"support.class.coffee"},{"match":"\\b(console)\\b","name":"entity.name.type.object.coffee"},{"match":"((?<=console\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\b","name":"support.function.console.coffee"},{"match":"(?x)\\b(\n\t\t\t\tdecodeURI(Component)?|encodeURI(Component)?|eval|parse(Float|Int)|require\n\t\t\t)\\b","name":"support.function.coffee"},{"match":"(?x)((?<=\\.)(\n\t\t\t\tapply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|\n\t\t\t\tisPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|\n\t\t\t\treduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|\n\t\t\t\tunshift|valueOf\n\t\t\t))\\b","name":"support.function.method.array.coffee"},{"match":"(?x)((?<=Array\\.)(\n\t\t\t\tisArray\n\t\t\t))\\b","name":"support.function.static.array.coffee"},{"match":"(?x)((?<=Object\\.)(\n\t\t\t\tcreate|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|\n\t\t\t\tgetProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|\n\t\t\t\tisnt|keys|preventExtensions|seal\n\t\t\t))\\b","name":"support.function.static.object.coffee"},{"match":"(?x)((?<=Math\\.)(\n\t\t\t\tabs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|\n\t\t\t\thypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|\n\t\t\t\ttan|tanh|trunc\n\t\t\t))\\b","name":"support.function.static.math.coffee"},{"match":"(?x)((?<=Number\\.)(\n\t\t\t\tis(Finite|Integer|NaN)|toInteger\n\t\t\t))\\b","name":"support.function.static.number.coffee"},{"match":"(?<!\\.)\\b(module|exports|__filename|__dirname|global|process)(?!\\s*:)\\b","name":"support.variable.coffee"},{"match":"\\b(Infinity|NaN|undefined)\\b","name":"constant.language.coffee"},{"match":"\\;","name":"punctuation.terminator.statement.coffee"},{"match":",[ |\\t]*","name":"meta.delimiter.object.comma.coffee"},{"match":"\\.","name":"meta.delimiter.method.period.coffee"},{"match":"\\{|\\}","name":"meta.brace.curly.coffee"},{"match":"\\(|\\)","name":"meta.brace.round.coffee"},{"match":"\\[|\\]\\s*","name":"meta.brace.square.coffee"},{"include":"#instance_variable"},{"include":"#single_quoted_string"},{"include":"#double_quoted_string"},{"include":"#numeric"}],"repository":{"double_quoted_string":{"patterns":[{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.coffee"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.coffee"}},"name":"string.quoted.double.coffee","patterns":[{"match":"\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)","name":"constant.character.escape.coffee"},{"include":"#interpolated_coffee"}]}]},"embedded_comment":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.coffee"}},"match":"(?<!\\\\)(#).*$\\n?","name":"comment.line.number-sign.coffee"}]},"instance_variable":{"patterns":[{"match":"(@)([a-zA-Z_\\$]\\w*)?","name":"variable.other.readwrite.instance.coffee"}]},"interpolated_coffee":{"patterns":[{"begin":"\\#\\{","captures":{"0":{"name":"punctuation.section.embedded.coffee"}},"end":"\\}","name":"source.coffee.embedded.source","patterns":[{"include":"$self"}]}]},"numeric":{"patterns":[{"match":"(?<!\\$)\\b((0([box])[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?(e[+\\-]?[0-9]+)?))\\b","name":"constant.numeric.coffee"}]},"single_quoted_string":{"patterns":[{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.coffee"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.coffee"}},"name":"string.quoted.single.coffee","patterns":[{"match":"\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)","name":"constant.character.escape.coffee"}]}]},"variable_name":{"patterns":[{"captures":{"1":{"name":"variable.assignment.coffee"}},"match":"([a-zA-Z\\$_]\\w*(\\.\\w+)*)","name":"variable.assignment.coffee"}]},"regex-character-class":{"patterns":[{"match":"\\\\[wWsSdD]|\\.","name":"constant.character.character-class.regexp"},{"match":"\\\\([0-7]{3}|x\\h\\h|u\\h\\h\\h\\h)","name":"constant.character.numeric.regexp"},{"match":"\\\\c[A-Z]","name":"constant.character.control.regexp"},{"match":"\\\\.","name":"constant.character.escape.backslash.regexp"}]},"heregexp":{"patterns":[{"match":"\\\\[bB]|\\^|\\$","name":"keyword.control.anchor.regexp"},{"match":"\\\\[1-9]\\d*","name":"keyword.other.back-reference.regexp"},{"match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??","name":"keyword.operator.quantifier.regexp"},{"match":"\\|","name":"keyword.operator.or.regexp"},{"begin":"(\\()((\\?=)|(\\?!))","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.assertion.regexp","patterns":[{"include":"#heregexp"}]},{"begin":"\\((\\?:)?","beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.regexp","patterns":[{"include":"#heregexp"}]},{"begin":"(\\[)(\\^)?","beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"end":"(\\])","endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}},"name":"constant.other.character-class.set.regexp","patterns":[{"captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}},"match":"(?:.|(\\\\(?:[0-7]{3}|x\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))","name":"constant.other.character-class.range.regexp"},{"include":"#regex-character-class"}]},{"include":"#regex-character-class"},{"include":"#interpolated_coffee"},{"include":"#embedded_comment"}]}}},"/Users/sadick/github/highlights/deps/language-css/grammars/css.cson":{"scopeName":"source.css","name":"CSS","fileTypes":["css","css.erb"],"patterns":[{"include":"#comment-block"},{"include":"#selector"},{"begin":"\\s*((@)charset\\b)\\s*","captures":{"1":{"name":"keyword.control.at-rule.charset.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"\\s*((?=;|$))","name":"meta.at-rule.charset.css","patterns":[{"include":"#string-double"},{"include":"#string-single"}]},{"begin":"\\s*((@)import\\b)\\s*","captures":{"1":{"name":"keyword.control.at-rule.import.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"\\s*((?=;|\\}))","name":"meta.at-rule.import.css","patterns":[{"include":"#string-double"},{"include":"#string-single"},{"begin":"\\s*(url)\\s*(\\()\\s*","beginCaptures":{"1":{"name":"support.function.url.css"},"2":{"name":"punctuation.section.function.css"}},"end":"\\s*(\\))\\s*","endCaptures":{"1":{"name":"punctuation.section.function.css"}},"patterns":[{"match":"[^'\") \\t]+","name":"variable.parameter.url.css"},{"include":"#string-single"},{"include":"#string-double"}]},{"include":"#media-query-list"}]},{"begin":"^\\s*((@)font-face)\\s*(?=\\{)","beginCaptures":{"1":{"name":"keyword.control.at-rule.font-face.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"(?!\\G)","name":"meta.at-rule.font-face.css","patterns":[{"include":"#rule-list"}]},{"begin":"(?=^\\s*@media(\\s+|$))","end":"\\s*(\\})","endCaptures":{"1":{"name":"punctuation.section.property-list.end.css"}},"patterns":[{"begin":"^\\s*((@)media)(\\s+|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.media.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"\\s*(?=\\{)","name":"meta.at-rule.media.css","patterns":[{"include":"#media-query-list"}]},{"begin":"\\s*(\\{)","beginCaptures":{"1":{"name":"punctuation.section.property-list.begin.css"}},"end":"(?=\\})","patterns":[{"include":"$self"}]}]},{"begin":"\\s*((@)page\\b)\\s*","captures":{"1":{"name":"keyword.control.at-rule.page.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"\\s*((?=[{:]|$))","name":"meta.at-rule.page.css","patterns":[{"include":"#rule-list"}]},{"begin":"\\s*((@)namespace\\b)\\s*(?=url)","captures":{"1":{"name":"keyword.control.at-rule.namespace.css"},"2":{"name":"punctuation.definition.keyword.css"},"3":{"name":"support.function.misc.css"}},"comment":"Namespace without prefix","end":"\\s*((?=;|$))","name":"meta.at-rule.namespace.css","patterns":[{"include":"#property-values"},{"include":"#string-double"},{"include":"#string-single"}]},{"begin":"\\s*((@)namespace) ([\\w-]*)\\s*","captures":{"1":{"name":"keyword.control.at-rule.namespace.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"comment":"Namespace","end":"\\s*((?=;|$))","name":"meta.at-rule.namespace.scss","patterns":[{"match":"\\s*(\\$[A-Za-z0-9_-]+\\b)\\s*","name":"variable.scss"},{"include":"#property-values"},{"include":"#string-double"},{"include":"#string-single"}]},{"begin":"(?=\\{)","end":"(?!\\G)","patterns":[{"include":"#rule-list"}]}],"repository":{"color-values":{"patterns":[{"comment":"http://www.w3.org/TR/CSS21/syndata.html#value-def-color","match":"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b","name":"support.constant.color.w3c-standard-color-name.css"},{"comment":"http://www.w3.org/TR/css3-color/#svg-color","match":"\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b","name":"support.constant.color.w3c-extended-color-name.css"},{"begin":"(hsla?|rgba?)\\s*(\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.css"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.function.css"}},"patterns":[{"match":"(?x)\\b\n\t\t\t\t\t\t\t    (0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\s*,\\s*){2}\n\t\t\t\t\t\t\t    (0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\b)\n\t\t\t\t\t\t\t    (\\s*,\\s*((0?\\.[0-9]+)|[0-1]))?\n\t\t\t\t\t\t\t","name":"constant.other.color.rgb-value.css"},{"match":"\\b([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%","name":"constant.other.color.rgb-percentage.css"},{"include":"#numeric-values"}]}]},"comment-block":{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.css"}},"end":"\\*/","name":"comment.block.css"},"media-query":{"begin":"(?i)\\s*(only|not)?\\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?","beginCaptures":{"1":{"name":"keyword.operator.logic.media.css"},"2":{"name":"support.constant.media.css"}},"end":"\\s*(?:(,)|(?=[{;]))","endCaptures":{"1":{"name":"punctuation.definition.arbitrary-repetition.css"}},"patterns":[{"begin":"\\s*(and)?\\s*(\\()\\s*","beginCaptures":{"1":{"name":"keyword.operator.logic.media.css"}},"end":"\\)","patterns":[{"begin":"(?x)\n\t                            (\n\t                                ((min|max)-)?\n\t                                (\n\t                                    ((device-)?(height|width|aspect-ratio))|\n\t                                    (color(-index)?)|monochrome|resolution\n\t                                )\n\t                            )|grid|scan|orientation\n\t                            \\s*(?=[:)])","beginCaptures":{"0":{"name":"support.type.property-name.media.css"}},"end":"(:)|(?=\\))","endCaptures":{"1":{"name":"punctuation.separator.key-value.css"}}},{"match":"\\b(portrait|landscape|progressive|interlace)","name":"support.constant.property-value.css"},{"captures":{"1":{"name":"constant.numeric.css"},"2":{"name":"keyword.operator.arithmetic.css"},"3":{"name":"constant.numeric.css"}},"match":"\\s*(\\d+)(/)(\\d+)"},{"include":"#numeric-values"}]}]},"media-query-list":{"begin":"\\s*(?=[^{;])","end":"\\s*(?=[{;])","patterns":[{"include":"#media-query"}]},"numeric-values":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.constant.css"}},"match":"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b","name":"constant.other.color.rgb-value.css"},{"captures":{"1":{"name":"keyword.other.unit.css"}},"match":"(?x)\n\t\t\t\t\t    (?:-|\\+)?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))\n\t\t\t\t\t    ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|s|turn|vh|vmax|vmin|vw)\\b|%)?\n\t\t\t\t\t","name":"constant.numeric.css"}]},"property-values":{"patterns":[{"begin":"(var)\\(","end":"\\)","captures":{"1":{"name":"support.function.misc.css"}},"patterns":[{"name":"variable.argument.css","match":"."}]},{"begin":"(calc|cubic-bezier|steps)\\(","end":"\\)","captures":{"1":{"name":"support.function.misc.css"}},"patterns":[{"include":"#property-values"}]},{"match":"\\b(absolute|all(-scroll)?|alternate-reverse|alternate|always|armenian|auto|avoid|backwards|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|ease-in-out|ease-in|ease-out|ease|e-resize|ellipsis|fixed|forwards|geometricPrecision|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|infinite|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|optimize(Legibility|Quality|Speed)|outset|outside|overline|pointer|pre(-(wrap|line))?|progress|relative|repeat-x|repeat-y|repeat|reverse|right|ridge|row-resize|rtl|running|s-resize|scroll|se-resize|separate|small-caps|solid|square|start|static|step-end|step-start|strict|sub|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical(-(ideographic|text))?|visible(Painted|Fill|Stroke)?|w-resize|wait|whitespace|zero|smaller|larger|((xx?-)?(small|large))|painted|paused|fill|end|stroke)\\b","name":"support.constant.property-value.css"},{"match":"(\\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\\b)","name":"support.constant.font-name.css"},{"include":"#numeric-values"},{"include":"#color-values"},{"include":"#string-double"},{"include":"#string-single"},{"begin":"(rect)\\s*(\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.css"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.function.css"}},"patterns":[{"include":"#numeric-values"}]},{"begin":"(format|local|url|attr|counter|counters)\\s*(\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.css"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.function.css"}},"patterns":[{"include":"#string-single"},{"include":"#string-double"},{"match":"[^'\") \\t]+","name":"variable.parameter.misc.css"}]},{"match":"\\!\\s*important","name":"keyword.other.important.css"}]},"rule-list":{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.css"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.css"}},"name":"meta.property-list.css","patterns":[{"include":"#comment-block"},{"begin":"(?<![-a-z])(?=[-a-z])","end":"$|(?![-a-z])","name":"meta.property-name.css","patterns":[{"match":"(?<![-a-z])(-webkit-[-A-Za-z]+|-moz-[-A-Za-z]+|-o-[-A-Za-z]+|-ms-[-A-Za-z]+|-khtml-[-A-Za-z]+|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resolution|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|grid-rows|grid-columns|grid|gap|font-weight|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-group|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation-fill-mode|animation|alignment-baseline|alignment-adjust|alignment|align-last|align|after|adjust|will-change)(?![-a-z])","name":"support.type.property-name.css"}]},{"begin":"(:)\\s*","beginCaptures":{"1":{"name":"punctuation.separator.key-value.css"}},"end":"\\s*(;|(?=\\}))","endCaptures":{"1":{"name":"punctuation.terminator.rule.css"}},"name":"meta.property-value.css","patterns":[{"include":"#property-values"}]}]},"selector":{"begin":"\\s*(?=[:.*#a-zA-Z])","end":"(?=[/@{)])","name":"meta.selector.css","patterns":[{"match":"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)\\b","name":"entity.name.tag.css"},{"match":"\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-child()|nth-last-child()|nth-of-type()|nth-last-of-type()|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid|:shadow)(\\([0-9A-Za-z]*\\))?)","name":"entity.name.tag.custom.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(\\.)[a-zA-Z0-9_-]+","name":"entity.other.attribute-name.class.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(#)[a-zA-Z][a-zA-Z0-9_-]*","name":"entity.other.attribute-name.id.css"},{"match":"\\*","name":"entity.name.tag.wildcard.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(:+)(after|before|first-letter|first-line|selection)\\b","name":"entity.other.attribute-name.pseudo-element.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b","name":"entity.other.attribute-name.pseudo-class.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b","name":"entity.other.attribute-name.pseudo-class.ui-state.css"},{"begin":"((:)not)(\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.css"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.section.function.css"}},"patterns":[{"include":"#selector"}]},{"captures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.css"},"4":{"name":"constant.numeric.css"},"5":{"name":"punctuation.section.function.css"}},"match":"((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(:)(active|hover|link|visited|focus)\\b","name":"entity.other.attribute-name.pseudo-class.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(::)(shadow)\\b","name":"entity.other.attribute-name.pseudo-class.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"name":"entity.other.attribute-name.attribute.css"},"3":{"name":"punctuation.separator.operator.css"},"4":{"name":"string.unquoted.attribute-value.css"},"5":{"name":"string.quoted.double.attribute-value.css"},"6":{"name":"punctuation.definition.string.begin.css"},"7":{"name":"punctuation.definition.string.end.css"}},"match":"(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])","name":"meta.attribute-selector.css"}]},"string-double":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"match":"\\\\([a-fA-F0-9]{1,6}|.)","name":"constant.character.escape.css"}]},"string-single":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.single.css","patterns":[{"match":"\\\\([a-fA-F0-9]{1,6}|.)","name":"constant.character.escape.css"}]}}},"/Users/sadick/github/highlights/deps/language-gfm/grammars/gfm.cson":{"name":"GitHub Markdown","scopeName":"source.gfm","fileTypes":["markdown","md","mdown","mkd","mkdown","rmd","ron"],"patterns":[{"begin":"(?<=^|[^\\w\\d\\*])\\*\\*\\*(?!$|\\*|\\s)","end":"(?<!^|\\s)\\*\\*\\**\\*(?=$|[^\\w|\\d])","name":"markup.bold.italic.gfm"},{"begin":"(?<=^|[^\\w\\d_])___(?!$|_|\\s)","end":"(?<!^|\\s)___*_(?=$|[^\\w|\\d])","name":"markup.bold.italic.gfm"},{"begin":"(?<=^|[^\\w\\d\\*])\\*\\*(?!$|\\*|\\s)","end":"(?<!^|\\s)\\*\\**\\*(?=$|[^\\w|\\d])","name":"markup.bold.gfm"},{"begin":"(?<=^|[^\\w\\d_])__(?!$|_|\\s)","end":"(?<!^|\\s)__*_(?=$|[^\\w|\\d])","name":"markup.bold.gfm"},{"begin":"(?<=^|[^\\w\\d\\*])\\*(?!$|\\*|\\s)","end":"(?<!^|\\s)\\**\\*(?=$|[^\\w|\\d])","name":"markup.italic.gfm"},{"begin":"(?<=^|[^\\w\\d_\\{\\}])_(?!$|_|\\s)","end":"(?<!^|\\s)_*_(?=$|[^\\w|\\d])","name":"markup.italic.gfm"},{"begin":"(?<=^|[^\\w\\d~])~~(?!$|~|\\s)","end":"(?<!^|\\s)~~*~(?=$|[^\\w|\\d])","name":"markup.strike.gfm"},{"begin":"^#{1}\\s+","end":"$","name":"markup.heading.heading-1.gfm","patterns":[{"include":"$self"}]},{"begin":"^#{2}\\s+","end":"$","name":"markup.heading.heading-2.gfm","patterns":[{"include":"$self"}]},{"begin":"^#{3}\\s+","end":"$","name":"markup.heading.heading-3.gfm","patterns":[{"include":"$self"}]},{"begin":"^#{4}\\s+","end":"$","name":"markup.heading.heading-4.gfm","patterns":[{"include":"$self"}]},{"begin":"^#{5}\\s+","end":"$","name":"markup.heading.heading-5.gfm","patterns":[{"include":"$self"}]},{"begin":"^#{6}\\s+","end":"$","name":"markup.heading.heading-6.gfm","patterns":[{"include":"$self"}]},{"match":"(:)(\\+1|\\-1|100|1234|8ball|a|ab|abc|abcd|accept|aerial_tramway|airplane|alarm_clock|alien|ambulance|anchor|angel|anger|angry|anguished|ant|apple|aquarius|aries|arrow_backward|arrow_double_down|arrow_double_up|arrow_down|arrow_down_small|arrow_forward|arrow_heading_down|arrow_heading_up|arrow_left|arrow_lower_left|arrow_lower_right|arrow_right|arrow_right_hook|arrow_up|arrow_up_down|arrow_up_small|arrow_upper_left|arrow_upper_right|arrows_clockwise|arrows_counterclockwise|art|articulated_lorry|astonished|atm|b|baby|baby_bottle|baby_chick|baby_symbol|back|baggage_claim|balloon|ballot_box_with_check|bamboo|banana|bangbang|bank|bar_chart|barber|baseball|basketball|bath|bathtub|battery|bear|bee|beer|beers|beetle|beginner|bell|bento|bicyclist|bike|bikini|bird|birthday|black_circle|black_joker|black_medium_small_square|black_medium_square|black_nib|black_small_square|black_square|black_square_button|blossom|blowfish|blue_book|blue_car|blue_heart|blush|boar|boat|bomb|book|bookmark|bookmark_tabs|books|boom|boot|bouquet|bow|bowling|bowtie|boy|bread|bride_with_veil|bridge_at_night|briefcase|broken_heart|bug|bulb|bullettrain_front|bullettrain_side|bus|busstop|bust_in_silhouette|busts_in_silhouette|cactus|cake|calendar|calling|camel|camera|cancer|candy|capital_abcd|capricorn|car|card_index|carousel_horse|cat|cat2|cd|chart|chart_with_downwards_trend|chart_with_upwards_trend|checkered_flag|cherries|cherry_blossom|chestnut|chicken|children_crossing|chocolate_bar|christmas_tree|church|cinema|circus_tent|city_sunrise|city_sunset|cl|clap|clapper|clipboard|clock1|clock10|clock1030|clock11|clock1130|clock12|clock1230|clock130|clock2|clock230|clock3|clock330|clock4|clock430|clock5|clock530|clock6|clock630|clock7|clock730|clock8|clock830|clock9|clock930|closed_book|closed_lock_with_key|closed_umbrella|cloud|clubs|cn|cocktail|coffee|cold_sweat|collision|computer|confetti_ball|confounded|confused|congratulations|construction|construction_worker|convenience_store|cookie|cool|cop|copyright|corn|couple|couple_with_heart|couplekiss|cow|cow2|credit_card|crocodile|crossed_flags|crown|cry|crying_cat_face|crystal_ball|cupid|curly_loop|currency_exchange|curry|custard|customs|cyclone|dancer|dancers|dango|dart|dash|date|de|deciduous_tree|department_store|diamond_shape_with_a_dot_inside|diamonds|disappointed|disappointed_relieved|dizzy|dizzy_face|do_not_litter|dog|dog2|dollar|dolls|dolphin|donut|door|doughnut|dragon|dragon_face|dress|dromedary_camel|droplet|dvd|e\\-mail|ear|ear_of_rice|earth_africa|earth_americas|earth_asia|egg|eggplant|eight|eight_pointed_black_star|eight_spoked_asterisk|electric_plug|elephant|email|end|envelope|es|euro|european_castle|european_post_office|evergreen_tree|exclamation|expressionless|eyeglasses|eyes|facepunch|factory|fallen_leaf|family|fast_forward|fax|fearful|feelsgood|feet|ferris_wheel|file_folder|finnadie|fire|fire_engine|fireworks|first_quarter_moon|first_quarter_moon_with_face|fish|fish_cake|fishing_pole_and_fish|fist|five|flags|flashlight|floppy_disk|flower_playing_cards|flushed|foggy|football|fork_and_knife|fountain|four|four_leaf_clover|fr|free|fried_shrimp|fries|frog|frowning|fu|fuelpump|full_moon|full_moon_with_face|game_die|gb|gem|gemini|ghost|gift|gift_heart|girl|globe_with_meridians|goat|goberserk|godmode|golf|grapes|green_apple|green_book|green_heart|grey_exclamation|grey_question|grimacing|grin|grinning|guardsman|guitar|gun|haircut|hamburger|hammer|hamster|hand|handbag|hankey|hash|hatched_chick|hatching_chick|headphones|hear_no_evil|heart|heart_decoration|heart_eyes|heart_eyes_cat|heartbeat|heartpulse|hearts|heavy_check_mark|heavy_division_sign|heavy_dollar_sign|heavy_exclamation_mark|heavy_minus_sign|heavy_multiplication_x|heavy_plus_sign|helicopter|herb|hibiscus|high_brightness|high_heel|hocho|honey_pot|honeybee|horse|horse_racing|hospital|hotel|hotsprings|hourglass|hourglass_flowing_sand|house|house_with_garden|hurtrealbad|hushed|ice_cream|icecream|id|ideograph_advantage|imp|inbox_tray|incoming_envelope|information_desk_person|information_source|innocent|interrobang|iphone|it|izakaya_lantern|jack_o_lantern|japan|japanese_castle|japanese_goblin|japanese_ogre|jeans|joy|joy_cat|jp|key|keycap_ten|kimono|kiss|kissing|kissing_cat|kissing_closed_eyes|kissing_face|kissing_heart|kissing_smiling_eyes|koala|koko|kr|large_blue_circle|large_blue_diamond|large_orange_diamond|last_quarter_moon|last_quarter_moon_with_face|laughing|leaves|ledger|left_luggage|left_right_arrow|leftwards_arrow_with_hook|lemon|leo|leopard|libra|light_rail|link|lips|lipstick|lock|lock_with_ink_pen|lollipop|loop|loudspeaker|love_hotel|love_letter|low_brightness|m|mag|mag_right|mahjong|mailbox|mailbox_closed|mailbox_with_mail|mailbox_with_no_mail|man|man_with_gua_pi_mao|man_with_turban|mans_shoe|maple_leaf|mask|massage|meat_on_bone|mega|melon|memo|mens|metal|metro|microphone|microscope|milky_way|minibus|minidisc|mobile_phone_off|money_with_wings|moneybag|monkey|monkey_face|monorail|moon|mortar_board|mount_fuji|mountain_bicyclist|mountain_cableway|mountain_railway|mouse|mouse2|movie_camera|moyai|muscle|mushroom|musical_keyboard|musical_note|musical_score|mute|nail_care|name_badge|neckbeard|necktie|negative_squared_cross_mark|neutral_face|new|new_moon|new_moon_with_face|newspaper|ng|nine|no_bell|no_bicycles|no_entry|no_entry_sign|no_good|no_mobile_phones|no_mouth|no_pedestrians|no_smoking|non\\-potable_water|nose|notebook|notebook_with_decorative_cover|notes|nut_and_bolt|o|o2|ocean|octocat|octopus|oden|office|ok|ok_hand|ok_woman|older_man|older_woman|on|oncoming_automobile|oncoming_bus|oncoming_police_car|oncoming_taxi|one|open_file_folder|open_hands|open_mouth|ophiuchus|orange_book|outbox_tray|ox|package|page_facing_up|page_with_curl|pager|palm_tree|panda_face|paperclip|parking|part_alternation_mark|partly_sunny|passport_control|paw_prints|peach|pear|pencil|pencil2|penguin|pensive|performing_arts|persevere|person_frowning|person_with_blond_hair|person_with_pouting_face|phone|pig|pig2|pig_nose|pill|pineapple|pisces|pizza|plus1|point_down|point_left|point_right|point_up|point_up_2|police_car|poodle|poop|post_office|postal_horn|postbox|potable_water|pouch|poultry_leg|pound|pouting_cat|pray|princess|punch|purple_heart|purse|pushpin|put_litter_in_its_place|question|rabbit|rabbit2|racehorse|radio|radio_button|rage|rage1|rage2|rage3|rage4|railway_car|rainbow|raised_hand|raised_hands|raising_hand|ram|ramen|rat|recycle|red_car|red_circle|registered|relaxed|relieved|repeat|repeat_one|restroom|revolving_hearts|rewind|ribbon|rice|rice_ball|rice_cracker|rice_scene|ring|rocket|roller_coaster|rooster|rose|rotating_light|round_pushpin|rowboat|ru|rugby_football|runner|running|running_shirt_with_sash|sa|sagittarius|sailboat|sake|sandal|santa|satellite|satisfied|saxophone|school|school_satchel|scissors|scorpius|scream|scream_cat|scroll|seat|secret|see_no_evil|seedling|seven|shaved_ice|sheep|shell|ship|shipit|shirt|shit|shoe|shower|signal_strength|six|six_pointed_star|ski|skull|sleeping|sleepy|slot_machine|small_blue_diamond|small_orange_diamond|small_red_triangle|small_red_triangle_down|smile|smile_cat|smiley|smiley_cat|smiling_imp|smirk|smirk_cat|smoking|snail|snake|snowboarder|snowflake|snowman|sob|soccer|soon|sos|sound|space_invader|spades|spaghetti|sparkle|sparkler|sparkles|sparkling_heart|speak_no_evil|speaker|speech_balloon|speedboat|squirrel|star|star2|stars|station|statue_of_liberty|steam_locomotive|stew|straight_ruler|strawberry|stuck_out_tongue|stuck_out_tongue_closed_eyes|stuck_out_tongue_winking_eye|sun_with_face|sunflower|sunglasses|sunny|sunrise|sunrise_over_mountains|surfer|sushi|suspect|suspension_railway|sweat|sweat_drops|sweat_smile|sweet_potato|swimmer|symbols|syringe|tada|tanabata_tree|tangerine|taurus|taxi|tea|telephone|telephone_receiver|telescope|tennis|tent|thought_balloon|three|thumbsdown|thumbsup|ticket|tiger|tiger2|tired_face|tm|toilet|tokyo_tower|tomato|tongue|top|tophat|tractor|traffic_light|train|train2|tram|triangular_flag_on_post|triangular_ruler|trident|triumph|trolleybus|trollface|trophy|tropical_drink|tropical_fish|truck|trumpet|tshirt|tulip|turtle|tv|twisted_rightwards_arrows|two|two_hearts|two_men_holding_hands|two_women_holding_hands|u5272|u5408|u55b6|u6307|u6708|u6709|u6e80|u7121|u7533|u7981|u7a7a|uk|umbrella|unamused|underage|unlock|up|us|v|vertical_traffic_light|vhs|vibration_mode|video_camera|video_game|violin|virgo|volcano|vs|walking|waning_crescent_moon|waning_gibbous_moon|warning|watch|water_buffalo|watermelon|wave|wavy_dash|waxing_crescent_moon|waxing_gibbous_moon|wc|weary|wedding|whale|whale2|wheelchair|white_check_mark|white_circle|white_flower|white_large_square|white_medium_small_square|white_medium_square|white_small_square|white_square_button|wind_chime|wine_glass|wink|wolf|woman|womans_clothes|womans_hat|womens|worried|wrench|x|yellow_heart|yen|yum|zap|zero|zzz)(:)","name":"string.emoji.gfm","captures":{"1":{"name":"string.emoji.start.gfm"},"2":{"name":"string.emoji.word.gfm"},"3":{"name":"string.emoji.end.gfm"}}},{"match":"(&)[a-zA-Z0-9]+(;)","name":"constant.character.entity.gfm","captures":{"1":{"name":"punctuation.definition.entity.gfm"},"2":{"name":"punctuation.definition.entity.gfm"}}},{"match":"(&)#[0-9]+(;)","name":"constant.character.entity.gfm","captures":{"1":{"name":"punctuation.definition.entity.gfm"},"2":{"name":"punctuation.definition.entity.gfm"}}},{"match":"(&)#x[0-9a-fA-F]+(;)","name":"constant.character.entity.gfm","captures":{"1":{"name":"punctuation.definition.entity.gfm"},"2":{"name":"punctuation.definition.entity.gfm"}}},{"begin":"\\A---$","end":"^(---|\\.\\.\\.)$","captures":{"0":{"name":"comment.hr.gfm"}},"name":"front-matter.yaml.gfm","patterns":[{"include":"source.yaml"}]},{"match":"^\\s*[*]{3,}\\s*$","name":"comment.hr.gfm"},{"match":"^\\s*[-]{3,}\\s*$","name":"comment.hr.gfm"},{"begin":"^\\s*[`~]{3,}\\s*coffee-?(script)?\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*[`~]{3,}$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.coffee.gfm","contentName":"source.coffee","patterns":[{"include":"source.coffee"}]},{"begin":"^\\s*([`~]{3,})\\s*(javascript|js)\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.js.gfm","contentName":"source.js","patterns":[{"include":"source.js"}]},{"begin":"^\\s*([`~]{3,})\\s*(markdown|mdown|md)\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.gfm","patterns":[{"include":"$self"}]},{"begin":"^\\s*([`~]{3,})\\s*json\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.json.gfm","contentName":"source.json","patterns":[{"include":"source.json"}]},{"begin":"^\\s*([`~]{3,})\\s*css\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.css.gfm","contentName":"source.css","patterns":[{"include":"source.css"}]},{"begin":"^\\s*([`~]{3,})\\s*less\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.less.gfm","contentName":"source.css.less","patterns":[{"include":"source.css.less"}]},{"begin":"^\\s*([`~]{3,})\\s*xml\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.xml.gfm","contentName":"text.xml","patterns":[{"include":"text.xml"}]},{"begin":"^\\s*([`~]{3,})\\s*(ruby|rb)\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.ruby.gfm","contentName":"source.ruby","patterns":[{"include":"source.ruby"}]},{"begin":"^\\s*([`~]{3,})\\s*java\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.java.gfm","contentName":"source.java","patterns":[{"include":"source.java"}]},{"begin":"^\\s*([`~]{3,})\\s*erlang\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.erlang.gfm","contentName":"source.erlang","patterns":[{"include":"source.erlang"}]},{"begin":"^\\s*([`~]{3,})\\s*go(lang)?\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.go.gfm","contentName":"source.go","patterns":[{"include":"source.go"}]},{"begin":"^\\s*([`~]{3,})\\s*cs(harp)?\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.cs.gfm","contentName":"source.cs","patterns":[{"include":"source.cs"}]},{"begin":"^\\s*([`~]{3,})\\s*php\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.php.gfm","contentName":"source.php","patterns":[{"include":"source.php"}]},{"begin":"^\\s*([`~]{3,})\\s*(sh|bash)\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.shell.gfm","contentName":"source.shell","patterns":[{"include":"source.shell"}]},{"begin":"^\\s*([`~]{3,})\\s*py(thon)?\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.python.gfm","contentName":"source.python","patterns":[{"include":"source.python"}]},{"begin":"^\\s*([`~]{3,})\\s*c\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.c.gfm","contentName":"source.c","patterns":[{"include":"source.c"}]},{"begin":"^\\s*([`~]{3,})\\s*c(pp|\\+\\+)\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.cpp.gfm","contentName":"source.cpp","patterns":[{"include":"source.cpp"},{"include":"source.c++"}]},{"begin":"^\\s*([`~]{3,})\\s*(objc|objective-c)\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.objc.gfm","contentName":"source.objc","patterns":[{"include":"source.objc"}]},{"begin":"^\\s*([`~]{3,})\\s*html\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.html.gfm","contentName":"source.html.basic","patterns":[{"include":"text.html.basic"}]},{"begin":"^\\s*([`~]{3,})\\s*ya?ml\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.yaml.gfm","contentName":"source.yaml","patterns":[{"include":"source.yaml"}]},{"begin":"^\\s*([`~]{3,})\\s*elixir\\s*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.code.elixir.gfm","contentName":"source.elixir","patterns":[{"include":"source.elixir"}]},{"begin":"^\\s*([`~]{3,}).*$","beginCaptures":{"0":{"name":"support.gfm"}},"end":"^\\s*\\1$","endCaptures":{"0":{"name":"support.gfm"}},"name":"markup.raw.gfm"},{"begin":"(`+)(?!$)","end":"\\1","name":"markup.raw.gfm"},{"match":"(\\[!)(\\[)([^\\]]*)(\\])((\\()[^\\)]+(\\)))(\\])(((\\()[^\\)]+(\\)))|((\\[)[^\\]]+(\\])))","name":"link","captures":{"1":{"name":"punctuation.definition.begin.gfm"},"2":{"name":"punctuation.definition.begin.gfm"},"3":{"name":"entity.gfm"},"4":{"name":"punctuation.definition.end.gfm"},"5":{"name":"markup.underline.link.gfm"},"6":{"name":"punctuation.definition.begin.gfm"},"7":{"name":"punctuation.definition.end.gfm"},"8":{"name":"punctuation.definition.end.gfm"},"10":{"name":"markup.underline.link.gfm"},"11":{"name":"punctuation.definition.begin.gfm"},"12":{"name":"punctuation.definition.end.gfm"},"13":{"name":"markup.underline.link.gfm"},"14":{"name":"punctuation.definition.begin.gfm"},"15":{"name":"punctuation.definition.end.gfm"}}},{"match":"(\\[!)(\\[)([^\\]]*)(\\])((\\[)[^\\)]+(\\]))(\\])(((\\()[^\\)]+(\\)))|((\\[)[^\\]]+(\\])))","name":"link","captures":{"1":{"name":"punctuation.definition.begin.gfm"},"2":{"name":"punctuation.definition.begin.gfm"},"3":{"name":"entity.gfm"},"4":{"name":"punctuation.definition.end.gfm"},"5":{"name":"markup.underline.link.gfm"},"6":{"name":"punctuation.definition.begin.gfm"},"7":{"name":"punctuation.definition.end.gfm"},"8":{"name":"punctuation.definition.end.gfm"},"10":{"name":"markup.underline.link.gfm"},"11":{"name":"punctuation.definition.begin.gfm"},"12":{"name":"punctuation.definition.end.gfm"},"13":{"name":"markup.underline.link.gfm"},"14":{"name":"punctuation.definition.begin.gfm"},"15":{"name":"punctuation.definition.end.gfm"}}},{"match":"!?(\\[)([^\\]]*)(\\])((\\()[^\\)]+(\\)))","name":"link","captures":{"1":{"name":"punctuation.definition.begin.gfm"},"2":{"name":"entity.gfm"},"3":{"name":"punctuation.definition.end.gfm"},"4":{"name":"markup.underline.link.gfm"},"5":{"name":"punctuation.definition.begin.gfm"},"6":{"name":"punctuation.definition.end.gfm"}}},{"match":"!?(\\[)([^\\]]*)(\\])((\\[)[^\\]]*(\\]))","name":"link","captures":{"1":{"name":"punctuation.definition.begin.gfm"},"2":{"name":"entity.gfm"},"3":{"name":"punctuation.definition.end.gfm"},"4":{"name":"markup.underline.link.gfm"},"5":{"name":"punctuation.definition.begin.gfm"},"6":{"name":"punctuation.definition.end.gfm"}}},{"match":"^\\s*(\\[)([^\\]]+)(\\])\\s*:\\s*<([^>]+)>","name":"link","captures":{"1":{"name":"punctuation.definition.begin.gfm"},"2":{"name":"entity.gfm"},"3":{"name":"punctuation.definition.end.gfm"},"4":{"name":"markup.underline.link.gfm"}}},{"match":"^\\s*(\\[)([^\\]]+)(\\])\\s*(:)\\s*(\\S+)","name":"link","captures":{"1":{"name":"punctuation.definition.begin.gfm"},"2":{"name":"entity.gfm"},"3":{"name":"punctuation.definition.end.gfm"},"4":{"name":"punctuation.separator.key-value.gfm"},"5":{"name":"markup.underline.link.gfm"}}},{"match":"^\\s*([*+-])[ \\t]+","captures":{"1":{"name":"variable.unordered.list.gfm"}}},{"match":"^\\s*(\\d+\\.)[ \\t]+","captures":{"1":{"name":"variable.ordered.list.gfm"}}},{"begin":"^\\s*(>)","end":"^\\s*?$","beginCaptures":{"1":{"name":"support.quote.gfm"}},"name":"comment.quote.gfm","patterns":[{"include":"$self"}]},{"match":"(?<=^|\\s|\"|'|\\(|\\[)(@)(\\w[-\\w:]*)(?=[\\s\"'.,;\\)\\]])","captures":{"1":{"name":"variable.mention.gfm"},"2":{"name":"string.username.gfm"}}},{"match":"(?<=^|\\s|\"|'|\\(|\\[)(#)(\\d+)(?=[\\s\"'\\.,;\\)\\]])","captures":{"1":{"name":"variable.issue.tag.gfm"},"2":{"name":"string.issue.number.gfm"}}},{"match":"(  )$","captures":{"1":{"name":"linebreak.gfm"}}},{"begin":"<!--","captures":{"0":{"name":"punctuation.definition.comment.gfm"}},"end":"--\\s*>","name":"comment.block.gfm"}]},"/Users/sadick/github/highlights/deps/language-git/grammars/git commit message.cson":{"fileTypes":["COMMIT_EDITMSG","MERGE_MSG"],"foldingStartMarker":"^\\+\\+\\+","foldingStopMarker":"^---","name":"Git Commit Message","patterns":[{"begin":"\\A(?!#)","end":"(?=# Please enter the commit message)","name":"meta.scope.message.git-commit","patterns":[{"begin":"\\G","end":"^(?!\\G)","patterns":[{"captures":{"1":{"name":"keyword.other.$2.git-commit"}},"match":"\\G((fixup|squash)!)\\s*"},{"match":".{66,}$","name":"invalid.illegal.line-too-long.git-commit"},{"match":".{51,}$","name":"invalid.deprecated.line-too-long.git-commit"}]}]},{"begin":"(?=# Please enter the commit message)","end":"\\z","name":"meta.scope.metadata.git-commit","patterns":[{"include":"#metadata"}]}],"repository":{"metadata":{"patterns":[{"begin":"(?=^# Changes to be committed:)","end":"(?!\\G)((?=^# \\w)|(?!^#))","patterns":[{"begin":"(^[ \\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.git-commit"}},"contentName":"comment.line.number-sign.git-commit","end":"(?!\\G)^","patterns":[{"match":"\\G#","name":"punctuation.definition.comment.git-commit"},{"match":"((modified|renamed):.*)$\\n?","name":"markup.changed.git-commit"},{"match":"(new file:.*)$\\n?","name":"markup.inserted.git-commit"},{"match":"(deleted:.*)$\\n?","name":"markup.deleted.git-commit"}]}]},{"begin":"(^[ \\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.git-commit"}},"contentName":"comment.line.number-sign.git-commit","end":"(?!\\G)^","patterns":[{"match":"\\G#","name":"punctuation.definition.comment.git-commit"}]},{"begin":"(?=diff\\ \\-\\-git)","comment":"diff presented at the end of the commit message when using commit -v.","contentName":"source.diff","end":"\\z","name":"meta.embedded.diff.git-commit","patterns":[{"include":"source.diff"}]}]}},"scopeName":"text.git-commit"},"/Users/sadick/github/highlights/deps/language-git/grammars/git config.cson":{"fileTypes":[".git/config",".gitconfig","etc/gitconfig",".gitmodules"],"name":"Git Config","patterns":[{"include":"#section"},{"include":"#comment"}],"repository":{"boolean":{"match":"\\b(?i:yes|no|0|1|true|false)\\b","name":"constant.language.boolean.git-config"},"comment":{"captures":{"1":{"name":"comment.line.number-sign.git-config"},"2":{"name":"punctuation.definition.comment.git-config"},"3":{"name":"comment.line.semi-colon.git-config"},"4":{"name":"punctuation.definition.comment.git-config"}},"match":"((#).*$\\n?)|((;).*$\\n?)"},"section":{"begin":"\\[\\s*([\\w_-]+)(?:\\s+((\")(?:[^\"\\\\]|\\\\[\"\\\\])*(\"))|\\.([\\w_-]+))?\\s*\\]","captures":{"1":{"name":"entity.name.section.git-config"},"2":{"name":"entity.name.section.subsection.git-config"},"3":{"name":"punctuation.definition.section.subsection.begin.git-config"},"4":{"name":"punctuation.definition.section.subsection.end.git-config"},"5":{"name":"entity.name.section.subsection.git-config"}},"end":"(?=\\[)","name":"meta.section.git-config","patterns":[{"include":"#value_pair"},{"include":"#comment"}]},"string":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.git-config"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.git-config"}},"name":"string.quoted.double.git-config","patterns":[{"match":"\\\\[ntb\"\\\\]","name":"constant.character.escape.git-config"},{"match":"\\\\.","name":"invalid.illegal.unknown-escape.git-config"}]},"value_pair":{"begin":"([-\\w]+)\\s*(=)\\s*(?!$)","captures":{"1":{"name":"support.constant.git-config"},"2":{"name":"punctuation.separator.key-value.git-config"}},"end":"$|(?=[#;])","name":"meta.value-pair.section-item.git-config","patterns":[{"include":"#boolean"},{"include":"#string"},{"include":"#comment"}]}},"scopeName":"source.git-config"},"/Users/sadick/github/highlights/deps/language-git/grammars/git rebase message.cson":{"fileTypes":["git-rebase-todo"],"name":"Git Rebase Message","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.git-rebase"}},"match":"^\\s*(#).*$\\n?","name":"comment.line.number-sign.git-rebase"},{"captures":{"1":{"name":"support.function.git-rebase"},"2":{"name":"constant.sha.git-rebase"},"3":{"name":"meta.commit-message.git-rebase"}},"match":"^\\s*(pick|p|reword|r|edit|e|squash|s|fixup|f)\\s+([0-9a-f]+)\\s+(.*)$","name":"meta.commit-command.git-rebase"}],"scopeName":"text.git-rebase"},"/Users/sadick/github/highlights/deps/language-go/grammars/go.cson":{"scopeName":"source.go","name":"Go","comment":"Go language","fileTypes":["go"],"foldingStartMarker":"({|\\()\\s*$","foldingStopMarker":"(}|\\))\\s*$","patterns":[{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.go"}},"end":"\\*/","name":"comment.block.go"},{"captures":{"1":{"name":"punctuation.definition.comment.go"}},"match":"(//).*$\\n?","name":"comment.line.double-slash.go"},{"captures":{"1":{"name":"invalid.illegal.go"}},"match":"\\[\\](\\s+)"},{"captures":{"1":{"name":"invalid.illegal.go"}},"match":"\\bchan([\\t ]+)<-"},{"captures":{"1":{"name":"invalid.illegal.go"}},"match":"<\\-([\\t ]+)chan\\b"},{"name":"invalid.illegal.go","match":"[\\t ]+$"},{"captures":{"1":{"name":"keyword.go"},"4":{"name":"support.function.decl.go"}},"match":"^(func)(\\s+(\\([^\\)]+\\)\\s+)?([\\w_][\\w_\\d]*)(?=\\())?"},{"comment":"Short declarations","match":"([\\w_][\\w\\d_]*)(?=\\s*:=)","captures":{"1":{"name":"variable.go"}}},{"match":"^(type)\\s+([\\w_][\\w\\d_]*)\\s+","captures":{"1":{"name":"keyword.go"},"2":{"name":"storage.type.go"}}},{"name":"storage.type.go","match":"\\bfunc\\b"},{"name":"storage.type.go","match":"\\b(chan|map|bool|string|error|int|int8|int16|int32|int64|rune|byte|uint|uint8|uint16|uint32|uint64|uintptr|float32|float64|complex64|complex128)\\b"},{"name":"support.function.go","match":"([\\w_][\\w\\d_]*)(?=\\()"},{"name":"invalid.illegal.numeric.go","match":"\\b0[0-7]*[89]\\d*\\b"},{"name":"constant.numeric.go","match":"(\\.\\d+([Ee][-+]\\d+)?i?)\\b"},{"name":"constant.numeric.go","match":"\\b\\d+\\.\\d*(([Ee][-+]\\d+)?i?\\b)?"},{"name":"constant.numeric.go","match":"\\b((0x[0-9a-fA-F]+)|(0[0-7]+i?)|(\\d+([Ee]\\d+)?i?)|(\\d+[Ee][-+]\\d+i?))\\b"},{"name":"keyword.go","match":"\\b(var|const|type|struct|interface|case|default)\\b"},{"name":"keyword.directive.go","match":"\\b(package|import)\\b"},{"name":"keyword.statement.go","match":"\\b(defer|go|goto|return|break|continue|fallthrough)\\b"},{"name":"keyword.conditional.go","match":"\\b(if|else|switch|select)\\b"},{"name":"keyword.repeat.go","match":"\\b(for|range)\\b"},{"name":"constant.language.go","match":"\\b(iota|true|false|nil)\\b"},{"include":"#string_escaped_char"},{"include":"#strings"},{"include":"#operators"},{"name":"support.function.built-in.go","match":"\\b(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)\\b"},{"match":"\\b[\\w_][\\w\\d_]*\\b","name":"variable.go"}],"repository":{"string_escaped_char":{"patterns":[{"match":"\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})","name":"constant.character.escape.go"},{"match":"\\\\[^0-7xuUabfnrtv\\'\"]","name":"invalid.illegal.unknown-escape.go"}]},"operators":{"patterns":[{"name":"keyword.operator.go","match":"(\\+|&|\\+=|&=|&&|==|!=|\\-|\\||\\-=|\\|=|\\|\\||<|<=|\\*|\\^|\\*=|\\^=|<\\-|>|>=|/|<<|/=|<<=|\\+\\+|=|:=|;|%|>>|%=|>>=|\\-\\-|!|\\.\\.\\.|:|&\\^|&\\^=)"},{"name":"keyword.operator.bracket.go","match":"(\\(|\\)|\\[|\\]|\\{|\\})"},{"name":"keyword.operator.punctuation.go","match":"(\\.|,)"}]},"printf_verbs":{"patterns":[{"match":"%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]","name":"constant.escape.format-verb.go"}]},"strings":{"patterns":[{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.go"}},"name":"string.quoted.double.go","patterns":[{"include":"#string_escaped_char"},{"include":"#printf_verbs"}]},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"end":"((?<=`)(`)|`)","endCaptures":{"1":{"name":"punctuation.definition.string.end.go"},"2":{"name":"meta.empty-string.double.go"}},"name":"string.quoted.double.raw.backtick.go","patterns":[{"include":"source.gotemplate"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.go"}},"name":"string.quoted.single.go","patterns":[{"include":"#string_escaped_char"}]}]}}},"/Users/sadick/github/highlights/deps/language-go/grammars/gohtml.cson":{"scopeName":"text.html.gohtml","name":"HTML (Go)","fileTypes":["gohtml"],"patterns":[{"include":"text.html.basic"},{"include":"source.gotemplate"}]},"/Users/sadick/github/highlights/deps/language-go/grammars/gotemplate.cson":{"scopeName":"source.gotemplate","name":"Go Template","foldingStartMarker":"\\{\\{\\s*(?:if|with|range)\\b","foldingStopMarker":"\\{\\{\\s*(?:else|end)\\b","patterns":[{"begin":"\\{\\{","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.gotemplate"}},"end":"\\}\\}","endCaptures":{"0":{"name":"punctuation.section.embedded.end.gotemplate"}},"patterns":[{"match":":=","name":"keyword.operator.initialize.gotemplate"},{"match":"\\|","name":"keyword.operator.pipe.gotemplate"},{"match":"[.$][\\w]*","name":"variable.other.gotemplate"},{"match":"\\b(if|else|range|template|with|end|nil|with|define)\\b","name":"keyword.control.gotemplate"},{"match":"\\b(and|call|html|index|js|len|not|or|print|printf|println|urlquery|eq|ne|lt|le|gt|ge)\\b","name":"support.function.builtin.gotemplate"},{"begin":"/\\*","end":"\\*/","name":"comment.block.gotemplate"},{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.gotemplate"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.gotemplate"}},"name":"string.quoted.double.gotemplate","patterns":[{"include":"#string_placeholder"},{"include":"#string_escaped_char"}]},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.gotemplate"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.gotemplate"}},"name":"string.quoted.raw.gotemplate","patterns":[{"include":"#string_placeholder"}]}]}],"repository":{"string_escaped_char":{"patterns":[{"match":"\\\\(\\\\|[abfnrtv'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|[0-7]{3})","name":"constant.character.escape.gotemplate"},{"match":"\\\\.","name":"invalid.illegal.unknown-escape.gotemplate"}]},"string_placeholder":{"patterns":[{"match":"(?x)%\n                        (\\d+\\$)?                                    # field (argument #)\n                        [#0\\- +']*                                  # flags\n                        [,;:_]?                                     # separator character (AltiVec)\n                        ((-?\\d+)|\\*(-?\\d+\\$)?)?                     # minimum field width\n                        (\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?                # precision\n                        [diouxXDOUeEfFgGaAcCsSqpnvtTbyYhHmMzZ%]     # conversion type\n                    ","name":"constant.other.placeholder.gotemplate"},{"match":"%","name":"invalid.illegal.placeholder.gotemplate"}]}}},"/Users/sadick/github/highlights/deps/language-html/grammars/html.cson":{"scopeName":"text.html.basic","fileTypes":["htm","html","kit","shtml","tmpl","tpl","xhtml"],"firstLineMatch":"<(?i:(!DOCTYPE\\s*)?html)","name":"HTML","patterns":[{"begin":"(<)([a-zA-Z0-9:-]++)(?=[^>]*></\\2>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.html"}},"end":"(>(<)/)(\\2)(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"meta.scope.between-tag-pair.html"},"3":{"name":"entity.name.tag.html"},"4":{"name":"punctuation.definition.tag.html"}},"name":"meta.tag.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"(<\\?)(xml)","captures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.xml.html"}},"end":"(\\?>)","name":"meta.tag.preprocessor.xml.html","patterns":[{"include":"#tag-generic-attribute"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"}]},{"begin":"<!--","captures":{"0":{"name":"punctuation.definition.comment.html"}},"end":"--\\s*>","name":"comment.block.html","patterns":[{"match":"--","name":"invalid.illegal.bad-comments-or-CDATA.html"},{"include":"#embedded-code"}]},{"begin":"<!","captures":{"0":{"name":"punctuation.definition.tag.html"}},"end":">","name":"meta.tag.sgml.html","patterns":[{"begin":"(?i:DOCTYPE)","captures":{"1":{"name":"entity.name.tag.doctype.html"}},"end":"(?=>)","name":"meta.tag.sgml.doctype.html","patterns":[{"match":"\"[^\">]*\"","name":"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{"begin":"\\[CDATA\\[","end":"]](?=>)","name":"constant.other.inline-data.html"},{"match":"(\\s*)(?!--|>)\\S(\\s*)","name":"invalid.illegal.bad-comments-or-CDATA.html"}]},{"include":"#embedded-code"},{"begin":"(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)","captures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.style.html"},"3":{"name":"punctuation.definition.tag.html"}},"end":"(</)((?i:style))(>)(?:\\s*\\n)?","name":"source.css.embedded.html","patterns":[{"include":"#tag-stuff"},{"begin":"(>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.html"}},"end":"(?=</(?i:style))","patterns":[{"include":"#embedded-code"},{"include":"source.css"}]}]},{"begin":"(?:^\\s+)?(<)((?i:script))\\b(?=[^>]*\\btype\\s*=\\s*['\"]?text/(x-handlebars|(x-handlebars-)?template|html)['\"]?)(?![^>]*/>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.script.html"}},"end":"(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?","endCaptures":{"2":{"name":"punctuation.definition.tag.html"}},"name":"text.embedded.html","patterns":[{"include":"#tag-stuff"},{"begin":"(?<!</(?:script|SCRIPT))(>)","captures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.script.html"}},"end":"(</)((?i:script))","patterns":[{"include":"text.html.basic"}]}]},{"begin":"(?:^\\s+)?(<)((?i:script))\\b(?=[^>]*\\btype\\s*=\\s*['\"]?text/coffeescript['\"]?)(?![^>]*/>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.script.html"}},"end":"(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?","endCaptures":{"2":{"name":"punctuation.definition.tag.html"}},"name":"source.coffee.embedded.html","patterns":[{"include":"#tag-stuff"},{"begin":"(?<!</(?:script|SCRIPT))(>)","captures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.script.html"}},"end":"(</)((?i:script))","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.coffee"}},"match":"(#).*?((?=</script)|$\\n?)","name":"comment.line.number-sign.coffee"},{"include":"source.coffee"}]}]},{"begin":"(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.script.html"}},"end":"(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?","endCaptures":{"2":{"name":"punctuation.definition.tag.html"}},"name":"source.js.embedded.html","patterns":[{"include":"#tag-stuff"},{"begin":"(?<!</(?:script|SCRIPT))(>)","captures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.script.html"}},"end":"(</)((?i:script))","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.js"}},"match":"(//).*?((?=</script)|$\\n?)","name":"comment.line.double-slash.js"},{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"\\*/|(?=</script)","name":"comment.block.js"},{"include":"source.js"}]}]},{"begin":"(</?)((?i:body|head|html)\\b)","captures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.structure.any.html"}},"end":"(>)","name":"meta.tag.structure.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"(</?)((?i:address|blockquote|dd|div|section|article|aside|header|footer|nav|menu|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|pre)\\b)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.block.any.html"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.block.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.inline.any.html"}},"end":"((?: ?/)?>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"(</?)([a-zA-Z0-9:-]+)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.other.html"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.html","patterns":[{"include":"#tag-stuff"}]},{"include":"#entities"},{"match":"<>","name":"invalid.illegal.incomplete.html"}],"repository":{"embedded-code":{"patterns":[{"include":"#smarty"},{"include":"#python"}]},"entities":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}},"match":"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","name":"constant.character.entity.html"},{"match":"&","name":"invalid.illegal.bad-ampersand.html"}]},"python":{"begin":"(?:^\\s*)<\\?python(?!.*\\?>)","end":"\\?>(?:\\s*$\\n)?","name":"source.python.embedded.html","patterns":[{"include":"source.python"}]},"smarty":{"patterns":[{"begin":"(\\{(literal)\\})","captures":{"1":{"name":"source.smarty.embedded.html"},"2":{"name":"support.function.built-in.smarty"}},"end":"(\\{/(literal)\\})"},{"begin":"{{|{","disabled":1,"end":"}}|}","name":"source.smarty.embedded.html","patterns":[{"include":"source.smarty"}]}]},"string-double-quoted":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.double.html","patterns":[{"include":"#embedded-code"},{"include":"#entities"}]},"string-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.single.html","patterns":[{"include":"#embedded-code"},{"include":"#entities"}]},"tag-generic-attribute":{"match":"(?<=[^=])\\b([a-zA-Z0-9:-]+)","name":"entity.other.attribute-name.html"},"tag-id-attribute":{"begin":"\\b(id)\\b\\s*(=)","captures":{"1":{"name":"entity.other.attribute-name.id.html"},"2":{"name":"punctuation.separator.key-value.html"}},"end":"(?<='|\")|(?=\\s|>)","name":"meta.attribute-with-value.id.html","patterns":[{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"meta.toc-list.id.html","end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.double.html","patterns":[{"include":"#embedded-code"},{"include":"#entities"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"meta.toc-list.id.html","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.single.html","patterns":[{"include":"#embedded-code"},{"include":"#entities"}]},{"include":"#unquoted-attribute"}]},"tag-stuff":{"patterns":[{"include":"#tag-id-attribute"},{"include":"#tag-generic-attribute"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"},{"include":"#embedded-code"},{"include":"#unquoted-attribute"}]},"unquoted-attribute":{"match":"(?<==)(?:[^\\s<>/'\"]|/(?!>))+","name":"string.unquoted.html"}}},"/Users/sadick/github/highlights/deps/language-hyperlink/grammars/hyperlink.cson":{"name":"Hyperlink","scopeName":"text.hyperlink","fileTypes":[],"injectionSelector":"text, string, comment, source.gfm","patterns":[{"match":"(?x)( (https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man(-page)?|gopher|txmt|issue)://|mailto:)[-:@[:word:].,~%+/?=&#;|]+(?<![-.,?:#;])","name":"markup.underline.link.$2.hyperlink"},{"match":"(?i)\\bRFC(?: |(?<= RFC))(\\d+)\\b","name":"markup.underline.link.rfc.$1.hyperlink"}]},"/Users/sadick/github/highlights/deps/language-java/grammars/java server pages (jsp).cson":{"scopeName":"text.html.jsp","name":"JavaServer Pages","fileTypes":["jsp","jspf","tag"],"injections":{"text.html.jsp - (meta.embedded.block.jsp | meta.embedded.line.jsp | meta.tag | comment), meta.tag string.quoted":{"patterns":[{"include":"#comment"},{"include":"#declaration"},{"include":"#expression"},{"include":"#el_expression"},{"include":"#tags"},{"begin":"(^\\s*)(?=<%(?=\\s))","beginCaptures":{"0":{"name":"punctuation.whitespace.embedded.leading.erb"}},"end":"(?!\\G)(\\s*$\\n)?","endCaptures":{"0":{"name":"punctuation.whitespace.embedded.trailing.erb"}},"patterns":[{"include":"#scriptlet"}]},{"include":"#scriptlet"}]}},"patterns":[{"include":"#xml_tags"},{"include":"text.html.basic"}],"repository":{"comment":{"begin":"<%--","captures":{"0":{"name":"punctuation.definition.comment.jsp"}},"end":"--%>","name":"comment.block.jsp"},"declaration":{"begin":"<%!","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.jsp"}},"contentName":"source.java","end":"(%)>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.jsp"},"1":{"name":"source.java"}},"name":"meta.embedded.line.declaration.jsp","patterns":[{"include":"source.java"}]},"el_expression":{"begin":"\\$\\{","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.jsp"}},"contentName":"source.java","end":"(\\})","endCaptures":{"0":{"name":"punctuation.section.embedded.end.jsp"},"1":{"name":"source.java"}},"name":"meta.embedded.line.el_expression.jsp","patterns":[{"include":"source.java"}]},"expression":{"begin":"<%=","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.jsp"}},"contentName":"source.java","end":"(%)>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.jsp"},"1":{"name":"source.java"}},"name":"meta.embedded.line.expression.jsp","patterns":[{"include":"source.java"}]},"scriptlet":{"begin":"<%","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.jsp"}},"contentName":"source.java","end":"(%)>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.jsp"},"1":{"name":"source.java"}},"name":"meta.embedded.block.scriptlet.jsp","patterns":[{"match":"\\{","name":"punctuation.section.scope.begin.java"},{"match":"\\}","name":"punctuation.section.scope.end.java"},{"include":"source.java"}]},"tags":{"begin":"(<%@)\\s*(?=(attribute|include|page|tag|taglib|variable)\\s)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"}},"end":"%>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.include.jsp","patterns":[{"begin":"\\G(attribute)(?=\\s)","captures":{"1":{"name":"keyword.control.attribute.jsp"}},"end":"(?=%>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(name|required|fragment|rtexprvalue|type|description)(=)((\")[^\"]*(\"))"}]},{"begin":"\\G(include)(?=\\s)","captures":{"1":{"name":"keyword.control.include.jsp"}},"end":"(?=%>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(file)(=)((\")[^\"]*(\"))"}]},{"begin":"\\G(page)(?=\\s)","captures":{"1":{"name":"keyword.control.page.jsp"}},"end":"(?=%>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(language|extends|import|session|buffer|autoFlush|isThreadSafe|info|errorPage|isErrorPage|contentType|pageEncoding|isElIgnored)(=)((\")[^\"]*(\"))"}]},{"begin":"\\G(tag)(?=\\s)","captures":{"1":{"name":"keyword.control.tag.jsp"}},"end":"(?=%>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(display-name|body-content|dynamic-attributes|small-icon|large-icon|description|example|language|import|pageEncoding|isELIgnored)(=)((\")[^\"]*(\"))"}]},{"begin":"\\G(taglib)(?=\\s)","captures":{"1":{"name":"keyword.control.taglib.jsp"}},"end":"(?=%>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(uri|tagdir|prefix)(=)((\")[^\"]*(\"))"}]},{"begin":"\\G(variable)(?=\\s)","captures":{"1":{"name":"keyword.control.variable.jsp"}},"end":"(?=%>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(name-given|alias|variable-class|declare|scope|description)(=)((\")[^\"]*(\"))"}]}]},"xml_tags":{"patterns":[{"begin":"(^\\s*)(?=<jsp:(declaration|expression|scriptlet)>)","beginCaptures":{"0":{"name":"punctuation.whitespace.embedded.leading.erb"}},"end":"(?!\\G)(\\s*$\\n)?","endCaptures":{"0":{"name":"punctuation.whitespace.embedded.trailing.erb"}},"patterns":[{"include":"#embedded"}]},{"include":"#embedded"},{"include":"#directive"},{"include":"#actions"}],"repository":{"actions":{"patterns":[{"begin":"(</?)(jsp:attribute)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.attribute.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(name|trim)(=)((\")[^\"]*(\"))"}]},{"captures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"},"3":{"name":"punctuation.definition.tag.end.jsp"}},"match":"(</?)(jsp:body)(>)","name":"meta.tag.template.body.jsp"},{"begin":"(</?)(jsp:element)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.element.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(name)(=)((\")[^\"]*(\"))"}]},{"begin":"(<)(jsp:doBody)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.dobody.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(var|varReader|scope)(=)((\")[^\"]*(\"))"}]},{"begin":"(</?)(jsp:forward)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.forward.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(page)(=)((\")[^\"]*(\"))"}]},{"begin":"(<)(jsp:param)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.param.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(name|value)(=)((\")[^\"]*(\"))"}]},{"begin":"(<)(jsp:getProperty)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.getproperty.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(name|property)(=)((\")[^\"]*(\"))"}]},{"begin":"(</?)(jsp:include)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.include.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(page|flush)(=)((\")[^\"]*(\"))"}]},{"begin":"(<)(jsp:invoke)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.invoke.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(fragment|var|varReader|scope)(=)((\")[^\"]*(\"))"}]},{"begin":"(<)(jsp:output)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.output.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(omit-xml-declaration|doctype-root-element|doctype-system|doctype-public)(=)((\")[^\"]*(\"))"}]},{"begin":"(</?)(jsp:plugin)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.plugin.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(type|code|codebase|name|archive|align|height|hspace|jreversion|nspluginurl|iepluginurl)(=)((\")[^\"]*(\"))"}]},{"captures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"},"3":{"name":"punctuation.definition.tag.end.jsp"}},"end":">","match":"(</?)(jsp:fallback)(>)","name":"meta.tag.template.fallback.jsp"},{"begin":"(</?)(jsp:root)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.root.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(xmlns|version|xmlns:taglibPrefix)(=)((\")[^\"]*(\"))"}]},{"begin":"(<)(jsp:setProperty)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.setproperty.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(name|property|value)(=)((\")[^\"]*(\"))"}]},{"captures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"},"3":{"name":"punctuation.definition.tag.end.jsp"}},"end":">","match":"(</?)(jsp:text)(>)","name":"meta.tag.template.text.jsp"},{"begin":"(</?)(jsp:useBean)\\b","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.usebean.jsp","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(id|scope|class|type|beanName)(=)((\")[^\"]*(\"))"}]}]},"directive":{"begin":"(<)(jsp:directive\\.(?=(attribute|include|page|tag|variable)\\s))","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.tag.template.$3.jsp","patterns":[{"begin":"\\G(attribute)(?=\\s)","captures":{"1":{"name":"entity.name.tag.jsp"}},"end":"(?=/>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(name|required|fragment|rtexprvalue|type|description)(=)((\")[^\"]*(\"))"}]},{"begin":"\\G(include)(?=\\s)","captures":{"1":{"name":"entity.name.tag.jsp"}},"end":"(?=/>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(file)(=)((\")[^\"]*(\"))"}]},{"begin":"\\G(page)(?=\\s)","captures":{"1":{"name":"entity.name.tag.jsp"}},"end":"(?=/>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(language|extends|import|session|buffer|autoFlush|isThreadSafe|info|errorPage|isErrorPage|contentType|pageEncoding|isElIgnored)(=)((\")[^\"]*(\"))"}]},{"begin":"\\G(tag)(?=\\s)","captures":{"1":{"name":"entity.name.tag.jsp"}},"end":"(?=/>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(display-name|body-content|dynamic-attributes|small-icon|large-icon|description|example|language|import|pageEncoding|isELIgnored)(=)((\")[^\"]*(\"))"}]},{"begin":"\\G(variable)(?=\\s)","captures":{"1":{"name":"entity.name.tag.jsp"}},"end":"(?=/>)","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.jsp"},"2":{"name":"punctuation.separator.key-value.jsp"},"3":{"name":"string.quoted.double.jsp"},"4":{"name":"punctuation.definition.string.begin.jsp"},"5":{"name":"punctuation.definition.string.end.jsp"}},"match":"(name-given|alias|variable-class|declare|scope|description)(=)((\")[^\"]*(\"))"}]}]},"embedded":{"begin":"(<)(jsp:(declaration|expression|scriptlet))(>)","beginCaptures":{"0":{"name":"meta.tag.template.$3.jsp"},"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"entity.name.tag.jsp"},"4":{"name":"punctuation.definition.tag.end.jsp"}},"contentName":"source.java","end":"((<)/)(jsp:\\3)(>)","endCaptures":{"0":{"name":"meta.tag.template.$4.jsp"},"1":{"name":"punctuation.definition.tag.begin.jsp"},"2":{"name":"source.java"},"3":{"name":"entity.name.tag.jsp"},"4":{"name":"punctuation.definition.tag.end.jsp"}},"name":"meta.embedded.block.jsp","patterns":[{"include":"source.java"}]}}}}},"/Users/sadick/github/highlights/deps/language-java/grammars/java.cson":{"scopeName":"source.java","name":"Java","fileTypes":["java","bsh"],"patterns":[{"captures":{"1":{"name":"keyword.other.package.java"},"2":{"name":"storage.modifier.package.java"},"3":{"name":"punctuation.terminator.java"}},"match":"^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?","name":"meta.package.java"},{"begin":"(import static)\\b\\s*","beginCaptures":{"1":{"name":"keyword.other.import.static.java"}},"captures":{"1":{"name":"keyword.other.import.java"},"2":{"name":"storage.modifier.import.java"},"3":{"name":"punctuation.terminator.java"}},"contentName":"storage.modifier.import.java","end":"\\s*(?:$|(;))","endCaptures":{"1":{"name":"punctuation.terminator.java"}},"name":"meta.import.java","patterns":[{"match":"\\.","name":"punctuation.separator.java"},{"match":"\\s","name":"invalid.illegal.character_not_allowed_here.java"}]},{"begin":"(import)\\b\\s*","beginCaptures":{"1":{"name":"keyword.other.import.java"}},"captures":{"1":{"name":"keyword.other.import.java"},"2":{"name":"storage.modifier.import.java"},"3":{"name":"punctuation.terminator.java"}},"contentName":"storage.modifier.import.java","end":"\\s*(?:$|(;))","endCaptures":{"1":{"name":"punctuation.terminator.java"}},"name":"meta.import.java","patterns":[{"match":"\\.","name":"punctuation.separator.java"},{"match":"\\s","name":"invalid.illegal.character_not_allowed_here.java"}]},{"include":"#code"}],"repository":{"all-types":{"patterns":[{"include":"#primitive-arrays"},{"include":"#primitive-types"},{"include":"#object-types"}]},"annotations":{"patterns":[{"begin":"(@[^ (]+)(\\()","beginCaptures":{"1":{"name":"storage.type.annotation.java"},"2":{"name":"punctuation.definition.annotation-arguments.begin.java"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.annotation-arguments.end.java"}},"name":"meta.declaration.annotation.java","patterns":[{"captures":{"1":{"name":"constant.other.key.java"},"2":{"name":"keyword.operator.assignment.java"}},"match":"(\\w*)\\s*(=)"},{"include":"#code"},{"match":",","name":"punctuation.seperator.property.java"}]},{"match":"@\\w*","name":"storage.type.annotation.java"}]},"anonymous-classes-and-new":{"begin":"\\bnew\\b","beginCaptures":{"0":{"name":"keyword.control.new.java"}},"end":"(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=;)","patterns":[{"begin":"(\\w+)\\s*(?=\\[)","beginCaptures":{"1":{"name":"storage.type.java"}},"end":"(})|(?=\\s*(?:,|;|\\)))","endCaptures":{"1":{"name":"punctuation.section.block.end.java"}},"patterns":[{"begin":"\\[","end":"\\]","patterns":[{"include":"#code"}]},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.java"}},"end":"(?=})","patterns":[{"include":"#code"}]}]},{"begin":"(?=\\w.*\\()","end":"(?<=\\))","patterns":[{"include":"#object-types"},{"begin":"\\(","beginCaptures":{"1":{"name":"storage.type.java"}},"end":"\\)","patterns":[{"include":"#code"}]}]},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.inner-class.begin.java"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.inner-class.end.java"}},"name":"meta.inner-class.java","patterns":[{"include":"#class-body"}]}]},"assertions":{"patterns":[{"begin":"\\b(assert)\\s","beginCaptures":{"1":{"name":"keyword.control.assert.java"}},"end":"$","name":"meta.declaration.assertion.java","patterns":[{"match":":","name":"keyword.operator.assert.expression-seperator.java"},{"include":"#code"}]}]},"class":{"begin":"(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)","end":"}","endCaptures":{"0":{"name":"punctuation.section.class.end.java"}},"name":"meta.class.java","patterns":[{"include":"#storage-modifiers"},{"include":"#comments"},{"captures":{"1":{"name":"storage.modifier.java"},"2":{"name":"entity.name.type.class.java"}},"match":"(class|(?:@)?interface|enum)\\s+(\\w+)","name":"meta.class.identifier.java"},{"begin":"extends","beginCaptures":{"0":{"name":"storage.modifier.extends.java"}},"end":"(?={|implements)","name":"meta.definition.class.inherited.classes.java","patterns":[{"include":"#object-types-inherited"},{"include":"#comments"}]},{"begin":"(implements)\\s","beginCaptures":{"1":{"name":"storage.modifier.implements.java"}},"end":"(?=\\s*extends|\\{)","name":"meta.definition.class.implemented.interfaces.java","patterns":[{"include":"#object-types-inherited"},{"include":"#comments"}]},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.class.begin.java"}},"end":"(?=})","name":"meta.class.body.java","patterns":[{"include":"#class-body"}]}]},"class-body":{"patterns":[{"include":"#comments"},{"include":"#class"},{"include":"#enums"},{"include":"#variables"},{"include":"#methods"},{"include":"#annotations"},{"include":"#storage-modifiers"},{"include":"#code"}]},"code":{"patterns":[{"include":"#annotations"},{"include":"#comments"},{"include":"#class"},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.java"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.block.end.java"}},"patterns":[{"include":"#code"}]},{"include":"#assertions"},{"include":"#parens"},{"include":"#constants-and-special-vars"},{"include":"#anonymous-classes-and-new"},{"include":"#keywords"},{"include":"#storage-modifiers"},{"include":"#method-call"},{"include":"#strings"},{"include":"#all-types"}]},"comments":{"patterns":[{"captures":{"0":{"name":"punctuation.definition.comment.java"}},"match":"/\\*\\*/","name":"comment.block.empty.java"},{"include":"text.html.javadoc"},{"include":"#comments-inline"}]},"comments-inline":{"patterns":[{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.java"}},"end":"\\*/","name":"comment.block.java"},{"begin":"(^[ \\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.java"}},"end":"(?!\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.java"}},"end":"\\n","name":"comment.line.double-slash.java"}]}]},"constants-and-special-vars":{"patterns":[{"match":"\\b(true|false|null)\\b","name":"constant.language.java"},{"match":"\\b(this|super)\\b","name":"variable.language.java"},{"match":"\\b((0(b|B)[01]+)|(0(x|X)[0-9a-fA-F]+)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b","name":"constant.numeric.java"},{"captures":{"1":{"name":"keyword.operator.dereference.java"}},"match":"(\\.)?\\b([A-Z][A-Z0-9_]+)(?!<|\\.class|\\s*\\w+\\s*=)\\b","name":"constant.other.java"}]},"enums":{"begin":"^(?=\\s*[A-Z0-9_]+\\s*({|\\(|,))","end":"(?=;|})","patterns":[{"begin":"\\w+","beginCaptures":{"0":{"name":"constant.other.enum.java"}},"end":"(?=,|;|})","name":"meta.enum.java","patterns":[{"include":"#parens"},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.enum.begin.java"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.enum.end.java"}},"patterns":[{"include":"#class-body"}]}]}]},"keywords":{"patterns":[{"match":"\\b(try|catch|finally|throw)\\b","name":"keyword.control.catch-exception.java"},{"match":"\\?|:","name":"keyword.control.ternary.java"},{"match":"\\b(return|break|case|continue|default|do|while|for|switch|if|else)\\b","name":"keyword.control.java"},{"match":"\\b(instanceof)\\b","name":"keyword.operator.java"},{"match":"(<<|>>>?|~|\\^)","name":"keyword.operator.bitwise.java"},{"match":"((&|\\^|\\||<<|>>>?)=)","name":"keyword.operator.assignment.bitwise.java"},{"match":"(===?|!=|<=|>=|<>|<|>)","name":"keyword.operator.comparison.java"},{"match":"([+*/%-]=)","name":"keyword.operator.assignment.arithmetic.java"},{"match":"(=)","name":"keyword.operator.assignment.java"},{"match":"(\\-\\-|\\+\\+)","name":"keyword.operator.increment-decrement.java"},{"match":"(\\-|\\+|\\*|\\/|%)","name":"keyword.operator.arithmetic.java"},{"match":"(!|&&|\\|\\|)","name":"keyword.operator.logical.java"},{"match":"(\\||&)","name":"keyword.operator.bitwise.java"},{"match":"(?<=\\S)\\.(?=\\S)","name":"keyword.operator.dereference.java"},{"match":";","name":"punctuation.terminator.java"}]},"method-call":{"begin":"([\\w$]+)(\\()","beginCaptures":{"1":{"name":"meta.method.java"},"2":{"name":"punctuation.definition.method-parameters.begin.java"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.method-parameters.end.java"}},"name":"meta.method-call.java","patterns":[{"match":",","name":"punctuation.definition.seperator.parameter.java"},{"include":"#code"}]},"methods":{"begin":"(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()","end":"(})|(?=;)","endCaptures":{"1":{"name":"punctuation.section.method.end.java"}},"name":"meta.method.java","patterns":[{"include":"#storage-modifiers"},{"begin":"(\\w+)\\s*\\(","beginCaptures":{"1":{"name":"entity.name.function.java"}},"end":"\\)","name":"meta.method.identifier.java","patterns":[{"include":"#parameters"}]},{"begin":"<","end":">","name":"storage.type.token.java","patterns":[{"include":"#object-types"},{"begin":"<","comment":"This is just to support <>'s with no actual type prefix","end":">|[^\\w\\s,\\[\\]<]","name":"storage.type.generic.java"}]},{"begin":"(?=\\w.*\\s+\\w+\\s*\\()","end":"(?=\\w+\\s*\\()","name":"meta.method.return-type.java","patterns":[{"include":"#all-types"}]},{"include":"#throws"},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.method.begin.java"}},"end":"(?=})","name":"meta.method.body.java","patterns":[{"include":"#code"}]},{"include":"#comments"}]},"object-types":{"patterns":[{"begin":"\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<","end":">|[^\\w\\s,\\?<\\[\\]]","name":"storage.type.generic.java","patterns":[{"include":"#object-types"},{"begin":"<","comment":"This is just to support <>'s with no actual type prefix","end":">|[^\\w\\s,\\[\\]<]","name":"storage.type.generic.java"}]},{"begin":"\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)","end":"(?=[^\\]\\s])","name":"storage.type.object.array.java","patterns":[{"begin":"\\[","end":"\\]","patterns":[{"include":"#code"}]}]},{"captures":{"1":{"name":"keyword.operator.dereference.java"}},"match":"\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*\\b","name":"storage.type.java"}]},"object-types-inherited":{"patterns":[{"begin":"\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<","end":">|[^\\w\\s,<]","name":"entity.other.inherited-class.java","patterns":[{"include":"#object-types"},{"begin":"<","comment":"This is just to support <>'s with no actual type prefix","end":">|[^\\w\\s,<]","name":"storage.type.generic.java"}]},{"captures":{"1":{"name":"keyword.operator.dereference.java"}},"match":"\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*","name":"entity.other.inherited-class.java"}]},"parameters":{"patterns":[{"match":"final","name":"storage.modifier.java"},{"include":"#annotations"},{"include":"#primitive-arrays"},{"include":"#primitive-types"},{"include":"#object-types"},{"match":"\\w+","name":"variable.parameter.java"}]},"parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#code"}]},"primitive-arrays":{"patterns":[{"match":"\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b","name":"storage.type.primitive.array.java"}]},"primitive-types":{"patterns":[{"match":"\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b","name":"storage.type.primitive.java"}]},"storage-modifiers":{"captures":{"1":{"name":"storage.modifier.java"}},"match":"\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient)\\b"},"strings":{"patterns":[{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.java"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.java"}},"name":"string.quoted.double.java","patterns":[{"match":"\\\\.","name":"constant.character.escape.java"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.java"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.java"}},"name":"string.quoted.single.java","patterns":[{"match":"\\\\.","name":"constant.character.escape.java"}]}]},"throws":{"begin":"throws","beginCaptures":{"0":{"name":"storage.modifier.java"}},"end":"(?={|;)","name":"meta.throwables.java","patterns":[{"include":"#object-types"}]},"values":{"patterns":[{"include":"#strings"},{"include":"#object-types"},{"include":"#constants-and-special-vars"}]},"variables":{"applyEndPatternLast":1,"patterns":[{"begin":"(?x:(?=\n                        (?:\n                            (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n                                |\n                            (?:def)\n                                |\n                            (?:void|boolean|byte|char|short|int|float|long|double)\n                                |\n                            (?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*) # object type\n                        )\n                        \\s+\n                        (?!private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final|def|void|boolean|byte|char|short|int|float|long|double)\n                        [\\w\\d_<>\\[\\],\\?][\\w\\d_<>\\[\\],\\? \\t]*\n                        (?:=|$)\n                        \n\t\t\t\t\t))","end":"(?=;)","name":"meta.definition.variable.java","patterns":[{"match":"\\s"},{"captures":{"1":{"name":"constant.variable.java"}},"match":"([A-Z_0-9]+)\\s+(?=\\=)"},{"captures":{"1":{"name":"meta.definition.variable.name.java"}},"match":"(\\w[^\\s,]*)\\s+(?=\\=)"},{"begin":"=","beginCaptures":{"0":{"name":"keyword.operator.assignment.java"}},"end":"(?=;)","patterns":[{"include":"#code"}]},{"captures":{"1":{"name":"meta.definition.variable.name.java"}},"match":"(\\w[^\\s=]*)(?=\\s*;)"},{"include":"#code"}]}]}}},"/Users/sadick/github/highlights/deps/language-java/grammars/javaproperties.cson":{"scopeName":"source.java-properties","name":"Java Properties","fileTypes":["properties"],"foldingStartMarker":"^[a-zA-Z0-9.-_]+=.*\\\n","foldingStopMarker":"^(.*(?<!\\)\n)","patterns":[{"begin":"(^[ \\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.java-properties"}},"end":"(?!\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.java-properties"}},"end":"\\n","name":"comment.line.number-sign.java-properties"}]},{"begin":"(^[ \\t]+)?(?=!)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.java-properties"}},"end":"(?!\\G)","patterns":[{"begin":"!","beginCaptures":{"0":{"name":"punctuation.definition.comment.java-properties"}},"end":"\\n","name":"comment.line.exclamation.java-properties"}]},{"begin":"^\\s*(([\\S&&[^:=\\\\]]|\\\\.)+)\\s*([:=])?","beginCaptures":{"1":{"name":"support.constant.java-properties","patterns":[{"match":"\\\\([tnfr\"'\\\\ ]|u\\h{4})","name":"constant.character.escape.java-properties"}]},"3":{"name":"punctuation.separator.key-value.java-properties"}},"end":"\\n","name":"meta.key-pair.java-properties","patterns":[{"begin":"(?=\\S)","end":"(?<!\\\\)(?=\\n)","name":"string.unquoted.java-properties","patterns":[{"match":"\\\\([tnfr\"'\\\\]|u\\h{4}|)","name":"constant.character.escape.java-properties"}]}]}]},"/Users/sadick/github/highlights/deps/language-java/grammars/junit test report.cson":{"scopeName":"text.junit-test-report","name":"JUnit Test Report","firstLineMatch":"^Testsuite:","patterns":[{"captures":{"1":{"name":"meta.testsuite.label.junit-test-report"},"2":{"name":"entity.name.testsuite.junit-test-report"}},"match":"(Testsuite:) (.+)$\\n","name":"meta.testsuite.name.junit-test-report"},{"captures":{"1":{"name":"meta.testcase.label.junit-test-report"},"2":{"name":"entity.name.testcase.junit-test-report"}},"match":"(Testcase:) (.+) took ([\\d\\.]+) sec$\\n","name":"meta.testcase.name.junit-test-report"},{"begin":"at\\s+(?=.+?\\(.+?\\)$)","end":"$\\n","name":"meta.stackframe.junit-test-report","patterns":[{"match":"(?<=\\.)[^\\.]+?(?=\\()","name":"meta.stackframe.method.junit-test-report"},{"captures":{"1":{"name":"meta.stackframe.source.junit-test-report"},"3":{"name":"meta.stackframe.source.line.junit-test-report"}},"match":"\\((.+)(:)(.+)\\)$"}]},{"begin":"------------- Standard Output ---------------$\\n","end":"------------- ---------------- ---------------$\\n","name":"meta.section.output.junit-test-report","patterns":[{"begin":"--Output from (.+?)--$\\n","beginCaptures":{"1":{"name":"entity.name.testcase.junit-test-report"}},"contentName":"meta.output.content.junit-test-report","end":"(?=--Output from|------------- ---------------- ---------------)","name":"meta.output.junit-test-report"}]},{"begin":"------------- Standard Error -----------------$\\n","contentName":"meta.error.junit-test-report","end":"------------- ---------------- ---------------$\\n","name":"meta.section.error.junit-test-report","patterns":[{"begin":"--Output from (.+?)--$\\n","beginCaptures":{"1":{"name":"entity.name.testcase.junit-test-report"}},"contentName":"meta.error.content.junit-test-report","end":"(?=--Output from|------------- ---------------- ---------------)","name":"meta.error.junit-test-report"}]}]},"/Users/sadick/github/highlights/deps/language-javascript/grammars/javascript.cson":{"scopeName":"source.js","fileTypes":["js","_js","es","es6","gs","htc","jscad","jslib","jsm","json5","jspre","pac","pjs","sjs","xsjs","xsjslib"],"firstLineMatch":"(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)\n  (?:node|iojs|JavaScript)\n(?:$|\\s)\n|\n# Modeline\n(?i:\n  # Emacs\n  -\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n    (?:js|javascript)\n  (?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n  |\n  # Vim\n  (?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n    javascript\n  (?=\\s|:|$)\n)","name":"JavaScript","patterns":[{"begin":"(?<!\\.)\\b(import)(?!\\s*[:(])\\b","beginCaptures":{"1":{"name":"keyword.control.js"}},"end":"(?=;|$)","name":"meta.import.js","patterns":[{"begin":"{","beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.js"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.modules.end.js"}},"patterns":[{"match":"(?x)\n(?: \\b(default)\\b | \\b([a-zA-Z_$][\\w$]*)\\b)\n\\s*\n(\\b as \\b)\n\\s*\n(?: (\\b default \\b | \\*) | \\b([a-zA-Z_$][\\w$]*)\\b)","captures":{"1":{"name":"variable.language.default.js"},"2":{"name":"variable.other.module.js"},"3":{"name":"keyword.control.js"},"4":{"name":"invalid.illegal.js"},"5":{"name":"variable.other.module-alias.js"}}},{"match":",","name":"meta.delimiter.object.comma.js"},{"include":"#comments"},{"match":"\\b([a-zA-Z_$][\\w$]*)\\b","name":"variable.other.module.js"}]},{"match":"(?x)\n(?: \\b(default)\\b | (\\*) | \\b([a-zA-Z_$][\\w$]*)\\b)\n\\s*\n(\\b as \\b)\n\\s*\n(?: (\\b default \\b | \\*) | \\b([a-zA-Z_$][\\w$]*)\\b)","captures":{"1":{"name":"variable.language.default.js"},"2":{"name":"variable.language.import-all.js"},"3":{"name":"variable.other.module.js"},"4":{"name":"keyword.control.js"},"5":{"name":"invalid.illegal.js"},"6":{"name":"variable.other.module-alias.js"}}},{"match":"\\*","name":"variable.language.import-all.js"},{"match":"\\b(default)\\b","name":"variable.language.default.js"},{"include":"#strings"},{"include":"#comments"},{"match":"\\b(from)\\b","name":"keyword.control.js"},{"match":"\\b([a-zA-Z_$][\\w$]*)\\b(?=.*\\bfrom\\b)","name":"variable.other.module.js"},{"match":",","name":"meta.delimiter.object.comma.js"}]},{"match":"(?x)\n\\b(export)\\b\\s*\n\\b(default)\\b\\s*\n\\b((?!\\b(?:function|class|let|var|const)\\b)[a-zA-Z_$][\\w$]*)?\\b","captures":{"0":{"name":"meta.export.js"},"1":{"name":"keyword.control.js"},"2":{"name":"variable.language.default.js"},"3":{"name":"variable.other.module.js"}}},{"begin":"(?<!\\.)\\b(export)(?!\\s*[:(])\\b","beginCaptures":{"1":{"name":"keyword.control.js"}},"end":"(?=;|\\bfunction\\b|\\bclass\\b|\\blet\\b|\\bvar\\b|\\bconst\\b|$)","name":"meta.export.js","patterns":[{"include":"#numbers"},{"begin":"{(?=.*\\bfrom\\b)","beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.js"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.modules.end.js"}},"patterns":[{"match":"(?x)\n(?: \\b(default)\\b | \\b([a-zA-Z_$][\\w$]*)\\b)\n\\s*\n(\\b as \\b)\n\\s*\n(?: \\b(default)\\b | (\\*) | \\b([a-zA-Z_$][\\w$]*)\\b)","captures":{"1":{"name":"variable.language.default.js"},"2":{"name":"variable.other.module.js"},"3":{"name":"keyword.control.js"},"4":{"name":"variable.language.default.js"},"5":{"name":"invalid.illegal.js"},"6":{"name":"variable.other.module-alias.js"}}},{"match":",","name":"meta.delimiter.object.comma.js"},{"include":"#comments"},{"match":"\\b([a-zA-Z_$][\\w$]*)\\b","name":"variable.other.module.js"}]},{"begin":"(?![a-zA-Z_$0-9]){","beginCaptures":{"0":{"name":"punctuation.definition.modules.begin.js"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.modules.end.js"}},"patterns":[{"captures":{"1":{"name":"invalid.illegal.js"},"2":{"name":"variable.other.module.js"},"3":{"name":"keyword.control.js"},"4":{"name":"variable.language.default.js"},"5":{"name":"invalid.illegal.js"},"6":{"name":"variable.other.module-alias.js"}},"match":"(?x)\n(?: \\b(default)\\b | \\b([a-zA-Z_$][\\w$]*)\\b)\n\\s*\n(\\b as \\b)\n\\s*\n(?: \\b(default)\\b | (\\*) | \\b([a-zA-Z_$][\\w$]*)\\b)"},{"include":"#comments"},{"match":",","name":"meta.delimiter.object.comma.js"},{"match":"\\b([a-zA-Z_$][\\w$]*)\\b","name":"variable.other.module.js"}]},{"match":"\\*(?=.*\\bfrom\\b)","name":"variable.language.import-all.js"},{"match":"\\b(default)\\b","name":"variable.language.default.js"},{"include":"#strings"},{"include":"#comments"},{"match":"\\b(from)\\b","name":"keyword.control.js"},{"match":"\\b([a-zA-Z_$][\\w$]*)\\b","name":"variable.other.module.js"},{"match":",","name":"meta.delimiter.object.comma.js"},{"include":"#operators"}]},{"match":"(?:(?<=\\.{3})|(?<!\\.)\\b)(?<!\\$)(super|this|arguments)(?!\\s*:|\\$)\\b","name":"variable.language.js"},{"begin":"(?=(\\basync\\b\\s*)?\\bfunction\\b(?!\\s*:))","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.js","patterns":[{"include":"#function_innards"}]}]},{"begin":"(?=(\\.)?[a-zA-Z_$][\\w$]*\\s*=\\s*(\\basync\\b\\s*)?\\bfunction\\b)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?!\\G)(?<=\\))","name":"meta.function.js","patterns":[{"match":"(\\.)?([a-zA-Z_$][\\w$]*)\\s*(=)\\s*","captures":{"1":{"name":"meta.delimiter.method.period.js"},"2":{"name":"entity.name.function.js"},"3":{"name":"keyword.operator.assignment.js"}}},{"include":"#function_innards"}]}]},{"begin":"(?=\\b[a-zA-Z_$][\\w$]*\\s*:\\s*(\\basync\\b\\s*)?\\bfunction\\b)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.json.js","patterns":[{"match":"\\b([a-zA-Z_$][\\w$]*)\\s*(:)\\s*","captures":{"1":{"name":"entity.name.function.js"},"2":{"name":"keyword.operator.assignment.js"}}},{"include":"#function_innards"}]}]},{"begin":"(?=(('[^']*?')|(\"[^\"]*?\"))\\s*:\\s*(\\basync\\b\\s*)?\\bfunction\\b)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.json.js","patterns":[{"match":"(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\\s*(:)","captures":{"1":{"name":"string.quoted.single.js"},"2":{"name":"punctuation.definition.string.begin.js"},"3":{"name":"entity.name.function.js"},"4":{"name":"punctuation.definition.string.end.js"},"5":{"name":"string.quoted.double.js"},"6":{"name":"punctuation.definition.string.begin.js"},"7":{"name":"entity.name.function.js"},"8":{"name":"punctuation.definition.string.end.js"},"9":{"name":"keyword.operator.assignment.js"}}},{"include":"#function_innards"}]}]},{"begin":"(?=\\bconstructor\\b\\s*)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.js","patterns":[{"match":"\\b(constructor)\\s*","name":"entity.name.function.constructor.js"},{"include":"#function_innards"}]}]},{"begin":"(?x)\n(?=\n  (?!\n    (break|case|catch|continue|do|else|finally|for|function|if|\n    package|return|switch|throw|try|while|with)\n    [\\s\\(]\n  )\n  (\n    \\b(get|set)            # Property getter/setter: get foo(){}\n    (?:\\s+|(?=\\[))        # Followed by whitespace or square bracket\n  )?+\n  (                         # Method name\n    \\b[a-zA-Z_$][\\w$]*    # Fixed name\n    |\n    \\[                     # Computed property key\n      [^\\[\\]]++           # Contains at least one non-brace character\n    \\]\n  )\n  \\s*\\(\\s*               # Start of arguments list\n    (\n      \"[^\"]*\"  |            # Double-quoted string\n      '[^']*'  |            # Single-quoted string\n       [^\"()']              # Any non-bracket or non-quote\n    )*\n  \\)\\s*                   # End of arguments\n  {                         # Beginning of body\n)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.method.definition.js","patterns":[{"match":"(\\[)(.+)(\\])(?=\\s*\\()","captures":{"1":{"name":"punctuation.definition.computed-key.begin.bracket.square.js"},"2":{"patterns":[{"include":"$self"},{"match":"[a-zA-Z_$][\\w$]*","name":"variable.parameter.property.js"}]},"3":{"name":"punctuation.definition.computed-key.end.bracket.square.js"}},"name":"meta.computed-key.js"},{"match":"\\b(get|set)(?=\\s*\\[.+\\]\\s*\\(|\\s+[^\\s\\[(]+\\s*\\()","name":"keyword.operator.$1ter.js"},{"match":"\\b([a-zA-Z_$][\\w$]*)","name":"entity.name.function.js"},{"include":"#function_params"}]}]},{"begin":"(?x)\n(?=\n  (?<![A-Za-z0-9])\n  ((\\(([^\\(\\)]*)?\\))|[\\w$]+)\n  \\s*=>\n)","end":"(?x)\n(?<=})|\n((?!\n  \\s*{|\n  \\G\\(|\n  \\G[\\w$]+|\n  \\s*/\\*|\\s*//\n)(?=\\s*\\S))","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=(=>))","name":"meta.function.arrow.js","patterns":[{"include":"#arrow_function_innards"}]}]},{"begin":"(?x)\n(?=\n  (\\.)?[a-zA-Z_$][\\w$]*\n  \\s*(=)\\s*\n  ((\\(([^\\(\\)]*)?\\))|[\\w$]+)\n  \\s*=>\n)","end":"(?x)\n(?<=})|\n((?!\n  \\s*{|\n  \\G(\\.)?[a-zA-Z_$][\\w$]*\\s*(=)\\s*\\(|\n  \\G(\\.)?[a-zA-Z_$][\\w$]*\\s*(=)\\s*[\\w$]+|\n  \\s*/\\*|\\s*//\n)(?=\\s*\\S))","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=(=>))","name":"meta.function.arrow.js","patterns":[{"match":"\\G(\\.)?([a-zA-Z_$][\\w$]*)\\s*(=)","captures":{"1":{"name":"meta.delimiter.method.period.js"},"2":{"name":"entity.name.function.js"},"3":{"name":"keyword.operator.assignment.js"}}},{"include":"#arrow_function_innards"}]}]},{"begin":"(?x)\n(?=\n  \\b[a-zA-Z_$][\\w$]*\n  \\s*:\\s*\n  ((\\(([^\\(\\)]*)?\\))|[\\w$]+)\n  \\s*=>\n)","end":"(?x)\n(?<=})|\n((?!\n  \\s*{|\n  \\G[\\w$]+\\s*:|\n  \\s*/\\*|\\s*//\n)(?=\\s*\\S))","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=(=>))","name":"meta.function.arrow.json.js","patterns":[{"match":"\\b([a-zA-Z_$][\\w$]*)\\s*(:)\\s*","captures":{"1":{"name":"entity.name.function.js"},"2":{"name":"keyword.operator.assignment.js"}}},{"include":"#arrow_function_innards"}]}]},{"begin":"(?x)\n(?=\n  (('[^']*?')|(\"[^\"]*?\"))\n  \\s*:\\s*\n  ((\\(([^\\(\\)]*)?\\))|[\\w$]+)\n  \\s*=>\n)","end":"(?x)\n(?<=})|\n((?!\n  \\G(('[^']*?')|(\"[^\"]*?\"))|\n  \\s*{|\n  \\s*/\\*|\\s*//\n)(?=\\s*\\S))","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=(=>))","name":"meta.function.arrow.json.js","patterns":[{"match":"(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\\s*(:)","captures":{"1":{"name":"string.quoted.single.js"},"2":{"name":"punctuation.definition.string.begin.js"},"3":{"name":"entity.name.function.js"},"4":{"name":"punctuation.definition.string.end.js"},"5":{"name":"string.quoted.double.js"},"6":{"name":"punctuation.definition.string.begin.js"},"7":{"name":"entity.name.function.js"},"8":{"name":"punctuation.definition.string.end.js"},"9":{"name":"keyword.operator.assignment.js"}}},{"include":"#arrow_function_innards"}]}]},{"match":"(=>)","captures":{"0":{"name":"meta.function.arrow.js"},"1":{"name":"storage.type.function.arrow.js"}}},{"match":"(?x)\n\\b(class)\n(?:\n  (?:\\s+(extends)\\s+([a-zA-Z_$][\\w$]*))\n  |\n  (?:\n    (?:\\s+([a-zA-Z_$][\\w$]*))\n    (?:\\s+(extends)\\s+([a-zA-Z_$][\\w$]*))?\n  )\n)","captures":{"1":{"name":"storage.type.class.js"},"2":{"name":"storage.modifier.js"},"3":{"name":"entity.other.inherited-class.js"},"4":{"name":"entity.name.type.class.js"},"5":{"name":"storage.modifier.js"},"6":{"name":"entity.other.inherited-class.js"}},"name":"meta.class.js"},{"match":"(new)\\s+([\\w$]+[\\w.$]*)","name":"meta.class.instance.constructor.js","captures":{"1":{"name":"keyword.operator.new.js"},"2":{"name":"entity.name.type.instance.js","patterns":[{"match":"\\.","name":"meta.delimiter.property.period.js"}]}}},{"begin":"(?<![\\w$])console(?![\\w$]|\\s*:)","beginCaptures":{"0":{"name":"entity.name.type.object.console.js"}},"end":"(?x)\n(?<=\\)) | (?=\n  (?! (\\s*//)|(\\s*/\\*)|(\\s*(\\.)\\s*\n    (assert|clear|debug|error|info|log|profile|profileEnd|time|timeEnd|warn)\n    \\s*\\(\n  )) \\s*\\S\n)","patterns":[{"include":"#comments"},{"begin":"\\s*(\\.)\\s*(\\w+)\\s*(?=\\()","beginCaptures":{"1":{"name":"meta.delimiter.method.period.js"},"2":{"name":"support.function.console.js"}},"end":"(?<=\\))","name":"meta.method-call.js","patterns":[{"include":"#arguments"}]}]},{"begin":"(?<![\\w$])Math(?![\\w$]|\\s*:)","beginCaptures":{"0":{"name":"support.class.math.js"}},"end":"(?x)\n(?<=E|LN10|LN2|LOG10E|LOG2E|PI|SQRT1_2|SQRT2|\\)\n) | (?=\n  (?! (\\s*//)|(\\s*/\\*)|(\\s*\\.\\s* (\n    ((abs|acos|acosh|asin|asinh|atan|atan2|atanh|cbrt|ceil|clz32|cos|cosh|exp|\n    expm1|floor|fround|hypot|imul|log|log10|log1p|log2|max|min|pow|random|\n    round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\s*\\(\n    ) | (E|LN10|LN2|LOG10E|LOG2E|PI|SQRT1_2|SQRT2)(?!\\s*[\\w$(]))\n  )) \\s*\\S\n)","patterns":[{"include":"#comments"},{"begin":"\\s*(\\.)\\s*(\\w+)\\s*(?=\\()","beginCaptures":{"1":{"name":"meta.delimiter.method.period.js"},"2":{"name":"support.function.math.js"}},"end":"(?<=\\))","name":"meta.method-call.js","patterns":[{"include":"#arguments"}]},{"match":"\\s*(\\.)\\s*(\\w+)\\b","captures":{"1":{"name":"meta.delimiter.property.period.js"},"2":{"name":"support.constant.property.math.js"}}}]},{"include":"#strings"},{"include":"#comments"},{"match":"(<!--|-->)","captures":{"0":{"name":"punctuation.definition.comment.html.js"},"2":{"name":"punctuation.definition.comment.html.js"}},"name":"comment.block.html.js"},{"match":"(?<!\\.)\\b(class|enum|function|interface)(?!\\s*:)\\b","name":"storage.type.js"},{"match":"(?<!\\.)\\b(async|export|extends|implements|private|protected|public|static)(?!\\s*:)\\b","name":"storage.modifier.js"},{"match":"(?<!\\.)\\b(let|var)(?!\\s*:)\\b","name":"storage.type.var.js"},{"begin":"(?<!\\.)\\b(const)(?!\\s*:)\\b","beginCaptures":{"1":{"name":"storage.type.const.js"}},"end":"(\\bof\\b|\\bin\\b)|(;)|(=)|(?<![,{])\\n","endCaptures":{"1":{"name":"keyword.operator.$1.js"},"2":{"name":"punctuation.terminator.statement.js"},"3":{"name":"keyword.operator.assignment.js"}},"patterns":[{"match":"([$_a-zA-Z][$_a-zA-Z0-9]*)\\s*(:)\\s*([$_a-zA-Z][$_a-zA-Z0-9]*)?","captures":{"2":{"name":"keyword.operator.assignment.js"},"3":{"name":"constant.other.js"}}},{"match":"([$_a-zA-Z][$_a-zA-Z0-9]*)","captures":{"1":{"name":"constant.other.js"}}},{"match":"\\.\\.\\.","name":"keyword.operator.spread.js"},{"match":",","name":"meta.delimiter.object.comma.js"},{"match":"\\(|\\)","name":"meta.brace.round.js"},{"match":"{|}","name":"meta.brace.curly.js"},{"match":"\\[|\\]","name":"meta.brace.square.js"},{"include":"#comments"}]},{"match":"(?<!\\.)\\b(yield)(?!\\s*:)\\b(?:\\s*(\\*))?","captures":{"1":{"name":"keyword.control.js"},"2":{"name":"storage.modifier.js"}},"name":"meta.control.yield.js"},{"match":"(?<!\\.)\\b(await|break|catch|continue|do|else|finally|for|if|import|package|return|throw|try|while|with)(?!\\s*:)\\b","name":"keyword.control.js"},{"include":"#switch_statement"},{"match":"(?<!\\.)\\b(delete|in|of|instanceof|new|typeof|void)(?!\\s*:)\\b","name":"keyword.operator.$1.js"},{"match":"\\.\\.\\.","name":"keyword.operator.spread.js"},{"match":"(?<!\\.)\\b(true|false)(?!\\s*:)\\b","name":"constant.language.boolean.$1.js"},{"match":"(?<!\\.)\\b(null)(?!\\s*:)\\b","name":"constant.language.null.js"},{"match":"(?<!\\.)\\b(debugger)(?!\\s*:)\\b","name":"keyword.other.debugger.js"},{"match":"(?x) (?<!\\$) \\b\n(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Error|EvalError|Float32Array|Float64Array|Function|Generator\n|GeneratorFunction|Int16Array|Int32Array|Int8Array|InternalError|Intl|JSON|Map|Number|Object|Promise|Proxy\n|RangeError|ReferenceError|Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|SyntaxError|TypeError\n|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|URIError|WeakMap|WeakSet)\n\\b","name":"support.class.js"},{"match":"(?x) (\\.) \\s* (?:\n  (constructor|length|prototype) |\n  (EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\n)\\b","captures":{"1":{"name":"meta.delimiter.property.period.js"},"2":{"name":"support.variable.property.js"},"3":{"name":"support.constant.js"}}},{"match":"(?x) (?<!\\$) \\b (?:\n  (document|event|navigator|performance|screen|window)\n  |\n  (AnalyserNode|ArrayBufferView|Attr|AudioBuffer|AudioBufferSourceNode|AudioContext|AudioDestinationNode|AudioListener\n  |AudioNode|AudioParam|BatteryManager|BeforeUnloadEvent|BiquadFilterNode|Blob|BufferSource|ByteString|CSS|CSSConditionRule\n  |CSSCounterStyleRule|CSSGroupingRule|CSSMatrix|CSSMediaRule|CSSPageRule|CSSPrimitiveValue|CSSRule|CSSRuleList|CSSStyleDeclaration\n  |CSSStyleRule|CSSStyleSheet|CSSSupportsRule|CSSValue|CSSValueList|CanvasGradient|CanvasImageSource|CanvasPattern\n  |CanvasRenderingContext2D|ChannelMergerNode|ChannelSplitterNode|CharacterData|ChromeWorker|CloseEvent|Comment|CompositionEvent\n  |Console|ConvolverNode|Coordinates|Credential|CredentialsContainer|Crypto|CryptoKey|CustomEvent|DOMError|DOMException\n  |DOMHighResTimeStamp|DOMImplementation|DOMString|DOMStringList|DOMStringMap|DOMTimeStamp|DOMTokenList|DataTransfer\n  |DataTransferItem|DataTransferItemList|DedicatedWorkerGlobalScope|DelayNode|DeviceProximityEvent|DirectoryEntry\n  |DirectoryEntrySync|DirectoryReader|DirectoryReaderSync|Document|DocumentFragment|DocumentTouch|DocumentType|DragEvent\n  |DynamicsCompressorNode|Element|Entry|EntrySync|ErrorEvent|Event|EventListener|EventSource|EventTarget|FederatedCredential\n  |FetchEvent|File|FileEntry|FileEntrySync|FileException|FileList|FileReader|FileReaderSync|FileSystem|FileSystemSync\n  |FontFace|FormData|GainNode|Gamepad|GamepadButton|GamepadEvent|Geolocation|GlobalEventHandlers|HTMLAnchorElement\n  |HTMLAreaElement|HTMLAudioElement|HTMLBRElement|HTMLBaseElement|HTMLBodyElement|HTMLButtonElement|HTMLCanvasElement\n  |HTMLCollection|HTMLContentElement|HTMLDListElement|HTMLDataElement|HTMLDataListElement|HTMLDialogElement|HTMLDivElement\n  |HTMLDocument|HTMLElement|HTMLEmbedElement|HTMLFieldSetElement|HTMLFontElement|HTMLFormControlsCollection|HTMLFormElement\n  |HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLIFrameElement|HTMLImageElement|HTMLInputElement\n  |HTMLKeygenElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLLinkElement|HTMLMapElement|HTMLMediaElement\n  |HTMLMetaElement|HTMLMeterElement|HTMLModElement|HTMLOListElement|HTMLObjectElement|HTMLOptGroupElement|HTMLOptionElement\n  |HTMLOptionsCollection|HTMLOutputElement|HTMLParagraphElement|HTMLParamElement|HTMLPreElement|HTMLProgressElement\n  |HTMLQuoteElement|HTMLScriptElement|HTMLSelectElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElement\n  |HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement\n  |HTMLTableRowElement|HTMLTableSectionElement|HTMLTextAreaElement|HTMLTimeElement|HTMLTitleElement|HTMLTrackElement\n  |HTMLUListElement|HTMLUnknownElement|HTMLVideoElement|HashChangeEvent|History|IDBCursor|IDBCursorWithValue|IDBDatabase\n  |IDBEnvironment|IDBFactory|IDBIndex|IDBKeyRange|IDBMutableFile|IDBObjectStore|IDBOpenDBRequest|IDBRequest|IDBTransaction\n  |IDBVersionChangeEvent|IIRFilterNode|IdentityManager|ImageBitmap|ImageBitmapFactories|ImageData|Index|InputDeviceCapabilities\n  |InputEvent|InstallEvent|InstallTrigger|KeyboardEvent|LinkStyle|LocalFileSystem|LocalFileSystemSync|Location|MIDIAccess\n  |MIDIConnectionEvent|MIDIInput|MIDIInputMap|MIDIOutputMap|MediaElementAudioSourceNode|MediaError|MediaKeyMessageEvent\n  |MediaKeySession|MediaKeyStatusMap|MediaKeySystemAccess|MediaKeySystemConfiguration|MediaKeys|MediaRecorder|MediaStream\n  |MediaStreamAudioDestinationNode|MediaStreamAudioSourceNode|MessageChannel|MessageEvent|MessagePort|MouseEvent\n  |MutationObserver|MutationRecord|NamedNodeMap|Navigator|NavigatorConcurrentHardware|NavigatorGeolocation|NavigatorID\n  |NavigatorLanguage|NavigatorOnLine|Node|NodeFilter|NodeIterator|NodeList|NonDocumentTypeChildNode|Notification\n  |OfflineAudioCompletionEvent|OfflineAudioContext|OscillatorNode|PageTransitionEvent|PannerNode|ParentNode|PasswordCredential\n  |Path2D|PaymentAddress|PaymentRequest|PaymentResponse|Performance|PerformanceEntry|PerformanceFrameTiming|PerformanceMark\n  |PerformanceMeasure|PerformanceNavigation|PerformanceNavigationTiming|PerformanceObserver|PerformanceObserverEntryList\n  |PerformanceResourceTiming|PerformanceTiming|PeriodicSyncEvent|PeriodicWave|Plugin|Point|PointerEvent|PopStateEvent\n  |PortCollection|Position|PositionError|PositionOptions|PresentationConnectionClosedEvent|PresentationConnectionList\n  |PresentationReceiver|ProcessingInstruction|ProgressEvent|PromiseRejectionEvent|PushEvent|PushRegistrationManager\n  |RTCCertificate|RTCConfiguration|RTCPeerConnection|RTCSessionDescriptionCallback|RTCStatsReport|RadioNodeList|RandomSource\n  |Range|ReadableByteStream|RenderingContext|SVGAElement|SVGAngle|SVGAnimateColorElement|SVGAnimateElement|SVGAnimateMotionElement\n  |SVGAnimateTransformElement|SVGAnimatedAngle|SVGAnimatedBoolean|SVGAnimatedEnumeration|SVGAnimatedInteger|SVGAnimatedLength\n  |SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedPoints|SVGAnimatedPreserveAspectRatio\n  |SVGAnimatedRect|SVGAnimatedString|SVGAnimatedTransformList|SVGAnimationElement|SVGCircleElement|SVGClipPathElement\n  |SVGCursorElement|SVGDefsElement|SVGDescElement|SVGElement|SVGEllipseElement|SVGEvent|SVGFilterElement|SVGFontElement\n  |SVGFontFaceElement|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFontFaceUriElement\n  |SVGForeignObjectElement|SVGGElement|SVGGlyphElement|SVGGradientElement|SVGHKernElement|SVGImageElement|SVGLength\n  |SVGLengthList|SVGLineElement|SVGLinearGradientElement|SVGMPathElement|SVGMaskElement|SVGMatrix|SVGMissingGlyphElement\n  |SVGNumber|SVGNumberList|SVGPathElement|SVGPatternElement|SVGPoint|SVGPolygonElement|SVGPolylineElement|SVGPreserveAspectRatio\n  |SVGRadialGradientElement|SVGRect|SVGRectElement|SVGSVGElement|SVGScriptElement|SVGSetElement|SVGStopElement|SVGStringList\n  |SVGStylable|SVGStyleElement|SVGSwitchElement|SVGSymbolElement|SVGTRefElement|SVGTSpanElement|SVGTests|SVGTextElement\n  |SVGTextPositioningElement|SVGTitleElement|SVGTransform|SVGTransformList|SVGTransformable|SVGUseElement|SVGVKernElement\n  |SVGViewElement|ServiceWorker|ServiceWorkerContainer|ServiceWorkerGlobalScope|ServiceWorkerRegistration|ServiceWorkerState\n  |ShadowRoot|SharedWorker|SharedWorkerGlobalScope|SourceBufferList|StereoPannerNode|Storage|StorageEvent|StyleSheet\n  |StyleSheetList|SubtleCrypto|SyncEvent|Text|TextMetrics|TimeEvent|TimeRanges|Touch|TouchEvent|TouchList|Transferable\n  |TreeWalker|UIEvent|USVString|VRDisplayCapabilities|ValidityState|WaveShaperNode|WebGL|WebGLActiveInfo|WebGLBuffer\n  |WebGLContextEvent|WebGLFramebuffer|WebGLProgram|WebGLRenderbuffer|WebGLRenderingContext|WebGLShader|WebGLShaderPrecisionFormat\n  |WebGLTexture|WebGLTimerQueryEXT|WebGLTransformFeedback|WebGLUniformLocation|WebGLVertexArrayObject|WebGLVertexArrayObjectOES\n  |WebSocket|WebSockets|WebVTT|WheelEvent|Window|WindowBase64|WindowEventHandlers|WindowTimers|Worker|WorkerGlobalScope\n  |WorkerLocation|WorkerNavigator|XMLHttpRequest|XMLHttpRequestEventTarget|XMLSerializer|XPathExpression|XPathResult\n  |XSLTProcessor)\n)\\b","captures":{"1":{"name":"support.variable.dom.js"},"2":{"name":"support.class.dom.js"}}},{"match":"(?x) (\\.) \\s*\n(?:\n  (ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE\n  |DOMSTRING_SIZE_ERR|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|HIERARCHY_REQUEST_ERR|INDEX_SIZE_ERR\n  |INUSE_ATTRIBUTE_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR\n  |NOT_SUPPORTED_ERR|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|WRONG_DOCUMENT_ERR)\n  |\n  (_content|[xyz]|abbr|above|accept|acceptCharset|accessKey|action|align|[av]Link(?:color)?|all|alt|anchors|appCodeName\n  |appCore|applets|appMinorVersion|appName|appVersion|archive|areas|arguments|attributes|availHeight|availLeft|availTop\n  |availWidth|axis|background|backgroundColor|backgroundImage|below|bgColor|body|border|borderBottomWidth|borderColor\n  |borderLeftWidth|borderRightWidth|borderStyle|borderTopWidth|borderWidth|bottom|bufferDepth|callee|caller|caption\n  |cellPadding|cells|cellSpacing|ch|characterSet|charset|checked|childNodes|chOff|cite|classes|className|clear\n  |clientInformation|clip|clipBoardData|closed|code|codeBase|codeType|color|colorDepth|cols|colSpan|compact|complete\n  |components|content|controllers|cookie|cookieEnabled|cords|cpuClass|crypto|current|data|dateTime|declare|defaultCharset\n  |defaultChecked|defaultSelected|defaultStatus|defaultValue|defaultView|defer|description|dialogArguments|dialogHeight\n  |dialogLeft|dialogTop|dialogWidth|dir|directories|disabled|display|docmain|doctype|documentElement|elements|embeds\n  |enabledPlugin|encoding|enctype|entities|event|expando|external|face|fgColor|filename|firstChild|fontFamily|fontSize\n  |fontWeight|form|formName|forms|frame|frameBorder|frameElement|frames|hasFocus|hash|headers|height|history|host\n  |hostname|href|hreflang|hspace|htmlFor|httpEquiv|id|ids|ignoreCase|images|implementation|index|innerHeight|innerWidth\n  |input|isMap|label|lang|language|lastChild|lastIndex|lastMatch|lastModified|lastParen|layer[sXY]|left|leftContext\n  |lineHeight|link|linkColor|links|listStyleType|localName|location|locationbar|longDesc|lowsrc|lowSrc|marginBottom\n  |marginHeight|marginLeft|marginRight|marginTop|marginWidth|maxLength|media|menubar|method|mimeTypes|multiline|multiple\n  |name|nameProp|namespaces|namespaceURI|next|nextSibling|nodeName|nodeType|nodeValue|noHref|noResize|noShade|notationName\n  |notations|noWrap|object|offscreenBuffering|onLine|onreadystatechange|opener|opsProfile|options|oscpu|outerHeight\n  |outerWidth|ownerDocument|paddingBottom|paddingLeft|paddingRight|paddingTop|page[XY]|page[XY]Offset|parent|parentLayer\n  |parentNode|parentWindow|pathname|personalbar|pixelDepth|pkcs11|platform|plugins|port|prefix|previous|previousDibling\n  |product|productSub|profile|profileend|prompt|prompter|protocol|publicId|readOnly|readyState|referrer|rel|responseText\n  |responseXML|rev|right|rightContext|rowIndex|rows|rowSpan|rules|scheme|scope|screen[XY]|screenLeft|screenTop|scripts\n  |scrollbars|scrolling|sectionRowIndex|security|securityPolicy|selected|selectedIndex|selection|self|shape|siblingAbove\n  |siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary\n  |systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead\n  |title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile\n  |vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex)\n)\n\\b","captures":{"1":{"name":"meta.delimiter.property.period.js"},"2":{"name":"support.constant.dom.js"},"3":{"name":"support.variable.property.dom.js"}}},{"match":"(?<!\\.)\\b(module|exports|__filename|__dirname|global|process)(?!\\s*:)\\b","name":"support.variable.js"},{"match":"\\b(Infinity|NaN|undefined)\\b","name":"constant.language.js"},{"begin":"(?<=[\\[=(?:+,!]|^|return|=>|&&|\\|\\|)\\s*(/)(?![/*+?])(?=.*/)","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.js"}},"end":"(/)[gimuy]*","endCaptures":{"1":{"name":"punctuation.definition.string.end.js"}},"name":"string.regexp.js","patterns":[{"include":"source.js.regexp"}]},{"begin":"\\?","beginCaptures":{"0":{"name":"keyword.operator.ternary.js"}},"end":":","endCaptures":{"0":{"name":"keyword.operator.ternary.js"}},"patterns":[{"include":"#prevent_object_keys_matching"},{"include":"$self"}]},{"include":"#operators"},{"include":"#method_calls"},{"include":"#function_calls"},{"include":"#numbers"},{"include":"#objects"},{"include":"#properties"},{"match":"((?<!\\.|[\\w$])(?![_\\$]+[^A-Z0-9_$])\\$*\\b(?:[A-Z_$][A-Z0-9_$]*)\\b\\$*)","name":"constant.other.js"},{"match":"(?<!\\$)\\b[0-9]+[\\w$]*","name":"invalid.illegal.identifier.js"},{"match":"\\;","name":"punctuation.terminator.statement.js"},{"match":",","name":"meta.delimiter.object.comma.js"},{"match":"\\.","name":"meta.delimiter.method.period.js"},{"match":"({)(})","captures":{"1":{"name":"punctuation.section.scope.begin.js"},"2":{"name":"punctuation.section.scope.end.js"}}},{"begin":"{","beginCaptures":{"0":{"name":"meta.brace.curly.js"}},"end":"}","endCaptures":{"0":{"name":"meta.brace.curly.js"}},"patterns":[{"include":"$self"}]},{"begin":"\\(","beginCaptures":{"0":{"name":"meta.brace.round.js"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.js"}},"patterns":[{"include":"$self"}]},{"match":"\\[|\\]","name":"meta.brace.square.js"},{"match":"\\A#!.*$","name":"comment.line.shebang.js"}],"repository":{"numbers":{"patterns":[{"match":"\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)","name":"constant.numeric.hex.js"},{"match":"\\b(?<!\\$)0(b|B)[01]+\\b(?!\\$)","name":"constant.numeric.binary.js"},{"match":"\\b(?<!\\$)0(o|O)?[0-7]+\\b(?!\\$)","name":"constant.numeric.octal.js"},{"match":"(?x)\n(?<!\\$)(?:\n  (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n  (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)|       # 1.E+3\n  (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)|       # .1E+3\n  (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)|            # 1E+3\n  (?:\\b[0-9]+(\\.)[0-9]+\\b)|                # 1.1\n  (?:\\b[0-9]+(\\.)\\B)|                      # 1.\n  (?:\\B(\\.)[0-9]+\\b)|                      # .1\n  (?:\\b[0-9]+\\b(?!\\.))                     # 1\n)(?!\\$)","captures":{"0":{"name":"constant.numeric.decimal.js"},"1":{"name":"meta.delimiter.decimal.period.js"},"2":{"name":"meta.delimiter.decimal.period.js"},"3":{"name":"meta.delimiter.decimal.period.js"},"4":{"name":"meta.delimiter.decimal.period.js"},"5":{"name":"meta.delimiter.decimal.period.js"},"6":{"name":"meta.delimiter.decimal.period.js"}}}]},"operators":{"patterns":[{"match":"%=|\\+=|-=|\\*=|(?<!\\()/=","name":"keyword.operator.assignment.compound.js"},{"match":"&=|\\^=|<<=|>>=|>>>=|\\|=","name":"keyword.operator.assignment.compound.bitwise.js"},{"match":"<<|>>>|>>","name":"keyword.operator.bitwise.shift.js"},{"match":"!==|!=|<=|>=|===|==|<|>","name":"keyword.operator.comparison.js"},{"match":"&&|!!|!|\\|\\|","name":"keyword.operator.logical.js"},{"match":"&|\\||\\^|~","name":"keyword.operator.bitwise.js"},{"match":"=|:","name":"keyword.operator.assignment.js"},{"match":"--","name":"keyword.operator.decrement.js"},{"match":"\\+\\+","name":"keyword.operator.increment.js"},{"match":"%|\\*|/|-|\\+","name":"keyword.operator.js"}]},"strings":{"patterns":[{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"name":"string.quoted.single.js","patterns":[{"include":"#string_escapes"},{"match":"[^']*[^\\n\\r'\\\\]$","name":"invalid.illegal.string.js"}]},{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"name":"string.quoted.double.js","patterns":[{"include":"#string_escapes"},{"match":"[^\"]*[^\\n\\r\"\\\\]$","name":"invalid.illegal.string.js"}]},{"begin":"((\\w+)?(html|HTML|Html))\\s*(`)","beginCaptures":{"1":{"name":"entity.name.function.js"},"4":{"name":"punctuation.definition.string.begin.js"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"name":"string.quoted.template.html.js","patterns":[{"include":"#string_escapes"},{"include":"#interpolated_js"},{"include":"text.html.basic"}]},{"begin":"(?<=innerHTML)\\s*(\\+?=)\\s*(?=`)","beginCaptures":{"1":{"name":"keyword.operator.assignment.js"}},"end":"(?<=`)","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"contentName":"string.quoted.template.html.js","patterns":[{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"patterns":[{"include":"#string_escapes"},{"include":"#interpolated_js"},{"include":"text.html.basic"}]}]},{"begin":"(Relay\\.QL)\\s*(`)","beginCaptures":{"1":{"name":"entity.name.function.js"},"2":{"name":"punctuation.definition.string.begin.js"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"name":"string.quoted.template.graphql.js","patterns":[{"include":"#string_escapes"},{"include":"#interpolated_js"},{"include":"source.graphql"}]},{"begin":"(sql|SQL|Sql)\\s*(`)","beginCaptures":{"1":{"name":"entity.name.function.js"},"2":{"name":"punctuation.definition.string.begin.js"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"name":"string.quoted.template.sql.js","patterns":[{"include":"#string_escapes"},{"include":"#interpolated_js"},{"include":"source.sql"}]},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"name":"string.quoted.template.js","patterns":[{"include":"#string_escapes"},{"include":"#interpolated_js"}]}]},"string_escapes":{"patterns":[{"match":"\\\\u(?![A-Fa-f0-9]{4}|{[A-Fa-f0-9]+})[^'\"]*","name":"invalid.illegal.unicode-escape.js"},{"match":"\\\\u(?:[A-Fa-f0-9]{4}|({)([A-Fa-f0-9]+)(}))","name":"constant.character.escape.js","captures":{"1":{"name":"punctuation.definition.unicode-escape.begin.bracket.curly.js"},"2":{"patterns":[{"match":"[A-Fa-f\\d]{7,}|(?!10)[A-Fa-f\\d]{6}","name":"invalid.illegal.unicode-escape.js"}]},"3":{"name":"punctuation.definition.unicode-escape.end.bracket.curly.js"}}},{"match":"\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)","name":"constant.character.escape.js"}]},"function_params":{"patterns":[{"begin":"\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.bracket.round.js"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.js"}},"name":"meta.parameters.js","patterns":[{"match":"(\\.\\.\\.)([a-zA-Z_$][\\w$]*)","captures":{"1":{"name":"keyword.operator.spread.js"},"2":{"name":"variable.parameter.rest.function.js"}}},{"include":"$self"},{"match":"[a-zA-Z_$][\\w$]*","name":"variable.parameter.function.js"}]}]},"function_body":{"patterns":[{"begin":"{","beginCaptures":{"0":{"name":"punctuation.definition.function.body.begin.bracket.curly.js"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.function.body.end.bracket.curly.js"}},"patterns":[{"include":"$self"}]}]},"function_innards":{"patterns":[{"match":"(?:\\b(async)\\b\\s*)?\\b(function)\\b(?:\\s*(\\*))?","captures":{"1":{"name":"storage.modifier.async.js"},"2":{"name":"storage.type.function.js"},"3":{"name":"storage.modifier.generator.js"}}},{"match":"[a-zA-Z_$][\\w$]*(?=\\s*\\()","name":"entity.name.function.js"},{"include":"#function_params"},{"include":"#comments"}]},"arrow_function_innards":{"patterns":[{"match":"=>","name":"storage.type.function.arrow.js"},{"include":"#function_params"},{"match":"([a-zA-Z_$][\\w$]*)(?=\\s*=>)","captures":{"0":{"name":"meta.parameters.js"},"1":{"name":"variable.parameter.function.js"}}},{"match":"(\\d[\\w$]*)","captures":{"0":{"name":"meta.parameters.js"},"1":{"name":"invalid.illegal.identifier.js"}}}]},"arguments":{"patterns":[{"begin":"\\(","beginCaptures":{"0":{"name":"punctuation.definition.arguments.begin.bracket.round.js"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.bracket.round.js"}},"name":"meta.arguments.js","patterns":[{"include":"$self"}]}]},"method_calls":{"patterns":[{"begin":"(\\.)\\s*([\\w$]+)\\s*(?=\\()","beginCaptures":{"1":{"name":"meta.delimiter.method.period.js"},"2":{"patterns":[{"match":"(?x)\n\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\nReadystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\nBefore(cut|deactivate|unload|update|paste|print|editfocus|activate)|\nBlur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\nChange|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\nDatasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\nDragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\nErrorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\b","name":"support.function.event-handler.js"},{"match":"(?x)\n\\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\nscrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\nsup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|\nMonth|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\nTime|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\nsavePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\ncontextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\ncreateEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\ntest|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\nuntaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\nprint|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\nfileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\nforward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\nabort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\nreleaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\nTime|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\nAttention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\nmoveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\b","name":"support.function.js"},{"match":"(?x)\n\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\nappendChild|appendData|before|blur|canPlayType|captureStream|\ncaretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\ncloneContents|cloneNode|cloneRange|close|closest|collapse|\ncompareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\nconvertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\ncreateAttributeNS|createCaption|createCDATASection|createComment|\ncreateContextualFragment|createDocument|createDocumentFragment|\ncreateDocumentType|createElement|createElementNS|createEntityReference|\ncreateEvent|createExpression|createHTMLDocument|createNodeIterator|\ncreateNSResolver|createProcessingInstruction|createRange|createShadowRoot|\ncreateTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\ndeleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\ndeleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\nenableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\nexitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\ngetAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\ngetAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\ngetClientRects|getContext|getDestinationInsertionPoints|getElementById|\ngetElementsByClassName|getElementsByName|getElementsByTagName|\ngetElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\ngetVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\nhasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\ninsertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\ninsertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\nisPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\nlookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\nmoveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\nparentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\npreviousSibling|probablySupportsContext|queryCommandEnabled|\nqueryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\nquerySelector|querySelectorAll|registerContentHandler|registerElement|\nregisterProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\nremoveAttributeNode|removeAttributeNS|removeChild|removeEventListener|\nremoveItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\nrequestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\nscrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\nsetAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\nsetCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\nsetRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\nslice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\nsubmit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\ntoDataURL|toggle|toString|values|write|writeln)\\b","name":"support.function.dom.js"},{"match":"[a-zA-Z_$][\\w$]*","name":"entity.name.function.js"},{"match":"\\d[\\w$]*","name":"invalid.illegal.identifier.js"}]}},"end":"(?<=\\))","name":"meta.method-call.js","patterns":[{"include":"#arguments"}]}]},"function_calls":{"patterns":[{"begin":"([\\w$]+)\\s*(?=\\()","beginCaptures":{"1":{"patterns":[{"match":"(?x)\n\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|\ndecodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|\nrequire|set(Interval|Timeout)|clear(Interval|Timeout))\\b","name":"support.function.js"},{"match":"[a-zA-Z_$][\\w$]*","name":"entity.name.function.js"},{"match":"\\d[\\w$]*","name":"invalid.illegal.identifier.js"}]}},"end":"(?<=\\))","name":"meta.function-call.js","patterns":[{"include":"#arguments"}]}]},"objects":{"patterns":[{"match":"[A-Z][A-Z0-9_$]*(?=\\s*\\.\\s*[a-zA-Z_$]\\w*)","name":"constant.other.object.js"},{"match":"[a-zA-Z_$][\\w$]*(?=\\s*\\.\\s*[a-zA-Z_$]\\w*)","name":"variable.other.object.js"}]},"properties":{"patterns":[{"match":"(\\.)\\s*([A-Z][A-Z0-9_$]*\\b\\$*)(?=\\s*\\.\\s*[a-zA-Z_$]\\w*)","captures":{"1":{"name":"meta.delimiter.property.period.js"},"2":{"name":"constant.other.object.property.js"}}},{"match":"(\\.)\\s*(\\$*[a-zA-Z_$][\\w$]*)(?=\\s*\\.\\s*[a-zA-Z_$]\\w*)","captures":{"1":{"name":"meta.delimiter.property.period.js"},"2":{"name":"variable.other.object.property.js"}}},{"match":"(\\.)\\s*([A-Z][A-Z0-9_$]*\\b\\$*)","captures":{"1":{"name":"meta.delimiter.property.period.js"},"2":{"name":"constant.other.property.js"}}},{"match":"(\\.)\\s*(\\$*[a-zA-Z_$][\\w$]*)","captures":{"1":{"name":"meta.delimiter.property.period.js"},"2":{"name":"variable.other.property.js"}}},{"match":"(\\.)\\s*([0-9][\\w$]*)","captures":{"1":{"name":"meta.delimiter.property.period.js"},"2":{"name":"invalid.illegal.identifier.js"}}}]},"interpolated_js":{"patterns":[{"begin":"\\${","captures":{"0":{"name":"punctuation.section.embedded.js"}},"end":"}","name":"source.js.embedded.source","patterns":[{"begin":"{","beginCaptures":{"0":{"name":"meta.brace.curly.js"}},"end":"}","endCaptures":{"0":{"name":"meta.brace.curly.js"}},"patterns":[{"include":"$self"}]},{"include":"$self"}]}]},"docblock":{"patterns":[{"match":"(?x) (?<!\\w)@\n(abstract|access|alias|arg|argument|async|attribute|augments|author|beta|borrows|bubbes|callback|chainable|class\n|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc\n|description|dict|emits|enum|event|example|exports?|extends|extension|extension_for|extensionfor|external|file\n|fileoverview|final|fires|for|function|global|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance\n|interface|kind|lends|license|listens|main|member|memberof|method|mixex|mixins?|modifies|module|name|namespace\n|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|preserve|private|prop|property\n|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress\n|template|this|throws|todo|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce)\\b","name":"storage.type.class.jsdoc"},{"match":"(?x)\n(\n  \\[\n    [^\\]]+            # Optional [link text] preceding {@link syntax}\n  \\]\n\n  (?!                  # Check to avoid highlighting two sets of link text\n    {\n      @\\w+            # Tagname\n      \\s+\n      [^\\s|}]+        # Namepath/URL\n      [\\s|]           # Whitespace or bar delimiting description\n      [^}]*\n    }\n  )\n)?\n\n(?:\n  {\n    (\n      @\n      (?: link         # Name of tag\n        | linkcode\n        | linkplain\n        | tutorial\n      )\n    )\n\n    \\s+\n\n    ([^\\s|}]+)        # Namepath or URL\n\n    (?:                # Optional link text following link target\n      [\\s|]           # Bar or space separating target and text\n      [^}]*            # Actual text\n    )?\n  }\n)","captures":{"0":{"name":"entity.name.type.instance.jsdoc"},"1":{"name":"constant.other.description.jsdoc"},"2":{"name":"storage.type.class.jsdoc"},"3":{"name":"variable.other.description.jsdoc"}},"name":"other.meta.jsdoc"},{"match":"(?x)\n(?:(?<=@param)|(?<=@arg)|(?<=@argument)|(?<=@type))\n\\s+\n({(?:\n  \\* |                                       # {*} any type\n  \\? |                                       # {?} unknown type\n\n  (?:\n    (?:                                       # Check for a prefix\n      \\? |                                   # {?string} nullable type\n      !   |                                   # {!string} non-nullable type\n      \\.{3}                                  # {...string} variable number of parameters\n      [*?]?                                   # {...*} Variable number of mixed types\n    )?\n\n    (?:\n      (?:\n        function                              # {function(string, number)} function type\n        \\s*\n        (?:\n          (?:\n            \\(\\s*\n            \\.{3}[a-zA-Z_$][\\w$]+           # {function(...string)} variable number of parameters\n            \\s*\\)\n          )\n          |\n          (?:\n            \\(\\s*\n            (?:\n              (?:\\?|!)?                      # {function(?string)} or function(!string)} nullable/non-nullable type\n              [a-zA-Z_$][\\w$]+\n              (?:\\[\\])?                     # {function(string[])} type application, an array of strings\n              (?:\n                (?:\n                  (?:\n                    \\s*,\\s*\n                    (?:\\?|!)?                # {function(?string)} or function(!string)} nullable/non-nullable type\n                    [a-zA-Z_$][\\w$]+\n                    (?:\\[\\])?               # {function(string[])} type application, an array of strings\n                  )*\n                  (?:\n                    \\s*,\\s*\n                    \\.{3}[a-zA-Z_$][\\w$]+   # {function(string, ...string)} variable number of parameters\n                  )?\n                )\n                |\n                (?:\n                  =?                          # {function(string=)} optional parameter\n                  (?:\n                    (?<!=)                    # {function(string, string, number)} loop non-optional params\n                    \\s*,\\s*\n                    (?:\\?|!)?                # {function(?string)} or function(!string)} nullable/non-nullable type\n                    [a-zA-Z_$][\\w$]+\n                    (?:\\[\\])?               # {function(string[])} type application, an array of strings\n                    =?\n                  )*\n                  (?:\n                    (?<==)                    # {function(string, string=, number=)} loop optional params\n                    \\s*,\\s*\n                    (?:\\?|!)?                # {function(?string)} or function(!string)} nullable/non-nullable type\n                    [a-zA-Z_$][\\w$]+\n                    (?:\\[\\])?               # {function(string[])} type application, an array of strings\n                    =\n                  )*\n                )\n              )\n            )?\n            \\s*\\)\n          )\n        )\n        (?:                                   # {function(): string} function return type\n          \\s*:\\s*\n          [a-zA-Z_$][\\w$]*\n        )?\n      )?\n      |\n      (?:\n        \\(                                   # Opening bracket of multiple types with parenthesis {(string|number)}\n          [a-zA-Z_$]+\n          (?:\n            (?:\n              [\\w$]*\n              (?:\\[\\])?                     # {(string[]|number)} type application, an array of strings or a number\n            ) |\n            \\.?<[\\w$]+(?:,\\s+[\\w$]+)*>    # {Array<string>} or {Object<string, number>} type application (optional .)\n          )\n          (?:\n            [\\.|~]                           # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\n            [a-zA-Z_$]+\n            (?:\n              (?:\n                [\\w$]*\n                (?:\\[\\])?                   # {(string|number[])} type application, a string or an array of numbers\n              ) |\n              \\.?<[\\w$]+(?:,\\s+[\\w$]+)*>  # {Array<string>} or {Object<string, number>} type application (optional .)\n            )\n          )*\n        \\) |\n        [a-zA-Z_$]+\n        (?:\n          (?:\n            [\\w$]*\n            (?:\\[\\])?                       # {(string|number[])} type application, a string or an array of numbers\n          ) |\n          \\.?<[\\w$]+(?:,\\s+[\\w$]+)*>      # {Array<string>} or {Object<string, number>} type application (optional .)\n        )\n        (?:\n          [\\.|~]                             # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\n          [a-zA-Z_$]+\n          (?:\n            [\\w$]* |\n            \\.?<[\\w$]+(?:,\\s+[\\w$]+)*>    # {Array<string>} or {Object<string, number>} type application (optional .)\n          )\n        )*\n      )\n    )\n                                              # Check for suffix\n    (?:\\[\\])?                               # {string[]} type application, an array of strings\n    =?                                        # {string=} optional parameter\n  )\n)})\n\\s+\n(\n  \\[                                         # [foo] optional parameter\n    \\s*\n    (?:\n      [a-zA-Z_$][\\w$]*\n      (?:\n        (?:\\[\\])?                           # Foo[].bar properties within an array\n        \\.                                   # Foo.Bar namespaced parameter\n        [a-zA-Z_$][\\w$]*\n      )*\n      (?:\n        \\s*\n        =                                     # [foo=bar] Default parameter value\n        \\s*\n        (?:\n          [\\w$.\\s]* |                       # [foo=bar] Unquoted\n          \"[^\"]*\"     |                       # [foo=\"bar\"] Double-quoted\n          '[^']*'     |                       # [foo='bar'] Single-quoted\n          {[^{}]*}    |                       # [foo={a:1}] Object literal\n          \\[ [^\\[\\]]* \\]                  # [foo=[1,2]] Array literal\n        )\n      )?\n    )\n    \\s*\n  \\] |\n  (?:\n    [a-zA-Z_$][\\w$]*\n    (?:\n      (?:\\[\\])?                             # Foo[].bar properties within an array\n      \\.                                     # Foo.Bar namespaced parameter\n      [a-zA-Z_$][\\w$]*\n    )*\n  )?\n)\n\\s+\n(?:-\\s+)?                                     # optional hyphen before the description\n((?:(?!\\*\\/).)*)                             # The type description","captures":{"0":{"name":"other.meta.jsdoc"},"1":{"name":"entity.name.type.instance.jsdoc"},"2":{"name":"variable.other.jsdoc"},"3":{"name":"other.description.jsdoc","patterns":[{"include":"#docblock"}]}}},{"match":"(?x)\n({(?:\n  \\* |                                       # {*} any type\n  \\? |                                       # {?} unknown type\n\n  (?:\n    (?:                                       # Check for a prefix\n      \\? |                                   # {?string} nullable type\n      !   |                                   # {!string} non-nullable type\n      \\.{3}                                  # {...string} variable number of parameters\n      [*?]?                                   # {...*} Variable number of mixed types\n    )?\n\n    (?:\n      (?:\n        function                              # {function(string, number)} function type\n        \\s*\n        (?:\n          (?:\n            \\(\\s*\n            \\.{3}[a-zA-Z_$][\\w$]+           # {function(...string)} variable number of parameters\n            \\s*\\)\n          )\n          |\n          (?:\n            \\(\\s*\n            (?:\n              (?:\\?|!)?                      # {function(?string)} or function(!string)} nullable/non-nullable type\n              [a-zA-Z_$][\\w$]+\n              (?:\\[\\])?                     # {function(string[])} type application, an array of strings\n              (?:\n                (?:\n                  (?:\n                    \\s*,\\s*\n                    (?:\\?|!)?                # {function(?string)} or function(!string)} nullable/non-nullable type\n                    [a-zA-Z_$][\\w$]+\n                    (?:\\[\\])?               # {function(string[])} type application, an array of strings\n                  )*\n                  (?:\n                    \\s*,\\s*\n                    \\.{3}[a-zA-Z_$][\\w$]+   # {function(string, ...string)} variable number of parameters\n                  )?\n                )\n                |\n                (?:\n                  =?                          # {function(string=)} optional parameter\n                  (?:\n                    (?<!=)                    # {function(string, string, number)} loop non-optional params\n                    \\s*,\\s*\n                    (?:\\?|!)?                # {function(?string)} or function(!string)} nullable/non-nullable type\n                    [a-zA-Z_$][\\w$]+\n                    (?:\\[\\])?               # {function(string[])} type application, an array of strings\n                    =?\n                  )*\n                  (?:\n                    (?<==)                    # {function(string, string=, number=)} loop optional params\n                    \\s*,\\s*\n                    (?:\\?|!)?                # {function(?string)} or function(!string)} nullable/non-nullable type\n                    [a-zA-Z_$][\\w$]+\n                    (?:\\[\\])?               # {function(string[])} type application, an array of strings\n                    =\n                  )*\n                )\n              )\n            )?\n            \\s*\\)\n          )\n        )\n        (?:                                   # {function(): string} function return type\n          \\s*:\\s*\n          [a-zA-Z_$][\\w$]*\n        )?\n      )?\n      |\n      (?:\n        \\(                                   # Opening bracket of multiple types with parenthesis {(string|number)}\n          [a-zA-Z_$]+\n          (?:\n            (?:\n              [\\w$]*\n              (?:\\[\\])?                     # {(string[]|number)} type application, an array of strings or a number\n            ) |\n            \\.?<[\\w$]+(?:,\\s+[\\w$]+)*>    # {Array<string>} or {Object<string, number>} type application (optional .)\n          )\n          (?:\n            [\\.|~]                           # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\n            [a-zA-Z_$]+\n            (?:\n              (?:\n                [\\w$]*\n                (?:\\[\\])?                   # {(string|number[])} type application, a string or an array of numbers\n              ) |\n              \\.?<[\\w$]+(?:,\\s+[\\w$]+)*>  # {Array<string>} or {Object<string, number>} type application (optional .)\n            )\n          )*\n        \\) |\n        [a-zA-Z_$]+\n        (?:\n          (?:\n            [\\w$]*\n            (?:\\[\\])?                       # {(string|number[])} type application, a string or an array of numbers\n          ) |\n          \\.?<[\\w$]+(?:,\\s+[\\w$]+)*>      # {Array<string>} or {Object<string, number>} type application (optional .)\n        )\n        (?:\n          [\\.|~]                             # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\n          [a-zA-Z_$]+\n          (?:\n            [\\w$]* |\n            \\.?<[\\w$]+(?:,\\s+[\\w$]+)*>    # {Array<string>} or {Object<string, number>} type application (optional .)\n          )\n        )*\n      )\n    )\n                                              # Check for suffix\n    (?:\\[\\])?                               # {string[]} type application, an array of strings\n    =?                                        # {string=} optional parameter\n  )\n)})\n\\s+\n(?:-\\s+)?                                    # optional hyphen before the description\n((?:(?!\\*\\/).)*)                            # The type description","captures":{"0":{"name":"other.meta.jsdoc"},"1":{"name":"entity.name.type.instance.jsdoc"},"2":{"name":"other.description.jsdoc","patterns":[{"include":"#docblock"}]}}}]},"comments":{"patterns":[{"begin":"/\\*\\*(?!/)","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"name":"comment.block.documentation.js","patterns":[{"include":"#docblock"}]},{"begin":"/\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"name":"comment.block.js"},{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"$","name":"comment.line.double-slash.js"}]},"switch_statement":{"patterns":[{"begin":"\\bswitch\\b","beginCaptures":{"0":{"name":"keyword.control.switch.js"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.section.switch-block.end.bracket.curly.js"}},"name":"meta.switch-statement.js","patterns":[{"begin":"\\(","beginCaptures":{"0":{"name":"punctuation.definition.switch-expression.begin.bracket.round.js"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.switch-expression.end.bracket.round.js"}},"patterns":[{"include":"$self"}]},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.definition.section.switch-block.begin.bracket.curly.js"}},"end":"(?=})","patterns":[{"begin":"\\bcase\\b","beginCaptures":{"0":{"name":"keyword.control.case.js"}},"end":":","endCaptures":{"0":{"name":"punctuation.definition.section.case-statement.js"}},"patterns":[{"include":"#prevent_object_keys_matching"},{"include":"$self"}]},{"match":"(?:^\\s*)?\\b(default)\\b\\s*(:)","captures":{"1":{"name":"keyword.control.default.js"},"2":{"name":"punctuation.definition.section.case-statement.js"}}},{"include":"$self"}]}]}]},"prevent_object_keys_matching":{"patterns":[{"match":"(\\w+)(?=\\s*:)","captures":{"1":{"patterns":[{"include":"$self"}]}}}]}}},"/Users/sadick/github/highlights/deps/language-javascript/grammars/regular expression replacement (javascript).cson":{"scopeName":"source.js.regexp.replacement","name":"Regular Expression Replacement (JavaScript)","fileTypes":[],"patterns":[{"include":"#regexp-replacement"}],"repository":{"regexp-replacement":{"patterns":[{"match":"\\$([1-9][0-9]|[1-9]|0[1-9]|[&`'])","name":"variable.regexp.replacement"},{"match":"\\$\\$","name":"constant.character.escape.dollar.regexp.replacement"},{"match":"\\\\[^$]","name":"constant.character.escape.backslash.regexp.replacement"}]}}},"/Users/sadick/github/highlights/deps/language-javascript/grammars/regular expressions (javascript).cson":{"scopeName":"source.js.regexp","name":"Regular Expressions (JavaScript)","fileTypes":[],"patterns":[{"include":"#regexp"}],"repository":{"regex-character-class":{"patterns":[{"match":"\\\\[wWsSdDtrnvf]|\\.","name":"constant.character.character-class.regexp"},{"match":"\\\\([0-7]{3}|x\\h\\h|u\\h\\h\\h\\h)","name":"constant.character.numeric.regexp"},{"match":"\\\\c[A-Z]","name":"constant.character.control.regexp"},{"match":"\\\\.","name":"constant.character.escape.backslash.regexp"}]},"regexp":{"patterns":[{"match":"\\\\[bB]|\\^|\\$","name":"keyword.control.anchor.regexp"},{"match":"\\\\[1-9]\\d*","name":"keyword.other.back-reference.regexp"},{"match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??","name":"keyword.operator.quantifier.regexp"},{"match":"\\|","name":"keyword.operator.or.regexp"},{"begin":"(\\()((\\?=)|(\\?!))","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.assertion.regexp","patterns":[{"include":"#regexp"}]},{"begin":"\\((\\?:)?","beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.regexp","patterns":[{"include":"#regexp"}]},{"begin":"(\\[)(\\^)?","beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"end":"(\\])","endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}},"name":"constant.other.character-class.set.regexp","patterns":[{"captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}},"match":"(?:.|(\\\\(?:[0-7]{3}|x\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))","name":"constant.other.character-class.range.regexp"},{"include":"#regex-character-class"}]},{"include":"#regex-character-class"}]}}},"/Users/sadick/github/highlights/deps/language-json/grammars/json.cson":{"fileTypes":["bowerrc","eslintrc","geojson","jshintrc","jslintrc","json","topojson"],"name":"JSON","patterns":[{"include":"#value"}],"repository":{"array":{"begin":"\\[","beginCaptures":{"0":{"name":"punctuation.definition.array.begin.json"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.array.end.json"}},"name":"meta.structure.array.json","patterns":[{"include":"#value"},{"match":",","name":"punctuation.separator.array.json"},{"match":"[^\\s\\]]","name":"invalid.illegal.expected-array-separator.json"}]},"constant":{"match":"\\b(?:true|false|null)\\b","name":"constant.language.json"},"number":{"comment":"handles integer and decimal numbers","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           )","name":"constant.numeric.json"},"object":{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.dictionary.begin.json"}},"comment":"a JSON object","end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.json"}},"name":"meta.structure.dictionary.json","patterns":[{"comment":"the JSON object key","include":"#string"},{"begin":":","beginCaptures":{"0":{"name":"punctuation.separator.dictionary.key-value.json"}},"end":"(,)|(?=\\})","endCaptures":{"1":{"name":"punctuation.separator.dictionary.pair.json"}},"name":"meta.structure.dictionary.value.json","patterns":[{"comment":"the JSON object value","include":"#value"},{"match":"[^\\s,]","name":"invalid.illegal.expected-dictionary-separator.json"}]},{"match":"[^\\s\\}]","name":"invalid.illegal.expected-dictionary-separator.json"}]},"string":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.json"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.json"}},"name":"string.quoted.double.json","patterns":[{"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":"constant.character.escape.json"},{"match":"\\\\.","name":"invalid.illegal.unrecognized-string-escape.json"}]},"value":{"comment":"the 'value' diagram at http://json.org","patterns":[{"include":"#constant"},{"include":"#number"},{"include":"#string"},{"include":"#array"},{"include":"#object"}]}},"scopeName":"source.json"},"/Users/sadick/github/highlights/deps/language-less/grammars/less.cson":{"name":"LESS","scopeName":"source.css.less","fileTypes":["less","less.erb"],"foldingStartMarker":"/\\*\\*(?!\\*)|\\{\\s*($|/\\*(?!.*?\\*/.*\\S))","foldingStopMarker":"(?<!\\*)\\*\\*/|^\\s*\\}","patterns":[{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"match":"\\\\(\\d{1,6}|.)","name":"constant.character.escaped.css"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.single.css","patterns":[{"match":"\\\\.","name":"constant.character.escaped.css"}]},{"captures":{"1":{"name":"entity.other.attribute-name.class.mixin.css"}},"match":"(\\.[_a-zA-Z][a-zA-Z0-9_-]*(?=\\())"},{"captures":{"1":{"name":"entity.other.attribute-name.class.css"},"2":{"name":"punctuation.definition.entity.css"}},"match":"((\\.)[_a-zA-Z][a-zA-Z0-9_-]*)"},{"begin":"(format|local|url|attr|counter|counters)\\s*(\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.css"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.section.function.css"}},"patterns":[{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.single.css","patterns":[{"match":"\\\\.","name":"constant.character.escape.css"}]},{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"match":"\\\\(\\d{1,6}|.)","name":"constant.character.escape.css"}]},{"match":"[^'\") \\t]+","name":"variable.parameter.misc.css"}]},{"match":"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b(?!.*?\\{)","name":"constant.other.rgb-value.css"},{"captures":{"1":{"name":"entity.other.attribute-name.id"},"2":{"name":"punctuation.definition.entity.css"}},"match":"((#)[_a-zA-Z][a-zA-Z0-9_-]*)","name":"meta.selector.css"},{"begin":"/\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.css"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.css"}},"name":"comment.block.css"},{"match":"[+-]?\\d*\\.?\\d+","name":"constant.numeric.css"},{"match":"(?<=[\\d])(ch|cm|deg|dpi|dpcm|dppx|em|ex|grad|in|mm|ms|pc|pt|px|rad|rem|turn|s|vh|vmin|vw)\\b|%","name":"keyword.other.unit.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(:+)(after|before|first-letter|first-line|selection)","name":"entity.other.attribute-name.pseudo-element.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(:+)(active|checked|default|dir|disabled|empty|enabled|first-child|first-of-type|first|fullscreen|focus|hover|indeterminate|in-range|invalid|lang|last-child|last-of-type|left|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|optional|out-of-range|read-only|read-write|required|right|root|scope|shadow|target|valid|visited)(?!\\s*;)","name":"entity.other.attribute-name.pseudo-class.css"},{"captures":{"1":{"name":"punctuation.definition.begin.entity.css"},"2":{"name":"entity.other.attribute-name.attribute.css"},"3":{"name":"punctuation.separator.operator.css"},"4":{"name":"string.unquoted.attribute-value.css"},"5":{"name":"string.quoted.double.attribute-value.css"},"6":{"name":"punctuation.definition.string.begin.css"},"7":{"name":"punctuation.definition.string.end.css"},"8":{"name":"punctuation.definition.end.entity.css"}},"match":"(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])","name":"meta.attribute-selector.css"},{"captures":{"1":{"name":"keyword.control.at-rule.import.css"},"2":{"name":"punctuation.definition.keyword.css"}},"match":"^\\s*((@)import\\b)","name":"meta.at-rule.import.css"},{"captures":{"1":{"name":"keyword.control.at-rule.fontface.css"},"2":{"name":"punctuation.definition.keyword.css"}},"match":"^\\s*((@)font-face\\b)","name":"meta.at-rule.fontface.css"},{"captures":{"1":{"name":"keyword.control.at-rule.media.css"},"2":{"name":"punctuation.definition.keyword.css"}},"match":"^\\s*((@)media\\b)","name":"meta.at-rule.media.css"},{"captures":{"1":{"name":"support.type.property-name.css"},"2":{"name":"punctuation.separator.key-value.css"}},"match":"(?<![-a-z])(-webkit-[-A-Za-z]+|-moz-[-A-Za-z]+|-o-[-A-Za-z]+|-ms-[-A-Za-z]+|-khtml-[-A-Za-z]+|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|grid-rows|grid-columns|grid|gap|font-weight|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-group|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation-fill-mode|animation|alignment-baseline|alignment-adjust|alignment|align-last|align|after|adjust|will-change)(?=\\s*)(:)"},{"match":"\\b(absolute|all|all-scroll|alternate|alternate-reverse|always|antialiased|auto|backwards|balance|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|col-resize|collapse|column|column-reverse|contain|content-box|cover|crosshair|dashed|decimal|default|disabled|disc|distribute|distribute-all-lines|distribute-letter|distribute-space|dotted|double|e-resize|ease|ease-in|ease-in-out|ease-out|ellipsis|fixed|flex-end|flex-start|forwards|groove|hand|help|hidden|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|infinite|inherit|inline|inline-block|inset|inside|inter-ideograph|inter-word|italic|justify|keep-all|landscape|left|lighter|line|line-edge|line-through|linear-gradient|linear|list-item|local|loose|lower-alpha|lower-roman|lowercase|lr-tb|ltr|max-height|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|opacity|outset|outside|overline|padding-box|paused|pointer|portrait|pre|pre-line|pre-wrap|progressive|progress|radial-gradient|relative|repeating-radial-gradient|repeating-linear-gradient|repeat-x|repeat-y|repeat|reverse|ridge|right|round|row|row-resize|row-reverse|rtl|running|s-resize|scroll|se-resize|separate|small-caps|solid|space|space-around|space-between|square|static|step-end|step-start|stretch|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text|text-bottom|text-top|thick|thin|top|transform|transparent|underline|upper-alpha|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|wrap|wrap-reverse)\\b","name":"support.constant.property-value.css"},{"match":"\\b(min-device-aspect-ratio|max-device-aspect-ratio|device-aspect-ratio|min-aspect-ratio|max-aspect-ratio|aspect-ratio|min-device-height|max-device-height|device-height|min-device-width|max-device-width|device-width|min-monochrome|max-monochrome|monochrome|min-color-index|max-color-index|color-index|min-color|max-color|color|orientation|scan|min-resolution|max-resolution|resolution|grid)\\b","name":"support.type.property-name.media.css"},{"match":"(\\b(?i:arial|century|comic|courier|futura|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\\b)","name":"support.constant.font-name.css"},{"comment":"http://www.w3.org/TR/CSS21/syndata.html#value-def-color","match":"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b","name":"support.constant.color.w3c-standard-color-name.css"},{"match":"\\b(abs|acos|alpha|argb|asin|atan|average|blue|ceil|color|contrast|convert|convert|cos|darken|data-uri|desaturate|difference|e|escape|exclusion|extract|fade|fadein|fadeout|floor|format|green|greyscale|hardlight|hsl|hsla|hsv|hsva|hsvhue|hsvsaturation|hsvvalue|hue|length|lighten|lightness|luma|max|min|mix|mod|multiply|negation|overlay|percentage|pi|pow|red|replace|rgb|rgba|round|saturate|saturation|screen|sin|softlight|spin|sqrt|tan|unit)\\b","name":"support.function.any-method.builtin.less"},{"match":"\\b(rgb|rgba|hsl|hsla|url|scale|scale[XY]|translate|translate[XY]|rect|rotate|skew|skew[XY]|cubic-bezier|translate3d|blur)\\b","name":"support.function.any-method.builtin.css"},{"match":"\\b(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)\\b","name":"support.constant.media.css"},{"match":"\\b(color-stop|from|to)\\b","name":"support.function.any-method.gradient.css"},{"captures":{"1":{"name":"support.function.less"}},"match":"(\\.[a-zA-Z0-9_-]+)\\s*(;|\\()"},{"begin":"(^[ \\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.less"}},"end":"(?!\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.less"}},"end":"\\n","name":"comment.line.double-slash.less"}]},{"captures":{"1":{"name":"punctuation.definition.variable.less"}},"match":"@[a-zA-Z0-9_-][\\w-]*(?=\\s*)","name":"variable.other.less"},{"match":"\\!\\s*important","name":"keyword.other.important.css"},{"match":"\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|(?<!\\()/=|%=|\\+=|\\-=|&=|\\^=|\\/\\b","name":"keyword.operator.less"},{"match":"\\s(\\=\\=|\\!\\=|\\<\\=|\\>\\=|\\<|\\>|not|or|and|when)\\s","name":"keyword.control.logical.operator"},{"match":"\\b(a|abbr|acronym|address|applet|article|area|audio|video|b|base|big|blockquote|body|br|button|caption|canvas|center|cite|code|col|colgroup|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figure|figcaption|form|frame|frameset|(h[1-6])|head|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|main|map|mark|meta|menu|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|q|ruby|s|samp|script|select|small|span|strike|strong|style|sub|sup|summary|svg|table(?!-)|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|ul|var|header|section|footer|aside|hgroup|time)\\b","name":"keyword.control.html.elements"},{"match":"\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,{]|:+(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-child()|nth-last-child()|nth-of-type()|nth-last-of-type()|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid|shadow)(\\([0-9A-Za-z]*\\))?)","name":"keyword.control.html.custom.elements"},{"captures":{"1":{"name":"punctuation.section.property-list.begin.css"},"2":{"name":"punctuation.section.property-list.end.css"}},"comment":"Match empty braces to give proper ↩ action","match":"(\\{)(\\})","name":"meta.brace.curly.less"},{"match":"\\{|\\}","name":"meta.brace.curly.less"},{"match":"\\(|\\)","name":"meta.brace.round.less"},{"match":"\\[|\\]","name":"meta.brace.square.less"},{"match":";","name":"punctuation.terminator.rule.css"},{"match":":","name":"punctuation.separator.key-value.css"}]},"/Users/sadick/github/highlights/deps/language-make/grammars/makefile.cson":{"scopeName":"source.makefile","name":"Makefile","fileTypes":["Makefile","makefile","GNUmakefile","OCamlMakefile","mk","Makefile.in"],"patterns":[{"include":"#comment"},{"include":"#variable-assignment"},{"include":"#recipe"},{"include":"#directives"}],"repository":{"comment":{"begin":"(^[ \\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.makefile"}},"end":"(?!\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.makefile"}},"end":"\\n","name":"comment.line.number-sign.makefile","patterns":[{"match":"\\\\\\n","name":"constant.character.escape.continuation.makefile"}]}]},"directives":{"patterns":[{"begin":"^[ ]*([s\\-]?include)\\b","beginCaptures":{"1":{"name":"keyword.control.include.makefile"}},"end":"^","patterns":[{"include":"#comment"},{"include":"#variables"},{"match":"%","name":"constant.other.placeholder.makefile"}]},{"begin":"^[ ]*(vpath)\\b","beginCaptures":{"1":{"name":"keyword.control.vpath.makefile"}},"end":"^","patterns":[{"include":"#comment"},{"include":"#variables"},{"match":"%","name":"constant.other.placeholder.makefile"}]},{"begin":"^(?:(override)\\s*)?(define)\\s*([^\\s]+)\\s*(=|\\?=|:=|\\+=)?(?=\\s)","captures":{"1":{"name":"keyword.control.override.makefile"},"2":{"name":"keyword.control.define.makefile"},"3":{"name":"variable.other.makefile"},"4":{"name":"punctuation.separator.key-value.makefile"}},"end":"^(endef)\\b","name":"meta.scope.conditional.makefile","patterns":[{"begin":"\\G(?!\\n)","end":"^","patterns":[{"include":"#comment"}]},{"include":"#variables"},{"include":"#comment"}]},{"begin":"^[ ]*(export)\\b","beginCaptures":{"1":{"name":"keyword.control.$1.makefile"}},"end":"^","patterns":[{"include":"#comment"},{"include":"#variable-assignment"},{"match":"[^\\s]+","name":"variable.other.makefile"}]},{"begin":"^[ ]*(override|private)\\b","beginCaptures":{"1":{"name":"keyword.control.$1.makefile"}},"end":"^","patterns":[{"include":"#comment"},{"include":"#variable-assignment"}]},{"begin":"^[ ]*(unexport|undefine)\\b","beginCaptures":{"1":{"name":"keyword.control.$1.makefile"}},"end":"^","patterns":[{"include":"#comment"},{"match":"[^\\s]+","name":"variable.other.makefile"}]},{"begin":"^(ifdef|ifndef)\\s*([^\\s]+)(?=\\s)","captures":{"1":{"name":"keyword.control.$1.makefile"},"2":{"name":"variable.other.makefile"},"3":{"name":"punctuation.separator.key-value.makefile"}},"end":"^(endif)\\b","name":"meta.scope.conditional.makefile","patterns":[{"begin":"\\G(?!\\n)","end":"^","patterns":[{"include":"#comment"}]},{"include":"$self"}]},{"begin":"^(ifeq|ifneq)(?=\\s)","captures":{"1":{"name":"keyword.control.$1.makefile"}},"end":"^(endif)\\b","name":"meta.scope.conditional.makefile","patterns":[{"begin":"\\G","end":"^","name":"meta.scope.condition.makefile","patterns":[{"include":"#variables"},{"include":"#comment"}]},{"begin":"^else(?=\\s)","beginCaptures":{"0":{"name":"keyword.control.else.makefile"}},"end":"^"},{"include":"$self"}]}]},"interpolation":{"begin":"(?=`)","end":"(?!\\G)","name":"meta.embedded.line.shell","patterns":[{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.makefile"}},"contentName":"source.shell","end":"(`)","endCaptures":{"0":{"name":"punctuation.definition.string.makefile"},"1":{"name":"source.shell"}},"name":"string.interpolated.backtick.makefile","patterns":[{"include":"source.shell"}]}]},"recipe":{"begin":"^(?!\\t)([^:]*)(:)(?!\\=)","beginCaptures":{"1":{"patterns":[{"captures":{"1":{"name":"support.function.target.$1.makefile"}},"match":"^\\s*(\\.(PHONY|SUFFIXES|DEFAULT|PRECIOUS|INTERMEDIATE|SECONDARY|SECONDEXPANSION|DELETE_ON_ERROR|IGNORE|LOW_RESOLUTION_TIME|SILENT|EXPORT_ALL_VARIABLES|NOTPARALLEL|ONESHELL|POSIX))\\s*$"},{"begin":"(?=\\S)","end":"(?=\\s|$)","name":"entity.name.function.target.makefile","patterns":[{"include":"#variables"},{"match":"%","name":"constant.other.placeholder.makefile"}]}]},"2":{"name":"punctuation.separator.key-value.makefile"}},"end":"^(?!\\t)","name":"meta.scope.target.makefile","patterns":[{"begin":"\\G","end":"^","name":"meta.scope.prerequisites.makefile","patterns":[{"match":"\\\\\\n","name":"constant.character.escape.continuation.makefile"},{"match":"%|\\*","name":"constant.other.placeholder.makefile"},{"include":"#comment"},{"include":"#variables"}]},{"begin":"^\\t","name":"meta.scope.recipe.makefile","patterns":[{"captures":{"0":{"patterns":[{"match":"\\\\\\n","name":"constant.character.escape.continuation.makefile"},{"include":"#variables"},{"include":"source.shell"}]}},"match":".+\\n?"}],"while":"^\\t"}]},"variable-assignment":{"begin":"(^[ ]*|\\G\\s*)([^\\s]+)\\s*(=|\\?=|:=|\\+=)","beginCaptures":{"2":{"name":"variable.other.makefile"},"3":{"name":"punctuation.separator.key-value.makefile"}},"end":"\\n","patterns":[{"match":"\\\\\\n","name":"constant.character.escape.continuation.makefile"},{"include":"#comment"},{"include":"#variables"},{"include":"#interpolation"}]},"variables":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.makefile"}},"match":"(\\$?\\$)[@%<?^+*]","name":"variable.language.makefile"},{"match":"\\b@\\w+@\\b","name":"string.interpolated.makefile"},{"begin":"\\$?\\$\\(","captures":{"0":{"name":"punctuation.definition.variable.makefile"}},"end":"\\)","name":"string.interpolated.makefile","patterns":[{"include":"#variables"},{"match":"\\G(MAKEFILES|VPATH|SHELL|MAKESHELL|MAKE|MAKELEVEL|MAKEFLAGS|MAKECMDGOALS|CURDIR|SUFFIXES|\\.LIBPATTERNS)(?=\\s*\\))","name":"variable.language.makefile"},{"begin":"\\G(subst|patsubst|strip|findstring|filter(-out)?|sort|word(list)?|firstword|lastword|dir|notdir|suffix|basename|addprefix|join|wildcard|realpath|abspath|info|error|warning|shell|foreach|if|or|and|call|eval|value)\\s","beginCaptures":{"1":{"name":"support.function.$1.makefile"}},"end":"(?=\\))","name":"meta.scope.function-call.makefile","patterns":[{"include":"#variables"},{"match":"%|\\*","name":"constant.other.placeholder.makefile"}]},{"begin":"\\G(origin|flavor)\\s(?=[^\\s)]+\\s*\\))","contentName":"variable.other.makefile","end":"\\)","name":"meta.scope.function-call.makefile","patterns":[{"include":"#variables"}]},{"begin":"\\G(?!\\))","end":"(?=\\))","name":"variable.other.makefile","patterns":[{"include":"#variables"}]}]}]}}},"/Users/sadick/github/highlights/deps/language-objective-c/grammars/objective-c++.cson":{"scopeName":"source.objcpp","fileTypes":["mm","M","h"],"name":"Objective-C++","patterns":[{"include":"source.c++"},{"include":"source.cpp"},{"include":"source.objc"}]},"/Users/sadick/github/highlights/deps/language-objective-c/grammars/objective-c.cson":{"scopeName":"source.objc","fileTypes":["m","h","pch","x","xm","xmi"],"name":"Objective-C","patterns":[{"begin":"((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?","captures":{"1":{"name":"storage.type.objc"},"2":{"name":"punctuation.definition.storage.type.objc"},"4":{"name":"entity.name.type.objc"},"6":{"name":"punctuation.definition.entity.other.inherited-class.objc"},"7":{"name":"entity.other.inherited-class.objc"},"8":{"name":"meta.divider.objc"},"9":{"name":"meta.inherited-class.objc"}},"contentName":"meta.scope.interface.objc","end":"((@)end)\\b","name":"meta.interface-or-protocol.objc","patterns":[{"include":"#interface_innards"}]},{"begin":"((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?","captures":{"1":{"name":"storage.type.objc"},"2":{"name":"punctuation.definition.storage.type.objc"},"4":{"name":"entity.name.type.objc"},"5":{"name":"entity.other.inherited-class.objc"}},"contentName":"meta.scope.implementation.objc","end":"((@)end)\\b","name":"meta.implementation.objc","patterns":[{"include":"#implementation_innards"}]},{"begin":"@\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.objc"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.objc"}},"name":"string.quoted.double.objc","patterns":[{"include":"source.c#string_escaped_char"},{"match":"(?x)%\n\t\t\t\t\t\t(\\d+\\$)?                             # field (argument #)\n\t\t\t\t\t\t[#0\\- +']*                          # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)?              # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?         # precision\n\t\t\t\t\t\t[@]                                  # conversion type\n\t\t\t\t\t","name":"constant.other.placeholder.objc"},{"include":"source.c#string_placeholder"}]},{"begin":"\\b(id)\\s*(?=<)","beginCaptures":{"1":{"name":"storage.type.objc"}},"end":"(?<=>)","name":"meta.id-with-protocol.objc","patterns":[{"include":"#protocol_list"}]},{"match":"\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b","name":"keyword.control.macro.objc"},{"captures":{"1":{"name":"punctuation.definition.keyword.objc"}},"match":"(@)(try|catch|finally|throw)\\b","name":"keyword.control.exception.objc"},{"captures":{"1":{"name":"punctuation.definition.keyword.objc"}},"match":"(@)(synchronized)\\b","name":"keyword.control.synchronize.objc"},{"captures":{"1":{"name":"punctuation.definition.keyword.objc"}},"match":"(@)(required|optional)\\b","name":"keyword.control.protocol-specification.objc"},{"captures":{"1":{"name":"punctuation.definition.keyword.objc"}},"match":"(@)(defs|encode)\\b","name":"keyword.other.objc"},{"match":"\\bid\\b","name":"storage.type.id.objc"},{"match":"\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b","name":"storage.type.objc"},{"captures":{"1":{"name":"punctuation.definition.storage.type.objc"}},"match":"(@)(class|protocol)\\b","name":"storage.type.objc"},{"begin":"((@)selector)\\s*(\\()","beginCaptures":{"1":{"name":"storage.type.objc"},"2":{"name":"punctuation.definition.storage.type.objc"},"3":{"name":"punctuation.definition.storage.type.objc"}},"contentName":"meta.selector.method-name.objc","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.storage.type.objc"}},"name":"meta.selector.objc","patterns":[{"captures":{"1":{"name":"punctuation.separator.arguments.objc"}},"match":"\\b(?:[a-zA-Z_:][\\w]*)+","name":"support.function.any-method.name-of-parameter.objc"}]},{"captures":{"1":{"name":"punctuation.definition.storage.modifier.objc"}},"match":"(@)(synchronized|public|package|private|protected)\\b","name":"storage.modifier.objc"},{"match":"\\b(YES|NO|Nil|nil)\\b","name":"constant.language.objc"},{"match":"\\bNSApp\\b","name":"support.variable.foundation"},{"captures":{"1":{"name":"punctuation.whitespace.support.function.cocoa.leopard"},"2":{"name":"support.function.cocoa.leopard"}},"match":"(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"},{"captures":{"1":{"name":"punctuation.whitespace.support.function.leading.cocoa"},"2":{"name":"support.function.cocoa"}},"match":"(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"},{"match":"\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b","name":"support.class.cocoa.leopard"},{"match":"\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b","name":"support.class.cocoa"},{"match":"\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b","name":"support.type.cocoa.leopard"},{"match":"\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b","name":"support.class.quartz"},{"match":"\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b","name":"support.type.quartz"},{"match":"\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b","name":"support.type.cocoa"},{"match":"\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b","name":"support.constant.cocoa"},{"match":"\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b","name":"support.constant.notification.cocoa.leopard"},{"match":"\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b","name":"support.constant.notification.cocoa"},{"match":"\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b","name":"support.constant.cocoa.leopard"},{"match":"\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b","name":"support.constant.cocoa"},{"include":"source.c"},{"include":"#bracketed_content"}],"repository":{"bracketed_content":{"begin":"\\[","beginCaptures":{"0":{"name":"punctuation.section.scope.begin.objc"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.section.scope.end.objc"}},"name":"meta.bracketed.objc","patterns":[{"begin":"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)","beginCaptures":{"1":{"name":"support.function.any-method.objc"},"2":{"name":"punctuation.separator.arguments.objc"}},"end":"(?=\\])","name":"meta.function-call.predicate.objc","patterns":[{"captures":{"1":{"name":"punctuation.separator.arguments.objc"}},"match":"\\bargument(Array|s)(:)","name":"support.function.any-method.name-of-parameter.objc"},{"captures":{"1":{"name":"punctuation.separator.arguments.objc"}},"match":"\\b\\w+(:)","name":"invalid.illegal.unknown-method.objc"},{"begin":"@\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.objc"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.objc"}},"name":"string.quoted.double.objc","patterns":[{"match":"\\b(AND|OR|NOT|IN)\\b","name":"keyword.operator.logical.predicate.cocoa"},{"match":"\\b(ALL|ANY|SOME|NONE)\\b","name":"constant.language.predicate.cocoa"},{"match":"\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b","name":"constant.language.predicate.cocoa"},{"match":"\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b","name":"keyword.operator.comparison.predicate.cocoa"},{"match":"\\bC(ASEINSENSITIVE|I)\\b","name":"keyword.other.modifier.predicate.cocoa"},{"match":"\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b","name":"keyword.other.predicate.cocoa"},{"match":"\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)","name":"constant.character.escape.objc"},{"match":"\\\\.","name":"invalid.illegal.unknown-escape.objc"}]},{"include":"#special_variables"},{"include":"#c_functions"},{"include":"$base"}]},{"begin":"(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))","beginCaptures":{"1":{"name":"support.function.any-method.objc"},"2":{"name":"punctuation.separator.arguments.objc"}},"end":"(?=\\])","name":"meta.function-call.objc","patterns":[{"captures":{"1":{"name":"punctuation.separator.arguments.objc"}},"match":"\\b\\w+(:)","name":"support.function.any-method.name-of-parameter.objc"},{"include":"#special_variables"},{"include":"#c_functions"},{"include":"$base"}]},{"include":"#special_variables"},{"include":"#c_functions"},{"include":"$self"}]},"c_functions":{"patterns":[{"captures":{"1":{"name":"punctuation.whitespace.support.function.leading.c"},"2":{"name":"support.function.C99.c"}},"match":"(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"},{"captures":{"1":{"name":"punctuation.whitespace.function-call.leading.c"},"2":{"name":"support.function.any-method.c"},"3":{"name":"punctuation.definition.parameters.c"}},"match":"(?x) (?: (?= \\s )  (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n            \t\t\t(\\b \n            \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++                  # actual name\n            \t\t\t)\n            \t\t\t \\s*(\\()","name":"meta.function-call.c"}]},"comment":{"patterns":[{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.objc"}},"end":"\\*/","name":"comment.block.objc"},{"begin":"(^[ \\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.objc"}},"end":"(?!\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.objc"}},"end":"\\n","name":"comment.line.double-slash.objc","patterns":[{"match":"(?>\\\\\\s*\\n)","name":"punctuation.separator.continuation.objc"}]}]}]},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","comment":"eat nested preprocessor if(def)s","end":"^\\s*#\\s*endif\\b.*$","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},"implementation_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-implementation"},{"include":"#preprocessor-rule-disabled-implementation"},{"include":"#preprocessor-rule-other-implementation"},{"include":"#property_directive"},{"include":"#special_variables"},{"include":"#method_super"},{"include":"$base"}]},"interface_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-interface"},{"include":"#preprocessor-rule-disabled-interface"},{"include":"#preprocessor-rule-other-interface"},{"include":"#properties"},{"include":"#protocol_list"},{"include":"#method"},{"include":"$base"}]},"method":{"begin":"^(-|\\+)\\s*","end":"(?=\\{|#)|;","name":"meta.function.objc","patterns":[{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.type.begin.objc"}},"end":"(\\))\\s*(\\w+\\b)","endCaptures":{"1":{"name":"punctuation.definition.type.end.objc"},"2":{"name":"entity.name.function.objc"}},"name":"meta.return-type.objc","patterns":[{"include":"#protocol_list"},{"include":"#protocol_type_qualifier"},{"include":"$base"}]},{"match":"\\b\\w+(?=:)","name":"entity.name.function.name-of-parameter.objc"},{"begin":"((:))\\s*(\\()","beginCaptures":{"1":{"name":"entity.name.function.name-of-parameter.objc"},"2":{"name":"punctuation.separator.arguments.objc"},"3":{"name":"punctuation.definition.type.begin.objc"}},"end":"(\\))\\s*(\\w+\\b)?","endCaptures":{"1":{"name":"punctuation.definition.type.end.objc"},"2":{"name":"variable.parameter.function.objc"}},"name":"meta.argument-type.objc","patterns":[{"include":"#protocol_list"},{"include":"#protocol_type_qualifier"},{"include":"$base"}]},{"include":"#comment"}]},"method_super":{"begin":"^(?=-|\\+)","end":"(?<=\\})|(?=#)","name":"meta.function-with-body.objc","patterns":[{"include":"#method"},{"include":"$base"}]},"pragma-mark":{"captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.pragma.c"},"3":{"name":"meta.toc-list.pragma-mark.c"}},"match":"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))","name":"meta.section"},"preprocessor-rule-disabled-implementation":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}},"end":"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}},"end":"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"include":"#interface_innards"}]},{"begin":"","end":"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))","name":"comment.block.preprocessor.if-branch.c","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}]},"preprocessor-rule-disabled-interface":{"begin":"^\\s*(#(if)\\s+(0)\\b).*","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}},"end":"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"begin":"^\\s*(#\\s*(else)\\b)","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}},"end":"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"include":"#interface_innards"}]},{"begin":"","end":"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))","name":"comment.block.preprocessor.if-branch.c","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}]},"preprocessor-rule-enabled-implementation":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}},"end":"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"begin":"^\\s*(#\\s*(else)\\b).*","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}},"contentName":"comment.block.preprocessor.else-branch.c","end":"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},{"begin":"","end":"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"include":"#implementation_innards"}]}]},"preprocessor-rule-enabled-interface":{"begin":"^\\s*(#(if)\\s+(0*1)\\b)","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.if.c"},"3":{"name":"constant.numeric.preprocessor.c"}},"end":"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"begin":"^\\s*(#\\s*(else)\\b).*","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.else.c"}},"contentName":"comment.block.preprocessor.else-branch.c","end":"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},{"begin":"","end":"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))","patterns":[{"include":"#interface_innards"}]}]},"preprocessor-rule-other-implementation":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.c"}},"end":"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)","patterns":[{"include":"#implementation_innards"}]},"preprocessor-rule-other-interface":{"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))","captures":{"1":{"name":"meta.preprocessor.c"},"2":{"name":"keyword.control.import.c"}},"end":"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)","patterns":[{"include":"#interface_innards"}]},"properties":{"patterns":[{"begin":"((@)property)\\s*(\\()","beginCaptures":{"1":{"name":"keyword.other.property.objc"},"2":{"name":"punctuation.definition.keyword.objc"},"3":{"name":"punctuation.section.scope.begin.objc"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.scope.end.objc"}},"name":"meta.property-with-attributes.objc","patterns":[{"match":"\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|strong|weak)\\b","name":"keyword.other.property.attribute"}]},{"captures":{"1":{"name":"keyword.other.property.objc"},"2":{"name":"punctuation.definition.keyword.objc"}},"match":"((@)property)\\b","name":"meta.property.objc"}]},"property_directive":{"captures":{"1":{"name":"punctuation.definition.keyword.objc"}},"match":"(@)(dynamic|synthesize)\\b","name":"keyword.other.property.directive.objc"},"protocol_list":{"begin":"(<)","beginCaptures":{"1":{"name":"punctuation.section.scope.begin.objc"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.section.scope.end.objc"}},"name":"meta.protocol-list.objc","patterns":[{"match":"\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b","name":"support.other.protocol.objc"}]},"protocol_type_qualifier":{"match":"\\b(in|out|inout|oneway|bycopy|byref)\\b","name":"storage.modifier.protocol.objc"},"special_variables":{"patterns":[{"match":"\\b_cmd\\b","name":"variable.other.selector.objc"},{"match":"\\b(self|super)\\b","name":"variable.language.objc"}]}}},"/Users/sadick/github/highlights/deps/language-objective-c/grammars/strings file.cson":{"scopeName":"source.strings","fileTypes":["strings"],"name":"Strings File","patterns":[{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.strings"}},"end":"\\*/","name":"comment.block.strings"},{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.strings"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.strings"}},"name":"string.quoted.double.strings","patterns":[{"match":"\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)","name":"constant.character.escape.strings"},{"match":"\\\\.","name":"invalid.illegal.unknown-escape.strings"},{"match":"(?x)%\n\t\t\t\t\t\t(\\d+\\$)?                             # field (argument #)\n\t\t\t\t\t\t[#0\\- +']*                           # flags\n\t\t\t\t\t\t[,;:_]?                              # separator character (AltiVec)\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)?              # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?         # precision\n\t\t\t\t\t\t(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n\t\t\t\t\t\t[@diouxXDOUeEfFgGaACcSspn%]          # conversion type\n\t\t\t\t\t","name":"constant.other.placeholder.strings"},{"match":"%","name":"invalid.illegal.placeholder.c"}]}]},"/Users/sadick/github/highlights/deps/language-perl/grammars/perl.cson":{"comment":"\n\tTODO:\tInclude RegExp syntax\n","fileTypes":["pl","pm","pod","t","PL"],"firstLineMatch":"^#!.*\\bperl\\b","name":"Perl","patterns":[{"include":"#line_comment"},{"begin":"^=","captures":{"0":{"name":"punctuation.definition.comment.perl"}},"end":"^=cut","name":"comment.block.documentation.perl"},{"include":"#variable"},{"applyEndPatternLast":1,"begin":"\\b(?=qr\\s*[^\\s\\w])","comment":"string.regexp.compile.perl","end":"((([egimosxradlu]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|$))","endCaptures":{"1":{"name":"string.regexp.compile.perl"},"2":{"name":"punctuation.definition.string.perl"},"3":{"name":"keyword.control.regexp-option.perl"}},"patterns":[{"begin":"(qr)\\s*\\{","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"\\}","name":"string.regexp.compile.nested_braces.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_braces_interpolated"}]},{"begin":"(qr)\\s*\\[","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"\\]","name":"string.regexp.compile.nested_brackets.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_brackets_interpolated"}]},{"begin":"(qr)\\s*<","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":">","name":"string.regexp.compile.nested_ltgt.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_ltgt_interpolated"}]},{"begin":"(qr)\\s*\\(","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"\\)","name":"string.regexp.compile.nested_parens.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_parens_interpolated"}]},{"begin":"(qr)\\s*\\'","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"\\'","name":"string.regexp.compile.single-quote.perl","patterns":[{"include":"#escaped_char"}]},{"begin":"(qr)\\s*([^\\s\\w\\'\\{\\[\\(\\<])","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"\\2","name":"string.regexp.compile.simple-delimiter.perl","patterns":[{"comment":"This is to prevent thinks like qr/foo$/ to treat $/ as a variable","match":"\\$(?=[^\\s\\w\\'\\{\\[\\(\\<])","name":"keyword.control.anchor.perl"},{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_parens_interpolated"}]}]},{"applyEndPatternLast":1,"begin":"\\b(?=(?<!\\&)(s)(\\s+\\S|\\s*[;\\,\\#\\{\\}\\(\\)\\[<]|$))","comment":"string.regexp.replace.perl","end":"((([egimosxradlu]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\}\\)\\]>]|$))","endCaptures":{"1":{"name":"string.regexp.replace.perl"},"2":{"name":"punctuation.definition.string.perl"},"3":{"name":"keyword.control.regexp-option.perl"}},"patterns":[{"begin":"(s)\\s*\\{","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"\\}","name":"string.regexp.nested_braces.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_braces"}]},{"begin":"(s)\\s*\\[","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"\\]","name":"string.regexp.nested_brackets.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_brackets"}]},{"begin":"(s)\\s*<","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":">","name":"string.regexp.nested_ltgt.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_ltgt"}]},{"begin":"(s)\\s*\\(","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"\\)","name":"string.regexp.nested_parens.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_parens"}]},{"begin":"\\{","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"\\}","name":"string.regexp.format.nested_braces.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_braces_interpolated"}]},{"begin":"\\[","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"\\]","name":"string.regexp.format.nested_brackets.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_brackets_interpolated"}]},{"begin":"<","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":">","name":"string.regexp.format.nested_ltgt.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_ltgt_interpolated"}]},{"begin":"\\(","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"\\)","name":"string.regexp.format.nested_parens.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_parens_interpolated"}]},{"begin":"'","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"'","name":"string.regexp.format.single_quote.perl","patterns":[{"match":"\\\\['\\\\]","name":"constant.character.escape.perl"}]},{"begin":"([^\\s\\w\\[({<;])","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"\\1","name":"string.regexp.format.simple_delimiter.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]},{"match":"\\s+"}]},{"begin":"\\b(?=s([^\\s\\w\\[({<]).*\\1([egimosradlu]*)([\\}\\)\\;\\,]|\\s+))","comment":"string.regexp.replaceXXX","end":"((([egimosradlu]*)))(?=([\\}\\)\\;\\,]|\\s+|$))","endCaptures":{"1":{"name":"string.regexp.replace.perl"},"2":{"name":"punctuation.definition.string.perl"},"3":{"name":"keyword.control.regexp-option.perl"}},"patterns":[{"begin":"(s\\s*)([^\\s\\w\\[({<])","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"(?=\\2)","name":"string.regexp.replaceXXX.simple_delimiter.perl","patterns":[{"include":"#escaped_char"}]},{"begin":"'","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"'","name":"string.regexp.replaceXXX.format.single_quote.perl","patterns":[{"match":"\\\\['\\\\]","name":"constant.character.escape.perl.perl"}]},{"begin":"([^\\s\\w\\[({<])","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"\\1","name":"string.regexp.replaceXXX.format.simple_delimiter.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]}]},{"begin":"\\b(?=(?<!\\\\)s\\s*([^\\s\\w\\[({<>]))","comment":"string.regexp.replace.extended","end":"\\2((([egimosradlu]*x[egimosradlu]*)))\\b","endCaptures":{"1":{"name":"string.regexp.replace.perl"},"2":{"name":"punctuation.definition.string.perl"},"3":{"name":"keyword.control.regexp-option.perl"}},"patterns":[{"begin":"(s)\\s*(.)","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"support.function.perl"}},"end":"(?=\\2)","name":"string.regexp.replace.extended.simple_delimiter.perl","patterns":[{"include":"#escaped_char"}]},{"begin":"'","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"'(?=[egimosradlu]*x[egimosradlu]*)\\b","name":"string.regexp.replace.extended.simple_delimiter.perl","patterns":[{"include":"#escaped_char"}]},{"begin":"(.)","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"\\1(?=[egimosradlu]*x[egimosradlu]*)\\b","name":"string.regexp.replace.extended.simple_delimiter.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]}]},{"match":"\\b\\w+\\s*(?==>)","name":"constant.other.key.perl"},{"match":"(?<={)\\s*\\w+\\s*(?=})","name":"constant.other.bareword.perl"},{"begin":"(?<!\\\\)((~\\s*)?\\/)(?=\\S)(?=([^\\\\]|\\\\.)*\\/)","captures":{"1":{"name":"punctuation.definition.string.perl"}},"end":"(\\/)","name":"string.regexp.find.perl","patterns":[{"include":"#escaped_char"}]},{"begin":"(?<!\\\\)(\\~\\s*\\/)","captures":{"0":{"name":"punctuation.definition.string.perl"}},"end":"\\/([cgimos]*x[cgimos]*)\\b","endCaptures":{"1":{"name":"keyword.control.regexp-option.perl"}},"name":"string.regexp.find.extended.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]},{"captures":{"1":{"name":"keyword.control.perl"},"2":{"name":"entity.name.type.class.perl"},"3":{"name":"comment.line.number-sign.perl"},"4":{"name":"punctuation.definition.comment.perl"}},"match":"^\\s*(package)\\s+(\\S+)\\s*((#).*)?$\\n?","name":"meta.class.perl"},{"captures":{"1":{"name":"storage.type.sub.perl"},"2":{"name":"entity.name.function.perl"},"3":{"name":"storage.type.method.perl"}},"match":"^\\s*(sub)\\s+([-a-zA-Z0-9_]+)\\s*(\\([\\$\\@\\*;]*\\))?","name":"meta.function.perl"},{"captures":{"1":{"name":"entity.name.function.perl"},"2":{"name":"punctuation.definition.parameters.perl"},"3":{"name":"variable.parameter.function.perl"}},"match":"^\\s*(BEGIN|END|DESTROY)\\b","name":"meta.function.perl"},{"begin":"^(?=(\\t| {4}))","end":"(?=[^\\t\\s])","name":"meta.leading-tabs","patterns":[{"captures":{"1":{"name":"meta.odd-tab"},"2":{"name":"meta.even-tab"}},"match":"(\\t| {4})(\\t| {4})?"}]},{"captures":{"1":{"name":"support.function.perl"},"2":{"name":"punctuation.definition.string.perl"},"5":{"name":"punctuation.definition.string.perl"}},"match":"\\b(m)\\s*(?<!\\\\)([^\\[\\{\\(A-Za-z0-9\\s])(.*?)(?<!\\\\)(\\\\{2})*(\\2)","name":"string.regexp.find-m.perl"},{"begin":"\\b(m)\\s*(?<!\\\\)\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.regexp.find-m-paren.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_parens_interpolated"},{"include":"#variable"}]},{"begin":"\\b(m)\\s*(?<!\\\\)\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.regexp.find-m-brace.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_braces_interpolated"},{"include":"#variable"}]},{"begin":"\\b(m)\\s*(?<!\\\\)\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.regexp.find-m-bracket.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_brackets_interpolated"},{"include":"#variable"}]},{"begin":"\\b(m)\\s*(?<!\\\\)\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.regexp.find-m-ltgt.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_ltgt_interpolated"},{"include":"#variable"}]},{"captures":{"1":{"name":"support.function.perl"},"2":{"name":"punctuation.definition.string.perl"},"5":{"name":"punctuation.definition.string.perl"},"8":{"name":"punctuation.definition.string.perl"}},"match":"\\b(s|tr|y)\\s*([^A-Za-z0-9\\s])(.*?)(?<!\\\\)(\\\\{2})*(\\2)(.*?)(?<!\\\\)(\\\\{2})*(\\2)","name":"string.regexp.replace.perl"},{"match":"\\b(__FILE__|__LINE__|__PACKAGE__)\\b","name":"constant.language.perl"},{"match":"(?<!->)\\b(continue|die|do|else|elsif|exit|for|foreach|goto|if|last|next|redo|return|select|unless|until|wait|while|switch|case|package|require|use|eval)\\b","name":"keyword.control.perl"},{"match":"\\b(my|our|local)\\b","name":"storage.modifier.perl"},{"match":"(?<!\\w)\\-[rwx0RWXOezsfdlpSbctugkTBMAC]\\b","name":"keyword.operator.filetest.perl"},{"match":"\\b(and|or|xor|as)\\b","name":"keyword.operator.logical.perl"},{"match":"(<=>| =>|->)","name":"keyword.operator.comparison.perl"},{"begin":"((<<) *\"HTML\").*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.doublequote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.html.embedded.perl","end":"(^HTML$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"text.html.basic"}]},{"begin":"((<<) *\"XML\").*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.doublequote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.xml.embedded.perl","end":"(^XML$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"text.xml"}]},{"begin":"((<<) *\"CSS\").*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.doublequote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.css.embedded.perl","end":"(^CSS$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"source.css"}]},{"begin":"((<<) *\"JAVASCRIPT\").*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.doublequote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.js.embedded.perl","end":"(^JAVASCRIPT$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"source.js"}]},{"begin":"((<<) *\"SQL\").*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.doublequote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"source.sql.embedded.perl","end":"(^SQL$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"source.sql"}]},{"begin":"((<<) *\"POSTSCRIPT\").*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.doublequote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.postscript.embedded.perl","end":"(^POSTSCRIPT$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"source.postscript"}]},{"begin":"((<<) *\"([^\"]*)\").*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.doublequote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"string.unquoted.heredoc.doublequote.perl","end":"(^\\3$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]},{"begin":"((<<) *'HTML').*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.quote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.html.embedded.perl","end":"(^HTML$)","patterns":[{"include":"text.html.basic"}]},{"begin":"((<<) *'XML').*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.quote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.xml.embedded.perl","end":"(^XML$)","patterns":[{"include":"text.xml"}]},{"begin":"((<<) *'CSS').*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.quote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.css.embedded.perl","end":"(^CSS$)","patterns":[{"include":"source.css"}]},{"begin":"((<<) *'JAVASCRIPT').*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.quote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.js.embedded.perl","end":"(^JAVASCRIPT$)","patterns":[{"include":"source.js"}]},{"begin":"((<<) *'SQL').*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.quote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"source.sql.embedded.perl","end":"(^SQL$)","patterns":[{"include":"source.sql"}]},{"begin":"((<<) *'POSTSCRIPT').*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.quote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"source.postscript.embedded.perl","end":"(^POSTSCRIPT)","patterns":[{"include":"source.postscript"}]},{"begin":"((<<) *'([^']*)').*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.quote.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"string.unquoted.heredoc.quote.perl","end":"(^\\3$)"},{"begin":"((<<) *`([^`]*)`).*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.backtick.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"string.unquoted.heredoc.backtick.perl","end":"(^\\3$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]},{"begin":"((<<) *HTML\\b).*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.html.embedded.perl","end":"(^HTML$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"text.html.basic"}]},{"begin":"((<<) *XML\\b).*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"text.xml.embedded.perl","end":"(^XML$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"text.xml"}]},{"begin":"((<<) *SQL\\b).*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"source.sql.embedded.perl","end":"(^SQL$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"source.sql"}]},{"begin":"((<<) *POSTSCRIPT\\b).*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"source.postscript.embedded.perl","end":"(^POSTSCRIPT)","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"source.postscript"}]},{"begin":"((<<) *((?![=\\d\\$\\( ])[^;,'\"`\\s)]*)).*\\n?","captures":{"0":{"name":"punctuation.definition.string.perl"},"1":{"name":"string.unquoted.heredoc.perl"},"2":{"name":"punctuation.definition.heredoc.perl"}},"contentName":"string.unquoted.heredoc.perl","end":"(^\\3$)","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]},{"begin":"\\bqq\\s*([^\\(\\{\\[\\<\\w\\s])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.qq.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]},{"begin":"\\bqx\\s*([^'\\(\\{\\[\\<\\w\\s])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.interpolated.qx.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]},{"begin":"\\bqx\\s*'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.interpolated.qx.single-quote.perl","patterns":[{"include":"#escaped_char"}]},{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.double.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]},{"begin":"\\bqw?\\s*([^\\(\\{\\[\\<\\w\\s])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.q.perl","patterns":[{"include":"#escaped_char"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.single.perl","patterns":[{"match":"\\\\['\\\\]","name":"constant.character.escape.perl"}]},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.interpolated.perl","patterns":[{"include":"#escaped_char"},{"include":"#variable"}]},{"begin":"\\bqq\\s*\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.qq-paren.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_parens_interpolated"},{"include":"#variable"}]},{"begin":"\\bqq\\s*\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.qq-brace.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_braces_interpolated"},{"include":"#variable"}]},{"begin":"\\bqq\\s*\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.qq-bracket.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_brackets_interpolated"},{"include":"#variable"}]},{"begin":"\\bqq\\s*\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.qq-ltgt.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_ltgt_interpolated"},{"include":"#variable"}]},{"begin":"\\bqx\\s*\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.interpolated.qx-paren.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_parens_interpolated"},{"include":"#variable"}]},{"begin":"\\bqx\\s*\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.interpolated.qx-brace.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_braces_interpolated"},{"include":"#variable"}]},{"begin":"\\bqx\\s*\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.interpolated.qx-bracket.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_brackets_interpolated"},{"include":"#variable"}]},{"begin":"\\bqx\\s*\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.interpolated.qx-ltgt.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_ltgt_interpolated"},{"include":"#variable"}]},{"begin":"\\bqw?\\s*\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.q-paren.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_parens"}]},{"begin":"\\bqw?\\s*\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.q-brace.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_braces"}]},{"begin":"\\bqw?\\s*\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.q-bracket.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_brackets"}]},{"begin":"\\bqw?\\s*\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.other.q-ltgt.perl","patterns":[{"include":"#escaped_char"},{"include":"#nested_ltgt"}]},{"begin":"^__\\w+__","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"$","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.unquoted.program-block.perl"},{"begin":"\\b(format)\\s+([A-Za-z]+)\\s*=","beginCaptures":{"1":{"name":"support.function.perl"},"2":{"name":"entity.name.function.format.perl"}},"end":"^\\.\\s*$","name":"meta.format.perl","patterns":[{"include":"#line_comment"},{"include":"#variable"}]},{"match":"\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|format|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|q|qq|quotemeta|qw|qx|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y|q|qw|qq|qx)\\b","name":"support.function.perl"}],"repository":{"escaped_char":{"match":"\\\\.","name":"constant.character.escape.perl"},"line_comment":{"patterns":[{"begin":"(^[ \\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.perl"}},"end":"(?!\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.perl"}},"end":"\\n","name":"comment.line.number-sign.perl"}]}]},"nested_braces":{"begin":"\\{","captures":{"1":{"name":"punctuation.section.scope.perl"}},"end":"\\}","patterns":[{"include":"#escaped_char"},{"include":"#nested_braces"}]},"nested_braces_interpolated":{"begin":"\\{","captures":{"1":{"name":"punctuation.section.scope.perl"}},"end":"\\}","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_braces_interpolated"}]},"nested_brackets":{"begin":"\\[","captures":{"1":{"name":"punctuation.section.scope.perl"}},"end":"\\]","patterns":[{"include":"#escaped_char"},{"include":"#nested_brackets"}]},"nested_brackets_interpolated":{"begin":"\\[","captures":{"1":{"name":"punctuation.section.scope.perl"}},"end":"\\]","patterns":[{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_brackets_interpolated"}]},"nested_ltgt":{"begin":"<","captures":{"1":{"name":"punctuation.section.scope.perl"}},"end":">","patterns":[{"include":"#nested_ltgt"}]},"nested_ltgt_interpolated":{"begin":"<","captures":{"1":{"name":"punctuation.section.scope.perl"}},"end":">","patterns":[{"include":"#variable"},{"include":"#nested_ltgt_interpolated"}]},"nested_parens":{"begin":"\\(","captures":{"1":{"name":"punctuation.section.scope.perl"}},"end":"\\)","patterns":[{"include":"#escaped_char"},{"include":"#nested_parens"}]},"nested_parens_interpolated":{"begin":"\\(","captures":{"1":{"name":"punctuation.section.scope.perl"}},"end":"\\)","patterns":[{"comment":"This is to prevent thinks like qr/foo$/ to treat $/ as a variable","match":"\\$(?=[^\\s\\w\\'\\{\\[\\(\\<])","name":"keyword.control.anchor.perl"},{"include":"#escaped_char"},{"include":"#variable"},{"include":"#nested_parens_interpolated"}]},"variable":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"(\\$)&(?![A-Za-z0-9_])","name":"variable.other.regexp.match.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"(\\$)`(?![A-Za-z0-9_])","name":"variable.other.regexp.pre-match.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"(\\$)'(?![A-Za-z0-9_])","name":"variable.other.regexp.post-match.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"(\\$)\\+(?![A-Za-z0-9_])","name":"variable.other.regexp.last-paren-match.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"(\\$)\"(?![A-Za-z0-9_])","name":"variable.other.readwrite.list-separator.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"(\\$)0(?![A-Za-z0-9_])","name":"variable.other.predefined.program-name.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"(\\$)[_ab\\*\\.\\/\\|,\\\\;#%=\\-~^:?!\\$<>\\(\\)\\[\\]@](?![A-Za-z0-9_])","name":"variable.other.predefined.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"(\\$)[0-9]+(?![A-Za-z0-9_])","name":"variable.other.subpattern.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"([\\$\\@\\%](#)?)([a-zA-Zx7f-xff\\$]|::)([a-zA-Z0-9_x7f-xff\\$]|::)*\\b","name":"variable.other.readwrite.global.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"},"2":{"name":"punctuation.definition.variable.perl"}},"match":"(\\$\\{)(?:[a-zA-Zx7f-xff\\$]|::)(?:[a-zA-Z0-9_x7f-xff\\$]|::)*(\\})","name":"variable.other.readwrite.global.perl"},{"captures":{"1":{"name":"punctuation.definition.variable.perl"}},"match":"([\\$\\@\\%](#)?)[0-9_]\\b","name":"variable.other.readwrite.global.special.perl"}]}},"scopeName":"source.perl"},"/Users/sadick/github/highlights/deps/language-php/grammars/php.cson":{"scopeName":"text.html.php","name":"PHP","fileTypes":["aw","ctp","inc","install","module","php","php3","php4","php5","phpt","phtml","profile"],"firstLineMatch":"^#!.*(?<!-)php[0-9]{0,1}\\b","foldingStartMarker":"(/\\*|\\{\\s*$|<<<HTML)","foldingStopMarker":"(\\*/|^\\s*\\}|^HTML;)","injections":{"text.html.php - (meta.embedded | meta.tag), L:text.html.php meta.tag, L:source.js.embedded.html":{"patterns":[{"begin":"(^\\s*)(?=<\\?(?![^?]*\\?>))","beginCaptures":{"0":{"name":"punctuation.whitespace.embedded.leading.php"}},"end":"(?!\\G)(\\s*$\\n)?","endCaptures":{"0":{"name":"punctuation.whitespace.embedded.trailing.php"}},"patterns":[{"begin":"<\\?(?i:php|=)?","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.php"}},"contentName":"source.php","end":"(\\?)>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"source.php"}},"name":"meta.embedded.block.php","patterns":[{"include":"#language"}]}]},{"begin":"<\\?(?i:php|=)?(?![^?]*\\?>)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.php"}},"contentName":"source.php","end":"(\\?)>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"source.php"}},"name":"meta.embedded.block.php","patterns":[{"include":"#language"}]},{"begin":"<\\?(?i:php|=)?","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.php"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"}},"name":"meta.embedded.line.php","patterns":[{"captures":{"1":{"name":"source.php"},"2":{"name":"punctuation.section.embedded.end.php"},"3":{"name":"source.php"}},"match":"\\G(\\s*)((\\?))(?=>)","name":"meta.special.empty-tag.php"},{"begin":"\\G","contentName":"source.php","end":"(\\?)(?=>)","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"source.php"}},"patterns":[{"include":"#language"}]}]}]}},"patterns":[{"include":"text.html.basic"}],"repository":{"class-builtin":{"patterns":[{"captures":{"1":{"name":"punctuation.separator.inheritance.php"}},"match":"(?i)(\\\\)?\\b(st(dClass|reamWrapper)|R(RD(Graph|Creator|Updater)|untimeException|e(sourceBundle|cursive(RegexIterator|Ca(chingIterator|llbackFilterIterator)|TreeIterator|Iterator(Iterator)?|DirectoryIterator|FilterIterator|ArrayIterator)|flect(ion(Method|Class|ZendExtension|Object|P(arameter|roperty)|Extension|Function(Abstract)?)?|or)|gexIterator)|angeException)|G(ender\\Gender|lobIterator|magick(Draw|Pixel)?)|X(sltProcessor|ML(Reader|Writer)|SLTProcessor)|M(ysqlndUh(Connection|PreparedStatement)|ongo(Re(sultException|gex)|Grid(fsFile|FS(Cursor|File)?)|BinData|C(o(de|llection)|ursor(Exception)?|lient)|Timestamp|I(nt(32|64)|d)|D(B(Ref)?|ate)|Pool|Log)?|u(tex|ltipleIterator)|e(ssageFormatter|mcache(d)?))|Bad(MethodCallException|FunctionCallException)|tidy(Node)?|S(tackable|impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|NMP|CA(_(SoapProxy|LocalProxy))?|p(hinxClient|oofchecker|l(M(inHeap|axHeap)|S(tack|ubject)|Heap|T(ype|empFileObject)|Ob(server|jectStorage)|DoublyLinkedList|PriorityQueue|Enum|Queue|Fi(le(Info|Object)|xedArray)))|e(ssionHandler(Interface)?|ekableIterator|rializable)|DO_(Model_(ReflectionDataObject|Type|Property)|Sequence|D(ata(Object|Factory)|AS_(Relational|XML(_Document)?|Setting|ChangeSummary|Data(Object|Factory)))|Exception|List)|wish(Result(s)?|Search)?|VM(Model)?|QLite(Result|3(Result|Stmt)?|Database|Unbuffered)|AM(Message|Connection))|H(ttp(Re(sponse|quest(Pool)?)|Message|InflateStream|DeflateStream|QueryString)|aru(Image|Outline|D(oc|estination)|Page|Encoder|Font|Annotation))|Yaf_(R(oute(_(Re(write|gex)|Map|S(tatic|imple|upervar)|Interface)|r)|e(sponse_Abstract|quest_(Simple|Http|Abstract)|gistry))|Session|Con(troller_Abstract|fig_(Simple|Ini|Abstract))|Dispatcher|Plugin_Abstract|Exception|View_(Simple|Interface)|Loader|A(ction_Abstract|pplication))|N(o(RewindIterator|rmalizer)|umberFormatter)|C(o(nd|untable|llator)|a(chingIterator|llbackFilterIterator))|T(hread|okyoTyrant(Table|Iterator|Query)?|ra(nsliterator|versable))|I(n(tlDateFormatter|validArgumentException|finiteIterator)|terator(Iterator|Aggregate)?|magick(Draw|Pixel(Iterator)?)?)|php_user_filter|ZipArchive|O(CI-(Collection|Lob)|ut(erIterator|Of(RangeException|BoundsException))|verflowException)|D(irectory(Iterator)?|omainException|OM(XPath|N(ode(list)?|amedNodeMap)|C(haracterData|omment|dataSection)|Text|Implementation|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr)|ate(Time(Zone)?|Interval|Period))|Un(derflowException|expectedValueException)|JsonSerializable|finfo|P(har(Data|FileInfo)?|DO(Statement)?|arentIterator)|E(v(S(tat|ignal)|Ch(ild|eck)|Timer|I(o|dle)|P(eriodic|repare)|Embed|Fork|Watcher|Loop)?|rrorException|xception|mptyIterator)|V(8Js(Exception)?|arnish(Stat|Log|Admin))|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|Frame|AttachedPictureFrame))|QuickHash(StringIntHash|Int(S(tringHash|et)|Hash))|Fil(terIterator|esystemIterator)|mysqli(_(stmt|driver|warning|result))?|W(orker|eak(Map|ref))|L(imitIterator|o(cale|gicException)|ua(Closure)?|engthException|apack)|A(MQP(C(hannel|onnection)|E(nvelope|xchange)|Queue)|ppendIterator|PCIterator|rray(Iterator|Object|Access)))\\b","name":"support.class.builtin.php"}]},"class-name":{"patterns":[{"begin":"(?i)(?=\\\\?[a-z_0-9]+\\\\)","end":"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])","endCaptures":{"1":{"name":"support.class.php"}},"patterns":[{"include":"#namespace"}]},{"include":"#class-builtin"},{"begin":"(?=[\\\\a-zA-Z_])","end":"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])","endCaptures":{"1":{"name":"support.class.php"}},"patterns":[{"include":"#namespace"}]}]},"comments":{"patterns":[{"begin":"/\\*\\*(?:#@\\+)?\\s*$","captures":{"0":{"name":"punctuation.definition.comment.php"}},"comment":"This now only highlights a docblock if the first line contains only /**\n\t\t\t\t\t\t\t\t- this is to stop highlighting everything as invalid when people do comment banners with /******** ...\n\t\t\t\t\t\t\t\t- Now matches /**#@+ too - used for docblock templates: http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate","end":"\\*/","name":"comment.block.documentation.phpdoc.php","patterns":[{"include":"#php_doc"}]},{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.php"}},"end":"\\*/","name":"comment.block.php"},{"begin":"(^[ \\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.php"}},"end":"(?!\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.php"}},"end":"\\n|(?=\\?>)","name":"comment.line.double-slash.php"}]},{"begin":"(^[ \\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.php"}},"end":"(?!\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.php"}},"end":"\\n|(?=\\?>)","name":"comment.line.number-sign.php"}]}]},"constants":{"patterns":[{"begin":"(?xi)(?=\n\t\t\t            (\n\t\t\t                (\\\\[a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)|\n\t\t\t                ([a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n\t\t\t            )\n\t\t\t            [^a-z_0-9\\\\])","end":"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])","endCaptures":{"1":{"name":"constant.other.php"}},"patterns":[{"include":"#namespace"}]},{"begin":"(?=\\\\?[a-zA-Z_\\x{7f}-\\x{ff}])","end":"(?=[^\\\\a-zA-Z_\\x{7f}-\\x{ff}])","patterns":[{"match":"(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b","name":"constant.language.php"},{"captures":{"1":{"name":"punctuation.separator.inheritance.php"}},"match":"(\\\\)?\\b(STD(IN|OUT|ERR)|ZEND_(THREAD_SAFE|DEBUG_BUILD)|DEFAULT_INCLUDE_PATH|P(HP_(R(OUND_HALF_(ODD|DOWN|UP|EVEN)|ELEASE_VERSION)|M(INOR_VERSION|A(XPATHLEN|JOR_VERSION))|BINDIR|S(HLIB_SUFFIX|YSCONFDIR|API)|CONFIG_FILE_(SCAN_DIR|PATH)|INT_(MAX|SIZE)|ZTS|O(S|UTPUT_HANDLER_(START|CONT|END))|D(EBUG|ATADIR)|URL_(SCHEME|HOST|USER|P(ORT|A(SS|TH))|QUERY|FRAGMENT)|PREFIX|E(XT(RA_VERSION|ENSION_DIR)|OL)|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(M(INOR|AJOR)|BUILD|S(UITEMASK|P_M(INOR|AJOR))|P(RODUCTTYPE|LATFORM)))|L(IBDIR|OCALSTATEDIR))|EAR_(INSTALL_DIR|EXTENSION_DIR))|E_(RECOVERABLE_ERROR|STRICT|NOTICE|CO(RE_(ERROR|WARNING)|MPILE_(ERROR|WARNING))|DEPRECATED|USER_(NOTICE|DEPRECATED|ERROR|WARNING)|PARSE|ERROR|WARNING|ALL))\\b","name":"support.constant.core.php"},{"captures":{"1":{"name":"punctuation.separator.inheritance.php"}},"match":"(\\\\)?\\b(RADIXCHAR|GROUPING|M(_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRTPI|PI)|PI(_(2|4))?|E(ULER)?|L(N(10|2|PI)|OG(10E|2E)))|ON_(GROUPING|1(1|2|0)?|7|2|8|THOUSANDS_SEP|3|DECIMAL_POINT|9|4|5|6))|S(TR_PAD_(RIGHT|BOTH|LEFT)|ORT_(REGULAR|STRING|NUMERIC|DESC|LOCALE_STRING|ASC)|EEK_(SET|CUR|END))|H(TML_(SPECIALCHARS|ENTITIES)|ASH_HMAC)|YES(STR|EXPR)|N(_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|O(STR|EXPR)|EGATIVE_SIGN|AN)|C(R(YPT_(MD5|BLOWFISH|S(HA(256|512)|TD_DES|ALT_LENGTH)|EXT_DES)|NCYSTR|EDITS_(G(ROUP|ENERAL)|MODULES|SAPI|DOCS|QA|FULLPAGE|ALL))|HAR_MAX|O(NNECTION_(NORMAL|TIMEOUT|ABORTED)|DESET|UNT_(RECURSIVE|NORMAL))|URRENCY_SYMBOL|ASE_(UPPER|LOWER))|__COMPILER_HALT_OFFSET__|T(HOUS(EP|ANDS_SEP)|_FMT(_AMPM)?)|IN(T_(CURR_SYMBOL|FRAC_DIGITS)|I_(S(YSTEM|CANNER_(RAW|NORMAL))|USER|PERDIR|ALL)|F(O_(GENERAL|MODULES|C(REDITS|ONFIGURATION)|ENVIRONMENT|VARIABLES|LICENSE|ALL))?)|D(_(T_FMT|FMT)|IRECTORY_SEPARATOR|ECIMAL_POINT|A(Y_(1|7|2|3|4|5|6)|TE_(R(SS|FC(1(123|036)|2822|8(22|50)|3339))|COOKIE|ISO8601|W3C|ATOM)))|UPLOAD_ERR_(NO_(TMP_DIR|FILE)|CANT_WRITE|INI_SIZE|OK|PARTIAL|EXTENSION|FORM_SIZE)|P(M_STR|_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|OSITIVE_SIGN|ATH(_SEPARATOR|INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)))|E(RA(_(YEAR|T_FMT|D_(T_FMT|FMT)))?|XTR_(REFS|SKIP|IF_EXISTS|OVERWRITE|PREFIX_(SAME|I(NVALID|F_EXISTS)|ALL))|NT_(NOQUOTES|COMPAT|IGNORE|QUOTES))|FRAC_DIGITS|L(C_(M(ONETARY|ESSAGES)|NUMERIC|C(TYPE|OLLATE)|TIME|ALL)|O(G_(MAIL|SYSLOG|N(O(TICE|WAIT)|DELAY|EWS)|C(R(IT|ON)|ONS)|INFO|ODELAY|D(EBUG|AEMON)|U(SER|UCP)|P(ID|ERROR)|E(RR|MERG)|KERN|WARNING|L(OCAL(1|7|2|3|4|5|0|6)|PR)|A(UTH(PRIV)?|LERT))|CK_(SH|NB|UN|EX)))|A(M_STR|B(MON_(1(1|2|0)?|7|2|8|3|9|4|5|6)|DAY_(1|7|2|3|4|5|6))|SSERT_(BAIL|CALLBACK|QUIET_EVAL|WARNING|ACTIVE)|LT_DIGITS))\\b","name":"support.constant.std.php"},{"captures":{"1":{"name":"punctuation.separator.inheritance.php"}},"match":"(\\\\)?\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|HTML_DOCUMENT_NODE|N(OTATION_NODE|AMESPACE_DECL_NODE)|C(OMMENT_NODE|DATA_SECTION_NODE)|TEXT_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|D(TD_NODE|OCUMENT_(NODE|TYPE_NODE|FRAG_NODE))|PI_NODE|E(RROR_(RECURSIVE_ENTITY_REF|MISPLACED_XML_PI|B(INARY_ENTITY_REF|AD_CHAR_REF)|SYNTAX|NO(NE|_(MEMORY|ELEMENTS))|TAG_MISMATCH|IN(CORRECT_ENCODING|VALID_TOKEN)|DUPLICATE_ATTRIBUTE|UN(CLOSED_(CDATA_SECTION|TOKEN)|DEFINED_ENTITY|KNOWN_ENCODING)|JUNK_AFTER_DOC_ELEMENT|PAR(TIAL_CHAR|AM_ENTITY_REF)|EXTERNAL_ENTITY_HANDLING|A(SYNC_ENTITY|TTRIBUTE_EXTERNAL_ENTITY_REF))|NTITY_(REF_NODE|NODE|DECL_NODE)|LEMENT_(NODE|DECL_NODE))|LOCAL_NAMESPACE|ATTRIBUTE_(N(MTOKEN(S)?|O(TATION|DE))|CDATA|ID(REF(S)?)?|DECL_NODE|EN(TITY|UMERATION)))|M(HASH_(RIPEMD(1(28|60)|256|320)|GOST|MD(2|4|5)|S(HA(1|2(24|56)|384|512)|NEFRU256)|HAVAL(1(28|92|60)|2(24|56))|CRC32(B)?|TIGER(1(28|60))?|WHIRLPOOL|ADLER32)|YSQL(_(BOTH|NUM|CLIENT_(SSL|COMPRESS|I(GNORE_SPACE|NTERACTIVE))|ASSOC)|I_(RE(PORT_(STRICT|INDEX|OFF|ERROR|ALL)|FRESH_(GRANT|MASTER|BACKUP_LOG|S(TATUS|LAVE)|HOSTS|T(HREADS|ABLES)|LOG)|AD_DEFAULT_(GROUP|FILE))|GROUP_FLAG|MULTIPLE_KEY_FLAG|B(INARY_FLAG|OTH|LOB_FLAG)|S(T(MT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|ORE_RESULT)|E(RVER_QUERY_(NO_(GOOD_INDEX_USED|INDEX_USED)|WAS_SLOW)|T_(CHARSET_NAME|FLAG)))|N(O(_D(EFAULT_VALUE_FLAG|ATA)|T_NULL_FLAG)|UM(_FLAG)?)|C(URSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|LIENT_(SSL|NO_SCHEMA|COMPRESS|I(GNORE_SPACE|NTERACTIVE)|FOUND_ROWS))|T(YPE_(GEOMETRY|MEDIUM_BLOB|B(IT|LOB)|S(HORT|TRING|ET)|YEAR|N(ULL|EWD(ECIMAL|ATE))|CHAR|TI(ME(STAMP)?|NY(_BLOB)?)|INT(24|ERVAL)|D(OUBLE|ECIMAL|ATE(TIME)?)|ENUM|VAR_STRING|FLOAT|LONG(_BLOB|LONG)?)|IMESTAMP_FLAG)|INIT_COMMAND|ZEROFILL_FLAG|O(N_UPDATE_NOW_FLAG|PT_(NET_(READ_BUFFER_SIZE|CMD_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE))|D(EBUG_TRACE_ENABLED|ATA_TRUNCATED)|U(SE_RESULT|N(SIGNED_FLAG|IQUE_KEY_FLAG))|P(RI_KEY_FLAG|ART_KEY_FLAG)|ENUM_FLAG|A(S(SOC|YNC)|UTO_INCREMENT_FLAG)))|CRYPT_(R(C(2|6)|IJNDAEL_(1(28|92)|256)|AND)|GOST|XTEA|M(ODE_(STREAM|NOFB|C(BC|FB)|OFB|ECB)|ARS)|BLOWFISH(_COMPAT)?|S(ERPENT|KIPJACK|AFER(128|PLUS|64))|C(RYPT|AST_(128|256))|T(RIPLEDES|HREEWAY|WOFISH)|IDEA|3DES|DE(S|CRYPT|V_(RANDOM|URANDOM))|PANAMA|EN(CRYPT|IGNA)|WAKE|LOKI97|ARCFOUR(_IV)?))|S(TREAM_(REPORT_ERRORS|M(UST_SEEK|KDIR_RECURSIVE)|BUFFER_(NONE|FULL|LINE)|S(HUT_(RD(WR)?|WR)|OCK_(R(DM|AW)|S(TREAM|EQPACKET)|DGRAM)|ERVER_(BIND|LISTEN))|NOTIFY_(RE(SOLVE|DIRECTED)|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|CO(MPLETED|NNECT)|PROGRESS|F(ILE_SIZE_IS|AILURE)|AUTH_RE(SULT|QUIRED))|C(RYPTO_METHOD_(SSLv(2(_(SERVER|CLIENT)|3_(SERVER|CLIENT))|3_(SERVER|CLIENT))|TLS_(SERVER|CLIENT))|LIENT_(CONNECT|PERSISTENT|ASYNC_CONNECT)|AST_(FOR_SELECT|AS_STREAM))|I(GNORE_URL|S_URL|PPROTO_(RAW|TCP|I(CMP|P)|UDP))|O(OB|PTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER))|U(RL_STAT_(QUIET|LINK)|SE_PATH)|P(EEK|F_(INET(6)?|UNIX))|ENFORCE_SAFE_MODE|FILTER_(READ|WRITE|ALL))|UNFUNCS_RET_(STRING|TIMESTAMP|DOUBLE)|QLITE(_(R(OW|EADONLY)|MIS(MATCH|USE)|B(OTH|USY)|SCHEMA|N(O(MEM|T(FOUND|ADB)|LFS)|UM)|C(O(RRUPT|NSTRAINT)|ANTOPEN)|TOOBIG|I(NTER(RUPT|NAL)|OERR)|OK|DONE|P(ROTOCOL|ERM)|E(RROR|MPTY)|F(ORMAT|ULL)|LOCKED|A(BORT|SSOC|UTH))|3_(B(OTH|LOB)|NU(M|LL)|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT|ASSOC)))|CURL(M(SG_DONE|_(BAD_(HANDLE|EASY_HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|O(UT_OF_MEMORY|K)))|SSH_AUTH_(HOST|NONE|DEFAULT|P(UBLICKEY|ASSWORD)|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC))|_(HTTP_VERSION_(1_(1|0)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(MODSINCE|UNMODSINCE)|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|INFO_(RE(DIRECT_(COUNT|TIME)|QUEST_SIZE)|S(SL_VERIFYRESULT|TARTTRANSFER_TIME|IZE_(DOWNLOAD|UPLOAD)|PEED_(DOWNLOAD|UPLOAD))|H(TTP_CODE|EADER_(SIZE|OUT))|NAMELOOKUP_TIME|C(ON(NECT_TIME|TENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD)))|ERTINFO)|TOTAL_TIME|PR(IVATE|ETRANSFER_TIME)|EFFECTIVE_URL|FILETIME)|OPT_(R(E(SUME_FROM|TURNTRANSFER|DIR_PROTOCOLS|FERER|AD(DATA|FUNCTION))|AN(GE|DOM_FILE))|MAX(REDIRS|CONNECTS)|B(INARYTRANSFER|UFFERSIZE)|S(S(H_(HOST_PUBLIC_KEY_MD5|P(RIVATE_KEYFILE|UBLIC_KEYFILE)|AUTH_TYPES)|L(CERT(TYPE|PASSWD)?|_(CIPHER_LIST|VERIFY(HOST|PEER))|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?))|TDERR)|H(TTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|EADER(FUNCTION)?)|N(O(BODY|SIGNAL|PROGRESS)|ETRC)|C(RLF|O(NNECTTIMEOUT(_MS)?|OKIE(SESSION|JAR|FILE)?)|USTOMREQUEST|ERTINFO|LOSEPOLICY|A(INFO|PATH))|T(RANSFERTEXT|CP_NODELAY|IME(CONDITION|OUT(_MS)?|VALUE))|I(N(TERFACE|FILE(SIZE)?)|PRESOLVE)|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|U(RL|SER(PWD|AGENT)|NRESTRICTED_AUTH|PLOAD)|P(R(IVATE|O(GRESSFUNCTION|XY(TYPE|USERPWD|PORT|AUTH)?|TOCOLS))|O(RT|ST(REDIR|QUOTE|FIELDS)?)|UT)|E(GDSOCKET|NCODING)|VERBOSE|K(RB4LEVEL|EYPASSWD)|QUOTE|F(RESH_CONNECT|TP(SSLAUTH|_(S(SL|KIP_PASV_IP)|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|PORT|LISTONLY|APPEND)|ILE(TIME)?|O(RBID_REUSE|LLOWLOCATION)|AILONERROR)|WRITE(HEADER|FUNCTION)|LOW_SPEED_(TIME|LIMIT)|AUTOREFERER)|PRO(XY_(SOCKS(4|5)|HTTP)|TO_(S(CP|FTP)|HTTP(S)?|T(ELNET|FTP)|DICT|F(TP(S)?|ILE)|LDAP(S)?|ALL))|E_(RE(CV_ERROR|AD_ERROR)|GOT_NOTHING|MALFORMAT_USER|BAD_(C(ONTENT_ENCODING|ALLING_ORDER)|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|S(S(H|L_(C(IPHER|ONNECT_ERROR|ERTPROBLEM|ACERT)|PEER_CERTIFICATE|ENGINE_(SETFAILED|NOTFOUND)))|HARE_IN_USE|END_ERROR)|HTTP_(RANGE_ERROR|NOT_FOUND|PO(RT_FAILED|ST_ERROR))|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|T(OO_MANY_REDIRECTS|ELNET_OPTION_SYNTAX)|O(BSOLETE|UT_OF_MEMORY|PERATION_TIMEOUTED|K)|U(RL_MALFORMAT(_USER)?|N(SUPPORTED_PROTOCOL|KNOWN_TELNET_OPTION))|PARTIAL_FILE|F(TP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|C(OULDNT_(RETR_FILE|GET_SIZE|S(TOR_FILE|ET_(BINARY|ASCII))|USE_REST)|ANT_(RECONNECT|GET_HOST))|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|W(RITE_ERROR|EIRD_(SERVER_REPLY|227_FORMAT|USER_REPLY|PAS(S_REPLY|V_REPLY)))|ACCESS_DENIED)|ILE(SIZE_EXCEEDED|_COULDNT_READ_FILE)|UNCTION_NOT_FOUND|AILED_INIT)|WRITE_ERROR|L(IBRARY_NOT_FOUND|DAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL))|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTICWD|SINGLECWD|NOCWD)|SSL_(NONE|CONTROL|TRY|ALL)|AUTH_(SSL|TLS|DEFAULT))|AUTH_(GSSNEGOTIATE|BASIC|NTLM|DIGEST|ANY(SAFE)?))|I(MAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|I(CO|FF)|UNKNOWN|J(B2|P(X|2|C|EG(2000)?))|P(SD|NG)|WBMP)|NPUT_(REQUEST|GET|SE(RVER|SSION)|COOKIE|POST|ENV)|CONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION))|D(NS_(MX|S(RV|OA)|HINFO|N(S|APTR)|CNAME|TXT|PTR|A(NY|LL|AAA|6)?)|OM(STRING_SIZE_ERR|_(SYNTAX_ERR|HIERARCHY_REQUEST_ERR|N(O(_(MODIFICATION_ALLOWED_ERR|DATA_ALLOWED_ERR)|T_(SUPPORTED_ERR|FOUND_ERR))|AMESPACE_ERR)|IN(DEX_SIZE_ERR|USE_ATTRIBUTE_ERR|VALID_(MODIFICATION_ERR|STATE_ERR|CHARACTER_ERR|ACCESS_ERR))|PHP_ERR|VALIDATION_ERR|WRONG_DOCUMENT_ERR)))|JSON_(HEX_(TAG|QUOT|A(MP|POS))|NUMERIC_CHECK|ERROR_(S(YNTAX|TATE_MISMATCH)|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|P(REG_(RECURSION_LIMIT_ERROR|GREP_INVERT|BA(CKTRACK_LIMIT_ERROR|D_UTF8_(OFFSET_ERROR|ERROR))|S(PLIT_(NO_EMPTY|OFFSET_CAPTURE|DELIM_CAPTURE)|ET_ORDER)|NO_ERROR|INTERNAL_ERROR|OFFSET_CAPTURE|PATTERN_ORDER)|SFS_(PASS_ON|ERR_FATAL|F(EED_ME|LAG_(NORMAL|FLUSH_(CLOSE|INC))))|CRE_VERSION|OSIX_(R_OK|X_OK|S_IF(REG|BLK|SOCK|CHR|IFO)|F_OK|W_OK))|F(NM_(NOESCAPE|CASEFOLD|P(ERIOD|ATHNAME))|IL(TER_(REQUIRE_(SCALAR|ARRAY)|SANITIZE_(MAGIC_QUOTES|S(TRI(NG|PPED)|PECIAL_CHARS)|NUMBER_(INT|FLOAT)|URL|E(MAIL|NCODED)|FULL_SPECIAL_CHARS)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|VALIDATE_(REGEXP|BOOLEAN|I(NT|P)|URL|EMAIL|FLOAT)|F(ORCE_ARRAY|LAG_(S(CHEME_REQUIRED|TRIP_(BACKTICK|HIGH|LOW))|HOST_REQUIRED|NO(NE|_(RES_RANGE|PRIV_RANGE|ENCODE_QUOTES))|IPV(4|6)|PATH_REQUIRED|E(MPTY_STRING_NULL|NCODE_(HIGH|LOW|AMP))|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))))|E(_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|INFO_(RAW|MIME(_(TYPE|ENCODING))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)))|ORCE_(GZIP|DEFLATE))|LIBXML_(XINCLUDE|N(SCLEAN|O(XMLDECL|BLANKS|NET|CDATA|E(RROR|MPTYTAG|NT)|WARNING))|COMPACT|D(TD(VALID|LOAD|ATTR)|OTTED_VERSION)|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)|VERSION|LOADED_VERSION))\\b","name":"support.constant.ext.php"},{"captures":{"1":{"name":"punctuation.separator.inheritance.php"}},"match":"(\\\\)?\\bT_(RE(TURN|QUIRE(_ONCE)?)|G(OTO|LOBAL)|XOR_EQUAL|M(INUS_EQUAL|OD_EQUAL|UL_EQUAL|ETHOD_C|L_COMMENT)|B(REAK|OOL(_CAST|EAN_(OR|AND))|AD_CHARACTER)|S(R(_EQUAL)?|T(RING(_(CAST|VARNAME))?|A(RT_HEREDOC|TIC))|WITCH|L(_EQUAL)?)|HALT_COMPILER|N(S_(SEPARATOR|C)|UM_STRING|EW|AMESPACE)|C(HARACTER|O(MMENT|N(ST(ANT_ENCAPSED_STRING)?|CAT_EQUAL|TINUE))|URLY_OPEN|L(O(SE_TAG|NE)|ASS(_C)?)|A(SE|TCH))|T(RY|HROW)|I(MPLEMENTS|S(SET|_(GREATER_OR_EQUAL|SMALLER_OR_EQUAL|NOT_(IDENTICAL|EQUAL)|IDENTICAL|EQUAL))|N(STANCEOF|C(LUDE(_ONCE)?)?|T(_CAST|ERFACE)|LINE_HTML)|F)|O(R_EQUAL|BJECT_(CAST|OPERATOR)|PEN_TAG(_WITH_ECHO)?|LD_FUNCTION)|D(NUMBER|I(R|V_EQUAL)|O(C_COMMENT|UBLE_(C(OLON|AST)|ARROW)|LLAR_OPEN_CURLY_BRACES)?|E(C(LARE)?|FAULT))|U(SE|NSET(_CAST)?)|P(R(I(NT|VATE)|OTECTED)|UBLIC|LUS_EQUAL|AAMAYIM_NEKUDOTAYIM)|E(X(TENDS|IT)|MPTY|N(CAPSED_AND_WHITESPACE|D(SWITCH|_HEREDOC|IF|DECLARE|FOR(EACH)?|WHILE))|CHO|VAL|LSE(IF)?)|VAR(IABLE)?|F(I(NAL|LE)|OR(EACH)?|UNC(_C|TION))|WHI(TESPACE|LE)|L(NUMBER|I(ST|NE)|OGICAL_(XOR|OR|AND))|A(RRAY(_CAST)?|BSTRACT|S|ND_EQUAL))\\b","name":"support.constant.parser-token.php"},{"comment":"In PHP, any identifier which is not a variable is taken to be a constant.\n        \t\t\t\tHowever, if there is no constant defined with the given name then a notice\n        \t\t\t\tis generated and the constant is assumed to have the value of its name.","match":"[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*","name":"constant.other.php"}]}]},"function-arguments":{"patterns":[{"include":"#comments"},{"begin":"(?x)\n\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\\s*(array)\\s*(\\()\n\t\t\t\t\t\t\t","beginCaptures":{"1":{"name":"storage.type.php"},"2":{"name":"storage.modifier.reference.php"},"3":{"name":"variable.other.php"},"4":{"name":"punctuation.definition.variable.php"},"5":{"name":"keyword.operator.assignment.php"},"6":{"name":"support.function.construct.php"},"7":{"name":"punctuation.definition.array.begin.php"}},"contentName":"meta.array.php","end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.array.end.php"}},"name":"meta.function.argument.array.php","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"}]},{"captures":{"1":{"name":"storage.type.php"},"2":{"name":"storage.modifier.reference.php"},"3":{"name":"variable.other.php"},"4":{"name":"punctuation.definition.variable.php"},"5":{"name":"keyword.operator.assignment.php"},"6":{"name":"constant.language.php"},"7":{"name":"invalid.illegal.non-null-typehinted.php"}},"match":"(?xi)\n\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\\s*((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\\s*(?:(=)\\s*(?:(null)|((?:\\S*?\\(\\))|(?:\\S*?))))\t# A default value\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment\n\t\t\t\t\t\t\t","name":"meta.function.argument.array.php"},{"begin":"(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z_0-9]*\\s*&?\\s*\\$)","end":"(?=,|\\)|/[/*]|\\#|$)","name":"meta.function.argument.typehinted.php","patterns":[{"include":"#class-name"},{"captures":{"1":{"name":"support.class.php"},"2":{"name":"storage.modifier.reference.php"},"3":{"name":"variable.other.php"},"4":{"name":"punctuation.definition.variable.php"},"5":{"name":"keyword.operator.assignment.php"},"6":{"name":"constant.language.php"},"7":{"name":"invalid.illegal.non-null-typehinted.php"}},"match":"(?xi)\n        \t\t\t\t\t\t\t\\s*([a-z_][a-z_0-9]*)? # Typehinted class name\n        \t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n        \t\t\t\t\t\t\t\\s*((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n        \t\t\t\t\t\t\t(?:\n        \t\t\t\t\t\t\t\t\\s*(?:(=)\\s*(?:(null)|((?:\\S*?\\(\\))|(?:\\S*?))))\t# A default value\n        \t\t\t\t\t\t\t)?\n        \t\t\t\t\t\t\t\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma\n\t\t\t\t\t        "}]},{"captures":{"1":{"name":"storage.modifier.reference.php"},"2":{"name":"variable.other.php"},"3":{"name":"punctuation.definition.variable.php"}},"match":"(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\)|/[/*]|\\#)","name":"meta.function.argument.no-default.php"},{"begin":"(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?:\\s*(=)\\s*)\\s*","captures":{"1":{"name":"storage.modifier.reference.php"},"2":{"name":"variable.other.php"},"3":{"name":"punctuation.definition.variable.php"},"4":{"name":"keyword.operator.assignment.php"}},"end":"(?=,|\\)|/[/*]|\\#)","name":"meta.function.argument.default.php","patterns":[{"include":"#parameter-default-types"}]}]},"function-call":{"patterns":[{"begin":"(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*\\()","comment":"Functions in a user-defined namespace (overrides any built-ins)","end":"(?=\\s*\\()","patterns":[{"include":"#user-function-call"}]},{"match":"(?i)\\b(print|echo)\\b","name":"support.function.construct.php"},{"begin":"(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*\\()","beginCaptures":{"1":{"name":"punctuation.separator.inheritance.php"}},"comment":"Root namespace function calls (built-in or user)","end":"(?=\\s*\\()","patterns":[{"match":"(?i)\\b(isset|unset|e(val|mpty)|list)(?=\\s*\\()","name":"support.function.construct.php"},{"include":"#support"},{"include":"#user-function-call"}]}]},"heredoc":{"patterns":[{"begin":"(?=<<<\\s*(\"?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$)","end":"(?!\\G)","injections":{"*":{"patterns":[{"include":"#interpolation"}]}},"name":"string.unquoted.heredoc.php","patterns":[{"include":"#heredoc_interior"}]},{"begin":"(?=<<<\\s*('?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$)","end":"(?!\\G)","name":"string.unquoted.heredoc.nowdoc.php","patterns":[{"include":"#heredoc_interior"}]}],"repository":{"heredoc_interior":{"patterns":[{"begin":"(<<<)\\s*(['\"]?)(HTML)(\\2)\\s*$\\n?","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.php"},"1":{"name":"punctuation.definition.string.php"},"3":{"name":"keyword.operator.heredoc.php"}},"contentName":"text.html","end":"^(\\3)\\b","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"keyword.operator.heredoc.php"}},"name":"meta.embedded.html","patterns":[{"include":"text.html.basic"}]},{"begin":"(<<<)\\s*(['\"]?)(XML)(\\2)\\s*$\\n?","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.php"},"1":{"name":"punctuation.definition.string.php"},"3":{"name":"keyword.operator.heredoc.php"}},"contentName":"text.xml","end":"^(\\3)\\b","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"keyword.operator.heredoc.php"}},"name":"meta.embedded.xml","patterns":[{"include":"text.xml"}]},{"begin":"(<<<)\\s*(['\"]?)(SQL)(\\2)\\s*$\\n?","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.php"},"1":{"name":"punctuation.definition.string.php"},"3":{"name":"keyword.operator.heredoc.php"}},"contentName":"source.sql","end":"^(\\3)\\b","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"keyword.operator.heredoc.php"}},"name":"meta.embedded.sql","patterns":[{"include":"source.sql"}]},{"begin":"(<<<)\\s*(['\"]?)(JAVASCRIPT)(\\2)\\s*$\\n?","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.php"},"1":{"name":"punctuation.definition.string.php"},"3":{"name":"keyword.operator.heredoc.php"}},"contentName":"source.js","end":"^(\\3)\\b","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"keyword.operator.heredoc.php"}},"name":"meta.embedded.js","patterns":[{"include":"source.js"}]},{"begin":"(<<<)\\s*(['\"]?)(JSON)(\\2)\\s*$\\n?","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.php"},"1":{"name":"punctuation.definition.string.php"},"3":{"name":"keyword.operator.heredoc.php"}},"contentName":"source.json","end":"^(\\3)\\b","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"keyword.operator.heredoc.php"}},"name":"meta.embedded.json","patterns":[{"include":"source.json"}]},{"begin":"(<<<)\\s*(['\"]?)(CSS)(\\2)\\s*$\\n?","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.php"},"1":{"name":"punctuation.definition.string.php"},"3":{"name":"keyword.operator.heredoc.php"}},"contentName":"source.css","end":"^(\\3)\\b","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"keyword.operator.heredoc.php"}},"name":"meta.embedded.css","patterns":[{"include":"source.css"}]},{"begin":"(<<<)\\s*(['\"]?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\2)","beginCaptures":{"1":{"name":"punctuation.definition.string.php"},"3":{"name":"keyword.operator.heredoc.php"}},"end":"^(\\3)\\b","endCaptures":{"1":{"name":"keyword.operator.heredoc.php"}}}]}}},"instantiation":{"begin":"(?i)(new)\\s+","beginCaptures":{"1":{"name":"keyword.other.new.php"}},"end":"(?i)(?=[^$a-z0-9_\\\\])","patterns":[{"match":"(parent|static|self)(?=[^a-z0-9_])","name":"storage.type.php"},{"include":"#class-name"},{"include":"#variable-name"}]},"interpolation":{"comment":"http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing","patterns":[{"match":"\\\\[0-7]{1,3}","name":"constant.numeric.octal.php"},{"match":"\\\\x[0-9A-Fa-f]{1,2}","name":"constant.numeric.hex.php"},{"match":"\\\\[nrt\\\\\\$\\\"]","name":"constant.character.escape.php"},{"begin":"(\\{)(?=\\$.*?\\})","beginCaptures":{"1":{"name":"punctuation.definition.variable.php"}},"end":"(\\})","endCaptures":{"1":{"name":"punctuation.definition.variable.php"}},"patterns":[{"include":"#language"}]},{"include":"#variable-name"}]},"invoke-call":{"captures":{"1":{"name":"punctuation.definition.variable.php"},"2":{"name":"variable.other.php"}},"match":"(?i)(\\$+)([a-z_][a-z_0-9]*)(?=\\s*\\()","name":"meta.function-call.invoke.php"},"language":{"patterns":[{"include":"#comments"},{"match":"\\{","name":"punctuation.section.scope.begin.php"},{"match":"\\}","name":"punctuation.section.scope.end.php"},{"begin":"(?i)^\\s*(interface)\\s+([a-z0-9_]+)\\s*(extends)?\\s*","beginCaptures":{"1":{"name":"storage.type.interface.php"},"2":{"name":"entity.name.type.interface.php"},"3":{"name":"storage.modifier.extends.php"}},"end":"([a-zA-Z0-9_]+)?\\s*(?:(?=\\{)|$)","endCaptures":{"1":{"name":"entity.other.inherited-class.php"}},"name":"meta.interface.php","patterns":[{"include":"#namespace"}]},{"begin":"(?i)^\\s*(trait)\\s+([a-z0-9_]+)\\s*","beginCaptures":{"1":{"name":"storage.type.trait.php"},"2":{"name":"entity.name.type.class.php"}},"end":"(?=[{])","name":"meta.trait.php","patterns":[{"include":"#comments"}]},{"begin":"(?i)^\\s*(namespace)\\b\\s+(?=([a-z0-9_\\\\]+\\s*($|[;{]|(\\/[\\/*])))|$)","beginCaptures":{"1":{"name":"keyword.other.namespace.php"}},"contentName":"entity.name.type.namespace.php","end":"(?i)(?=\\s*$|[^a-z0-9_\\\\])","name":"meta.namespace.php","patterns":[{"match":"\\\\","name":"punctuation.separator.inheritance.php"}]},{"begin":"(?i)\\s*\\b(use)\\s+","beginCaptures":{"1":{"name":"keyword.other.use.php"}},"end":"(?=;|(?:^\\s*$))","name":"meta.use.php","patterns":[{"include":"#comments"},{"begin":"(?i)\\s*(?=[a-z_0-9\\\\])","end":"(?xi)(?:\n    \t\t\t                (?:\\s*(as)\\b\\s*([a-z_0-9]*)\\s*(?=,|;|$))\n    \t\t\t                |(?=,|;|$)\n    \t\t\t            )","endCaptures":{"1":{"name":"keyword.other.use-as.php"},"2":{"name":"support.other.namespace.use-as.php"}},"patterns":[{"include":"#class-builtin"},{"begin":"(?i)\\s*(?=[\\\\a-z_0-9])","end":"$|(?=[\\s,;])","name":"support.other.namespace.use.php","patterns":[{"match":"\\\\","name":"punctuation.separator.inheritance.php"}]}]},{"match":"\\s*,\\s*"}]},{"begin":"(?i)^\\s*(abstract|final)?\\s*(class)\\s+([a-z0-9_]+)\\s*","beginCaptures":{"1":{"name":"storage.modifier.abstract.php"},"2":{"name":"storage.type.class.php"},"3":{"name":"entity.name.type.class.php"}},"end":"(?=[;{])","name":"meta.class.php","patterns":[{"include":"#comments"},{"begin":"(?i)(extends)\\s+","beginCaptures":{"1":{"name":"storage.modifier.extends.php"}},"contentName":"meta.other.inherited-class.php","end":"(?i)(?=[^a-z_0-9\\\\])","patterns":[{"begin":"(?i)(?=\\\\?[a-z_0-9]+\\\\)","end":"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])","endCaptures":{"1":{"name":"entity.other.inherited-class.php"}},"patterns":[{"include":"#namespace"}]},{"include":"#class-builtin"},{"include":"#namespace"},{"match":"(?i)[a-z_][a-z_0-9]*","name":"entity.other.inherited-class.php"}]},{"begin":"(?i)(implements)\\s+","beginCaptures":{"1":{"name":"storage.modifier.implements.php"}},"end":"(?i)(?=[;{])","patterns":[{"include":"#comments"},{"begin":"(?i)(?=[a-z0-9_\\\\]+)","contentName":"meta.other.inherited-class.php","end":"(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\\\\\s]))\\s*)","patterns":[{"begin":"(?i)(?=\\\\?[a-z_0-9]+\\\\)","end":"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])","endCaptures":{"1":{"name":"entity.other.inherited-class.php"}},"patterns":[{"include":"#namespace"}]},{"include":"#class-builtin"},{"include":"#namespace"},{"match":"(?i)[a-z_][a-z_0-9]*","name":"entity.other.inherited-class.php"}]}]}]},{"captures":{"1":{"name":"keyword.control.php"}},"match":"\\s*\\b((break|c(ase|ontinue)|d(e(clare|fault)|ie|o)|e(lse(if)?|nd(declare|for(each)?|if|switch|while)|xit)|for(each)?|if|return|switch|use|while))\\b"},{"begin":"(?i)\\b((?:require|include)(?:_once)?)\\b\\s*","beginCaptures":{"1":{"name":"keyword.control.import.include.php"}},"end":"(?=\\s|;|$)","name":"meta.include.php","patterns":[{"include":"#language"}]},{"begin":"\\b(catch)\\b\\s*\\(\\s*","beginCaptures":{"1":{"name":"keyword.control.exception.catch.php"}},"end":"([A-Za-z_][A-Za-z_0-9]*)\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*\\)","endCaptures":{"1":{"name":"support.class.exception.php"},"2":{"name":"variable.other.php"},"3":{"name":"punctuation.definition.variable.php"}},"name":"meta.catch.php","patterns":[{"include":"#namespace"}]},{"match":"\\b(catch|try|throw|exception|finally)\\b","name":"keyword.control.exception.php"},{"begin":"(?i)\\b(function)\\s*(&\\s*)?(?=\\()","beginCaptures":{"1":{"name":"storage.type.function.php"},"2":{"name":"storage.modifier.reference.php"}},"end":"\\{","name":"meta.function.closure.php","patterns":[{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.php"}},"contentName":"meta.function.arguments.php","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.php"}},"patterns":[{"include":"#function-arguments"}]},{"begin":"(?i)(use)\\s*(\\()","beginCaptures":{"1":{"name":"keyword.other.function.use.php"},"2":{"name":"punctuation.definition.parameters.begin.php"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.php"}},"patterns":[{"captures":{"1":{"name":"storage.modifier.reference.php"},"2":{"name":"variable.other.php"},"3":{"name":"punctuation.definition.variable.php"}},"match":"(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))","name":"meta.function.closure.use.php"}]}]},{"begin":"(?x)\\s*\n\t\t\t\t\t    ((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n\t\t\t\t        (function)\n\t\t\t\t        (?:\\s+|(\\s*&\\s*))\n\t\t\t\t        (?:\n\t\t\t\t            (__(?:call|construct|destruct|get|set|isset|unset|tostring|clone|set_state|sleep|wakeup|autoload|invoke|callStatic))\n\t\t\t\t            |([a-zA-Z0-9_]+)\n\t\t\t\t        )\n\t\t\t\t        \\s*\n\t\t\t\t        (\\()","beginCaptures":{"1":{"patterns":[{"match":"final|abstract|public|private|protected|static","name":"storage.modifier.php"}]},"2":{"name":"storage.type.function.php"},"3":{"name":"storage.modifier.reference.php"},"4":{"name":"support.function.magic.php"},"5":{"name":"entity.name.function.php"},"6":{"name":"punctuation.definition.parameters.begin.php"}},"contentName":"meta.function.arguments.php","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.php"}},"name":"meta.function.php","patterns":[{"include":"#function-arguments"}]},{"include":"#invoke-call"},{"begin":"(?xi)\\s*(?=\n\t\t\t\t        [a-z_0-9$\\\\]+(::)\n                        (?:\n        \t\t\t\t    ([a-z_][a-z_0-9]*)\\s*\\(\n        \t\t\t\t    |\n        \t\t\t\t    ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n        \t\t\t\t    |\n        \t\t\t\t    ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n        \t\t\t\t)?\n\t\t\t\t    )","end":"(?x)(::)\n                        (?:\n        \t\t\t\t    ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n        \t\t\t\t    |\n        \t\t\t\t    ((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n        \t\t\t\t    |\n        \t\t\t\t    ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n        \t\t\t\t)?","endCaptures":{"1":{"name":"keyword.operator.class.php"},"2":{"name":"meta.function-call.static.php"},"3":{"name":"variable.other.class.php"},"4":{"name":"punctuation.definition.variable.php"},"5":{"name":"constant.other.class.php"}},"patterns":[{"match":"(self|static|parent)\\b","name":"storage.type.php"},{"include":"#class-name"},{"include":"#variable-name"}]},{"include":"#variables"},{"include":"#strings"},{"captures":{"1":{"name":"support.function.construct.php"},"2":{"name":"punctuation.definition.array.begin.php"},"3":{"name":"punctuation.definition.array.end.php"}},"match":"(array)(\\()(\\))","name":"meta.array.empty.php"},{"begin":"(array)(\\()","beginCaptures":{"1":{"name":"support.function.construct.php"},"2":{"name":"punctuation.definition.array.begin.php"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.array.end.php"}},"name":"meta.array.php","patterns":[{"include":"#language"}]},{"captures":{"1":{"name":"storage.type.php"}},"match":"(?i)\\s*\\(\\s*(array|real|double|float|int(eger)?|bool(ean)?|string|object|binary|unset)\\s*\\)"},{"match":"(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|trait|parent|self|object)\\b","name":"storage.type.php"},{"match":"(?i)\\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|static)\\b","name":"storage.modifier.php"},{"include":"#object"},{"match":";","name":"punctuation.terminator.expression.php"},{"include":"#heredoc"},{"match":"\\.=?","name":"keyword.operator.string.php"},{"match":"=>","name":"keyword.operator.key.php"},{"captures":{"1":{"name":"keyword.operator.assignment.php"},"2":{"name":"storage.modifier.reference.php"},"3":{"name":"storage.modifier.reference.php"}},"match":"(?:(\\=)(&))|(&(?=[$A-Za-z_]))"},{"match":"(@)","name":"keyword.operator.error-control.php"},{"match":"(\\-\\-|\\+\\+)","name":"keyword.operator.increment-decrement.php"},{"match":"(\\-|\\+|\\*|/|%)","name":"keyword.operator.arithmetic.php"},{"match":"(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b","name":"keyword.operator.logical.php"},{"include":"#function-call"},{"match":"<<|>>|~|\\^|&|\\|","name":"keyword.operator.bitwise.php"},{"match":"(===|==|!==|!=|<=|>=|<>|<|>)","name":"keyword.operator.comparison.php"},{"match":"=","name":"keyword.operator.assignment.php"},{"begin":"(?i)\\b(instanceof)\\b\\s+(?=[\\\\$a-z_])","beginCaptures":{"1":{"name":"keyword.operator.type.php"}},"end":"(?=[^\\\\$A-Za-z_0-9])","patterns":[{"include":"#class-name"},{"include":"#variable-name"}]},{"include":"#numbers"},{"include":"#instantiation"},{"captures":{"1":{"name":"keyword.control.goto.php"},"2":{"name":"support.other.php"}},"match":"(?i)(goto)\\s+([a-z_][a-z_0-9]*)"},{"captures":{"1":{"name":"entity.name.goto-label.php"}},"match":"(?i)^\\s*([a-z_][a-z_0-9]*)\\s*:"},{"include":"#string-backtick"},{"begin":"\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.php"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.section.array.end.php"}},"patterns":[{"include":"#language"}]},{"include":"#constants"}]},"namespace":{"begin":"(?i)(?:(namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])","beginCaptures":{"1":{"name":"variable.language.namespace.php"},"2":{"name":"punctuation.separator.inheritance.php"}},"end":"(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])","name":"support.other.namespace.php","patterns":[{"captures":{"1":{"name":"punctuation.separator.inheritance.php"}},"match":"(?i)(\\\\)"}]},"numbers":{"match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b","name":"constant.numeric.php"},"object":{"patterns":[{"begin":"(->)(\\$?\\{)","beginCaptures":{"1":{"name":"keyword.operator.class.php"},"2":{"name":"punctuation.definition.variable.php"}},"end":"(\\})","endCaptures":{"1":{"name":"punctuation.definition.variable.php"}},"patterns":[{"include":"#language"}]},{"captures":{"1":{"name":"keyword.operator.class.php"},"2":{"name":"meta.function-call.object.php"},"3":{"name":"variable.other.property.php"},"4":{"name":"punctuation.definition.variable.php"}},"match":"(?x)(->)\n            \t\t\t\t(?:\n            \t\t\t\t    ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n            \t\t\t\t    |\n            \t\t\t\t    ((\\$+)?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n            \t\t\t\t)?"}]},"parameter-default-types":{"patterns":[{"include":"#strings"},{"include":"#numbers"},{"include":"#string-backtick"},{"include":"#variables"},{"match":"=>","name":"keyword.operator.key.php"},{"match":"=","name":"keyword.operator.assignment.php"},{"match":"&(?=\\s*\\$)","name":"storage.modifier.reference.php"},{"begin":"(array)\\s*(\\()","beginCaptures":{"1":{"name":"support.function.construct.php"},"2":{"name":"punctuation.definition.array.begin.php"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.array.end.php"}},"name":"meta.array.php","patterns":[{"include":"#parameter-default-types"}]},{"include":"#instantiation"},{"begin":"(?xi)\\s*(?=\n\t\t\t\t        [a-z_0-9\\\\]+(::)\n    \t\t\t\t    ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n\t\t\t\t    )","end":"(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?","endCaptures":{"1":{"name":"keyword.operator.class.php"},"2":{"name":"constant.other.class.php"}},"patterns":[{"include":"#class-name"}]},{"include":"#constants"}]},"php_doc":{"patterns":[{"comment":"PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character","match":"^(?!\\s*\\*).*$\\n?","name":"invalid.illegal.missing-asterisk.phpdoc.php"},{"captures":{"1":{"name":"keyword.other.phpdoc.php"},"3":{"name":"storage.modifier.php"},"4":{"name":"invalid.illegal.wrong-access-type.phpdoc.php"}},"match":"^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"},{"captures":{"1":{"name":"keyword.other.phpdoc.php"},"2":{"name":"markup.underline.link.php"}},"match":"(@xlink)\\s+(.+)\\s*$"},{"match":"\\@(a(bstract|uthor)|c(ategory|opyright)|example|global|internal|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final|ignore)\\b","name":"keyword.other.phpdoc.php"},{"captures":{"1":{"name":"keyword.other.phpdoc.php"}},"match":"\\{(@(link)).+?\\}","name":"meta.tag.inline.phpdoc.php"}]},"regex-double-quoted":{"begin":"(?x)\"/ (?= (\\\\.|[^\"/])++/[imsxeADSUXu]*\" )","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.php"}},"end":"(/)([imsxeADSUXu]*)(\")","endCaptures":{"0":{"name":"punctuation.definition.string.end.php"}},"name":"string.regexp.double-quoted.php","patterns":[{"comment":"Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)","match":"(\\\\){1,2}[.$^\\[\\]{}]","name":"constant.character.escape.regex.php"},{"include":"#interpolation"},{"captures":{"1":{"name":"punctuation.definition.arbitrary-repetition.php"},"3":{"name":"punctuation.definition.arbitrary-repetition.php"}},"match":"(\\{)\\d+(,\\d+)?(\\})","name":"string.regexp.arbitrary-repetition.php"},{"begin":"\\[(?:\\^?\\])?","captures":{"0":{"name":"punctuation.definition.character-class.php"}},"end":"\\]","name":"string.regexp.character-class.php","patterns":[{"include":"#interpolation"}]},{"match":"[$^+*]","name":"keyword.operator.regexp.php"}]},"regex-single-quoted":{"begin":"(?x)'/ (?= (\\\\.|[^'/])++/[imsxeADSUXu]*' )","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.php"}},"end":"(/)([imsxeADSUXu]*)(')","endCaptures":{"0":{"name":"punctuation.definition.string.end.php"}},"name":"string.regexp.single-quoted.php","patterns":[{"captures":{"1":{"name":"punctuation.definition.arbitrary-repetition.php"},"3":{"name":"punctuation.definition.arbitrary-repetition.php"}},"match":"(\\{)\\d+(,\\d+)?(\\})","name":"string.regexp.arbitrary-repetition.php"},{"comment":"Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)","match":"(\\\\){1,2}[.$^\\[\\]{}]","name":"constant.character.escape.regex.php"},{"comment":"Escaped from the PHP string – there can also be 2 backslashes (since 1 will escape the first)","match":"\\\\{1,2}[\\\\']","name":"constant.character.escape.php"},{"begin":"\\[(?:\\^?\\])?","captures":{"0":{"name":"punctuation.definition.character-class.php"}},"end":"\\]","name":"string.regexp.character-class.php","patterns":[{"match":"\\\\[\\\\'\\[\\]]","name":"constant.character.escape.php"}]},{"match":"[$^+*]","name":"keyword.operator.regexp.php"}]},"sql-string-double-quoted":{"begin":"\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.php"}},"contentName":"source.sql.embedded.php","end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.php"}},"name":"string.quoted.double.sql.php","patterns":[{"match":"#(\\\\\"|[^\"])*(?=\"|$\\n?)","name":"comment.line.number-sign.sql"},{"match":"--(\\\\\"|[^\"])*(?=\"|$\\n?)","name":"comment.line.double-dash.sql"},{"match":"\\\\[\\\\\"`']","name":"constant.character.escape.php"},{"comment":"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"","match":"'(?=((\\\\')|[^'\"])*(\"|$))","name":"string.quoted.single.unclosed.sql"},{"comment":"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"","match":"`(?=((\\\\`)|[^`\"])*(\"|$))","name":"string.quoted.other.backtick.unclosed.sql"},{"begin":"'","end":"'","name":"string.quoted.single.sql","patterns":[{"include":"#interpolation"}]},{"begin":"`","end":"`","name":"string.quoted.other.backtick.sql","patterns":[{"include":"#interpolation"}]},{"include":"#interpolation"},{"include":"source.sql"}]},"sql-string-single-quoted":{"begin":"'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.php"}},"contentName":"source.sql.embedded.php","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.php"}},"name":"string.quoted.single.sql.php","patterns":[{"match":"#(\\\\'|[^'])*(?='|$\\n?)","name":"comment.line.number-sign.sql"},{"match":"--(\\\\'|[^'])*(?='|$\\n?)","name":"comment.line.double-dash.sql"},{"match":"\\\\[\\\\'`\"]","name":"constant.character.escape.php"},{"comment":"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"","match":"`(?=((\\\\`)|[^`'])*('|$))","name":"string.quoted.other.backtick.unclosed.sql"},{"comment":"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"","match":"\"(?=((\\\\\")|[^\"'])*('|$))","name":"string.quoted.double.unclosed.sql"},{"include":"source.sql"}]},"string-backtick":{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.php"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.php"}},"name":"string.interpolated.php","patterns":[{"match":"\\\\.","name":"constant.character.escape.php"},{"include":"#interpolation"}]},"string-double-quoted":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.php"}},"comment":"This contentName is just to allow the usage of “select scope” to select the string contents first, then the string with quotes","contentName":"meta.string-contents.quoted.double.php","end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.php"}},"name":"string.quoted.double.php","patterns":[{"include":"#interpolation"}]},"string-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.php"}},"contentName":"meta.string-contents.quoted.single.php","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.php"}},"name":"string.quoted.single.php","patterns":[{"match":"\\\\[\\\\']","name":"constant.character.escape.php"}]},"strings":{"patterns":[{"include":"#regex-double-quoted"},{"include":"#sql-string-double-quoted"},{"include":"#string-double-quoted"},{"include":"#regex-single-quoted"},{"include":"#sql-string-single-quoted"},{"include":"#string-single-quoted"}]},"support":{"patterns":[{"match":"(?i)\\bapc_(s(tore|ma_info)|c(ompile_file|lear_cache|a(s|che_info))|inc|de(c|fine_constants|lete(_file)?)|exists|fetch|load_constants|add|bin_(dump(file)?|load(file)?))\\b","name":"support.function.apc.php"},{"match":"(?i)\\b(s(huffle|izeof|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|p(os|rev)|e(nd|ach|xtract)|k(sort|ey|rsort)|list|a(sort|r(sort|ray(_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|place(_recursive)?|verse)|and)|m(ultisort|erge(_recursive)?|ap)))?))|r(sort|eset|ange))\\b","name":"support.function.array.php"},{"match":"(?i)\\b(s(how_source|ys_getloadavg|leep)|highlight_(string|file)|con(stant|nection_(status|timeout|aborted))|time_(sleep_until|nanosleep)|ignore_user_abort|d(ie|efine(d)?)|u(sleep|n(iqid|pack))|__halt_compiler|p(hp_(strip_whitespace|check_syntax)|ack)|e(val|xit)|get_browser)\\b","name":"support.function.basic_functions.php"},{"match":"(?i)\\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))\\b","name":"support.function.bcmath.php"},{"match":"(?i)\\bbz(c(ompress|lose)|open|decompress|err(str|no|or)|flush|write|read)\\b","name":"support.function.bz2.php"},{"match":"(?i)\\b(GregorianToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|jdto(unix|jewish)|easter_da(ys|te)|J(ulianToJD|ewishToJD|D(MonthName|To(Gregorian|Julian|French)|DayOfWeek))|FrenchToJD)\\b","name":"support.function.calendar.php"},{"match":"(?i)\\b(c(lass_(exists|alias)|all_user_method(_array)?)|trait_exists|i(s_(subclass_of|a)|nterface_exists)|__autoload|property_exists|get_(c(lass(_(vars|methods))?|alled_class)|object_vars|declared_(classes|traits|interfaces)|parent_class)|method_exists)\\b","name":"support.function.classobj.php"},{"match":"(?i)\\b(com_(set|create_guid|i(senum|nvoke)|pr(int_typeinfo|op(set|put|get))|event_sink|load(_typelib)?|addref|release|get(_active_object)?|message_pump)|variant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|round|get_type|xor|m(od|ul)))\\b","name":"support.function.com.php"},{"match":"(?i)\\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)\\b","name":"support.function.ctype.php"},{"match":"(?i)\\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo|multi_(select|close|in(it|fo_read)|exec|add_handle|remove_handle|getcontent))\\b","name":"support.function.curl.php"},{"match":"(?i)\\b(str(totime|ptime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|transitions_get|identifiers_list|o(pen|ffset_get)|version_get|location_get|abbreviations_list))?|idate|date(_(su(n(set|_info|rise)|b)|create(_from_format)?|time(stamp_(set|get)|zone_(set|get)|_set)|i(sodate_set|nterval_(create_from_date_string|format))|offset_get|d(iff|efault_timezone_(set|get)|ate_set)|parse(_from_format)?|format|add|get_last_errors|modify))?|localtime|g(et(timeofday|date)|m(strftime|date|mktime))|m(icrotime|ktime))\\b","name":"support.function.datetime.php"},{"match":"(?i)\\bdba_(sync|handlers|nextkey|close|insert|op(timize|en)|delete|popen|exists|key_split|f(irstkey|etch)|list|replace)\\b","name":"support.function.dba.php"},{"match":"(?i)\\bdbx_(sort|c(o(nnect|mpare)|lose)|e(scape_string|rror)|query|fetch_row)\\b","name":"support.function.dbx.php"},{"match":"(?i)\\b(scandir|c(h(dir|root)|losedir)|opendir|dir|re(winddir|addir)|getcwd)\\b","name":"support.function.dir.php"},{"match":"(?i)\\bdotnet_load\\b","name":"support.function.dotnet.php"},{"match":"(?i)\\beio_(s(y(nc(_file_range|fs)?|mlink)|tat(vfs)?|e(ndfile|t_m(in_parallel|ax_(idle|p(oll_(time|reqs)|arallel)))|ek))|n(threads|op|pending|re(qs|ady))|c(h(own|mod)|ustom|lose|ancel)|truncate|init|open|dup2|u(nlink|time)|poll|event_loop|f(s(ync|tat(vfs)?)|ch(own|mod)|truncate|datasync|utime|allocate)|write|l(stat|ink)|r(e(name|a(d(dir|link|ahead)?|lpath))|mdir)|g(et_(event_stream|last_error)|rp(_(cancel|limit|add))?)|mk(nod|dir)|busy)\\b","name":"support.function.eio.php"},{"match":"(?i)\\benchant_(dict_(s(tore_replacement|uggest)|check|is_in_session|describe|quick_check|add_to_(session|personal)|get_error)|broker_(set_ordering|init|d(ict_exists|escribe)|free(_dict)?|list_dicts|request_(dict|pwl_dict)|get_error))\\b","name":"support.function.enchant.php"},{"match":"(?i)\\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)\\b","name":"support.function.ereg.php"},{"match":"(?i)\\b(set_e(rror_handler|xception_handler)|trigger_error|debug_(print_backtrace|backtrace)|user_error|error_(log|reporting|get_last)|restore_e(rror_handler|xception_handler))\\b","name":"support.function.errorfunc.php"},{"match":"(?i)\\b(s(hell_exec|ystem)|p(assthru|roc_(nice|close|terminate|open|get_status))|e(scapeshell(cmd|arg)|xec))\\b","name":"support.function.exec.php"},{"match":"(?i)\\b(exif_(t(humbnail|agname)|imagetype|read_data)|read_exif_data)\\b","name":"support.function.exif.php"},{"match":"(?i)\\b(s(ymlink|tat|et_file_buffer)|c(h(own|grp|mod)|opy|learstatcache)|t(ouch|empnam|mpfile)|is_(dir|uploaded_file|executable|file|writ(eable|able)|link|readable)|d(i(sk(_(total_space|free_space)|freespace)|rname)|elete)|u(nlink|mask)|p(close|open|a(thinfo|rse_ini_(string|file)))|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(size|ctime|type|inode|owner|_(put_contents|exists|get_contents)|perms|atime|group|mtime)?|open|p(ut(s|csv)|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|l(stat|ch(own|grp)|ink(info)?)|r(e(name|wind|a(d(file|link)|lpath(_cache_(size|get))?))|mdir)|glob|m(ove_uploaded_file|kdir)|basename)\\b","name":"support.function.file.php"},{"match":"(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b","name":"support.function.fileinfo.php"},{"match":"(?i)\\bfilter_(has_var|i(nput(_array)?|d)|var(_array)?|list)\\b","name":"support.function.filter.php"},{"match":"(?i)\\b(c(all_user_func(_array)?|reate_function)|unregister_tick_function|f(orward_static_call(_array)?|unc(tion_exists|_(num_args|get_arg(s)?)))|register_(shutdown_function|tick_function)|get_defined_functions)\\b","name":"support.function.funchand.php"},{"match":"(?i)\\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))\\b","name":"support.function.gettext.php"},{"match":"(?i)\\bgmp_(s(can(1|0)|trval|ign|ub|etbit|qrt(rem)?)|hamdist|ne(g|xtprime)|c(om|lrbit|mp)|testbit|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)?|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))\\b","name":"support.function.gmp.php"},{"match":"(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(stream|file))?|pbkdf2|fi(nal|le)|algos))?\\b","name":"support.function.hash.php"},{"match":"(?i)\\b(http_(s(upport|end_(st(atus|ream)|content_(type|disposition)|data|file|last_modified))|head|negotiate_(c(harset|ontent_type)|language)|c(hunked_decode|ache_(etag|last_modified))|throttle|inflate|d(eflate|ate)|p(ost_(data|fields)|ut_(stream|data|file)|ersistent_handles_(c(ount|lean)|ident)|arse_(headers|cookie|params|message))|re(direct|quest(_(method_(name|unregister|exists|register)|body_encode))?)|get(_request_(headers|body(_stream)?))?|match_(etag|request_header|modified)|build_(str|cookie|url))|ob_(inflatehandler|deflatehandler|etaghandler))\\b","name":"support.function.http.php"},{"match":"(?i)\\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b","name":"support.function.iconv.php"},{"match":"(?i)\\biis_(s(t(op_serv(ice|er)|art_serv(ice|er))|et_(s(cript_map|erver_rights)|dir_security|app_settings))|add_server|remove_server|get_(s(cript_map|erv(ice_state|er_(rights|by_(comment|path))))|dir_security))\\b","name":"support.function.iisfunc.php"},{"match":"(?i)\\b(i(ptc(parse|embed)|mage(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|2wbmp|d(estroy|ashedline)|jpeg|_type_to_(extension|mime_type)|p(s(slantfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|ellipse|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|l(ine|oadfont|ayereffect)|a(ntialias|lphablending|rc)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm))|jpeg2wbmp|png2wbmp|g(d_info|etimagesize(fromstring)?))\\b","name":"support.function.image.php"},{"match":"(?i)\\b(s(ys_get_temp_dir|et_(time_limit|include_path|magic_quotes_runtime))|ini_(set|alter|restore|get(_all)?)|zend_(thread_id|version|logo_guid)|dl|p(hp(credits|info|_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|version)|utenv)|extension_loaded|version_compare|assert(_options)?|restore_include_path|g(c_(collect_cycles|disable|enable(d)?)|et(opt|_(c(urrent_user|fg_var)|include(d_files|_path)|defined_constants|extension_funcs|loaded_extensions|required_files|magic_quotes_(runtime|gpc))|env|lastmod|rusage|my(inode|uid|pid|gid)))|m(emory_get_(usage|peak_usage)|a(in|gic_quotes_runtime)))\\b","name":"support.function.info.php"},{"match":"(?i)\\bibase_(se(t_event_handler|rv(ice_(detach|attach)|er_info))|n(um_(params|fields)|ame_result)|c(o(nnect|mmit(_ret)?)|lose)|trans|d(elete_user|rop_db|b_info)|p(connect|aram_info|repare)|e(rr(code|msg)|xecute)|query|f(ield_info|etch_(object|assoc|row)|ree_(event_handler|query|result))|wait_event|a(dd_user|ffected_rows)|r(ollback(_ret)?|estore)|gen_id|m(odify_user|aintain_db)|b(lob_(c(lose|ancel|reate)|i(nfo|mport)|open|echo|add|get)|ackup))\\b","name":"support.function.interbase.php"},{"match":"(?i)\\b(n(ormalizer_(normalize|is_normalized)|umfmt_(set_(symbol|text_attribute|pattern|attribute)|create|parse(_currency)?|format(_currency)?|get_(symbol|text_attribute|pattern|error_(code|message)|locale|attribute)))|collator_(s(ort(_with_sort_keys)?|et_(strength|attribute))|c(ompare|reate)|asort|get_(s(trength|ort_key)|error_(code|message)|locale|attribute))|transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|i(ntl_(is_failure|error_name|get_error_(code|message))|dn_to_(u(nicode|tf8)|ascii))|datefmt_(set_(calendar|timezone(_id)?|pattern|lenient)|create|is_lenient|parse|format(_object)?|localtime|get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|locale_(set_default|compose|parse|filter_matches|lookup|accept_from_http|get_(script|d(isplay_(script|name|variant|language|region)|efault)|primary_language|keywords|all_variants|region))|resourcebundle_(c(ount|reate)|locales|get(_error_(code|message))?)|grapheme_(s(tr(str|i(str|pos)|pos|len|r(ipos|pos))|ubstr)|extract)|msgfmt_(set_pattern|create|parse(_message)?|format(_message)?|get_(pattern|error_(code|message)|locale)))\\b","name":"support.function.intl.php"},{"match":"(?i)\\bjson_(decode|encode|last_error)\\b","name":"support.function.json.php"},{"match":"(?i)\\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|c(o(n(nect|trol_paged_result(_response)?)|unt_entries|mpare)|lose)|t61_to_8859|d(n2ufn|elete)|8859_to_t61|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|list|add|re(name|ad)|get_(option|dn|entries|values(_len)?|attributes)|mod(ify|_(del|add|replace))|bind)\\b","name":"support.function.ldap.php"},{"match":"(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b","name":"support.function.libxml.php"},{"match":"(?i)\\b(ezmlm_hash|mail)\\b","name":"support.function.mail.php"},{"match":"(?i)\\b(s(in(h)?|qrt|rand)|h(ypot|exdec)|c(os(h)?|eil)|tan(h)?|is_(nan|infinite|finite)|octdec|de(c(hex|oct|bin)|g2rad)|p(i|ow)|exp(m1)?|f(loor|mod)|l(cg_value|og(1(p|0))?)|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|a(nd|d2deg))|getrandmax|m(t_(srand|rand|getrandmax)|in|ax)|b(indec|ase_convert))\\b","name":"support.function.math.php"},{"match":"(?i)\\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|plit|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|p(arse_str|referred_mime_name)|e(ncod(ing_aliases|e_(numericentity|mimeheader))|reg(i(_replace)?|_(search(_(setpos|init|pos|regs|get(pos|regs)))?|replace(_callback)?|match))?)|l(ist_encodings|anguage)|regex_(set_options|encoding)|get_info)\\b","name":"support.function.mbstring.php"},{"match":"(?i)\\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt)|cb)|list_(algorithms|modes)|ge(neric(_(init|deinit|end))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)\\b","name":"support.function.mcrypt.php"},{"match":"(?i)\\bmemcache_debug\\b","name":"support.function.memcache.php"},{"match":"(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b","name":"support.function.mhash.php"},{"match":"(?i)\\bbson_(decode|encode)\\b","name":"support.function.mongo.php"},{"match":"(?i)\\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|t(hread_id|ablename)|in(sert_id|fo)|d(ata_seek|rop_db|b_(name|query))|unbuffered_query|p(connect|ing)|e(scape_string|rr(no|or))|query|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|list_(tables|dbs|processes|fields)|affected_rows|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))\\b","name":"support.function.mysql.php"},{"match":"(?i)\\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data)|next_result|close|init|data_seek|prepare|execute|f(etch|ree_result)|attr_(set|get)|res(ult_metadata|et)|get_(warnings|result)|more_results|bind_(param|result)))|e(nd_(query|long_data)|t_(charset|opt|local_infile_(handler|default))|lect_db)|lave_query)|next_result|c(ha(nge_user|racter_set_name)|o(nnect|mmit)|l(ient_encoding|ose))|thread_safe|init|options|d(isable_r(pl_parse|eads_from_master)|ump_debug_info|ebug|ata_seek)|use_result|p(ing|oll|aram_count|repare)|e(scape_string|nable_r(pl_parse|eads_from_master)|xecute|mbedded_server_(start|end))|kill|query|f(ield_seek|etch(_(object|field(s|_direct)?|a(ssoc|ll|rray)|row))?|ree_result)|autocommit|r(ollback|pl_(p(arse_enabled|robe)|query_type)|e(port|fresh|a(p_async_query|l_(connect|escape_string|query))))|get_(c(harset|onnection_stats|lient_(stats|info|version)|ache_stats)|warnings|metadata)|m(ore_results|ulti_query|aster_query)|bind_(param|result))\\b","name":"support.function.mysqli.php"},{"match":"(?i)\\bmysqlnd_memcache_(set|get_config)\\b","name":"support.function.mysqlnd-memcache.php"},{"match":"(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|query_is_select|get_(stats|last_(used_connection|gtid))|match_wild)\\b","name":"support.function.mysqlnd-ms.php"},{"match":"(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|c(ore_stats|ache_info)|query_trace_log|available_handlers))\\b","name":"support.function.mysqlnd-qc.php"},{"match":"(?i)\\bmysqlnd_uh_(set_(statement_proxy|connection_proxy)|convert_to_mysqlnd)\\b","name":"support.function.mysqlnd-uh.php"},{"match":"(?i)\\b(s(yslog|ocket_(set_(timeout|blocking)|get_status)|et(cookie|rawcookie))|h(ttp_response_code|eader(s_(sent|list)|_re(gister_callback|move))?)|c(heckdnsrr|loselog)|i(net_(ntop|pton)|p2long)|openlog|d(ns_(check_record|get_(record|mx))|efine_syslog_variables)|pfsockopen|fsockopen|long2ip|get(servby(name|port)|host(name|by(name(l)?|addr))|protobyn(umber|ame)|mxrr))\\b","name":"support.function.network.php"},{"match":"(?i)\\bnsapi_(virtual|re(sponse_headers|quest_headers))\\b","name":"support.function.nsapi.php"},{"match":"(?i)\\b(deaggregate|aggregat(ion_info|e(_(info|properties(_by_(list|regexp))?|methods(_by_(list|regexp))?))?))\\b","name":"support.function.objaggregation.php"},{"match":"(?i)\\boci(s(tatementtype|e(tprefetch|rverversion)|avelob(file)?)|n(umcols|ew(c(ollection|ursor)|descriptor)|logon)|c(o(l(umn(s(cale|ize)|name|type(raw)?|isnull|precision)|l(size|trim|a(ssign(elem)?|ppend)|getelem|max))|mmit)|loselob|ancel)|internaldebug|definebyname|_(s(tatement_type|e(t_(client_i(nfo|dentifier)|prefetch|edition|action|module_name)|rver_version))|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|c(o(nnect|mmit)|l(ient_version|ose)|ancel)|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|type(_raw)?|is_null|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|descriptor))|lob_(copy|is_equal)|r(ollback|esult)|bind_(array_by_name|by_name))|p(logon|arse)|e(rror|xecute)|f(etch(statement|into)?|ree(statement|c(ollection|ursor)|desc))|write(temporarylob|lobtofile)|lo(adlob|go(n|ff))|r(o(wcount|llback)|esult)|bindbyname)\\b","name":"support.function.oci8.php"},{"match":"(?i)\\bopenssl_(s(ign|eal)|c(sr_(sign|new|export(_to_file)?|get_(subject|public_key))|ipher_iv_length)|open|d(h_compute_key|igest|ecrypt)|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|e(ncrypt|rror_string)|verify|free_key|random_pseudo_bytes|get_(cipher_methods|p(ublickey|rivatekey)|md_methods)|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))\\b","name":"support.function.openssl.php"},{"match":"(?i)\\b(o(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|g(zhandler|et_(status|c(ontents|lean)|flush|le(ngth|vel)))))|flush)\\b","name":"support.function.output.php"},{"match":"(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b","name":"support.function.password.php"},{"match":"(?i)\\bpcntl_(s(ig(nal(_dispatch)?|timedwait|procmask|waitinfo)|etpriority)|exec|fork|w(stopsig|termsig|if(s(topped|ignaled)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)\\b","name":"support.function.pcntl.php"},{"match":"(?i)\\bpg_(se(nd_(prepare|execute|query(_params)?)|t_(client_encoding|error_verbosity)|lect)|host|num_(fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|l(ient_encoding|ose)|ancel_query)|t(ty|ra(nsaction_status|ce))|insert|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|p(connect|ing|ort|ut_line|arameter_status|repare)|e(scape_(string|identifier|literal|bytea)|nd_copy|xecute)|version|query(_params)?|f(ield_(size|n(um|ame)|t(ype(_oid)?|able)|is_null|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree_result)|l(o_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|affected_rows|result_(s(tatus|eek)|error(_field)?)|get_(notify|pid|result)|meta_data)\\b","name":"support.function.pgsql.php"},{"match":"(?i)\\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|re(s(ponse_headers|et_timeout)|quest_headers)|get(_(version|modules)|env))|getallheaders)\\b","name":"support.function.php_apache.php"},{"match":"(?i)\\bdom_import_simplexml\\b","name":"support.function.php_dom.php"},{"match":"(?i)\\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|onnect|dup|lose)|delete|p(ut|wd|asv)|exec|quit|f(put|get)|login|alloc|r(ename|aw(list)?|mdir)|get(_option)?|m(dtm|kdir))\\b","name":"support.function.php_ftp.php"},{"match":"(?i)\\bimap_(s(can(mailbox)?|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|header(s|info)?|num_(recent|msg)|c(heck|l(ose|earflag_full)|reate(mailbox)?)|t(hread|imeout)|open|delete(mailbox)?|8bit|u(n(subscribe|delete)|tf(7_(decode|encode)|8)|id)|ping|e(rrors|xpunge)|qprint|fetch(structure|header|text|_overview|mime|body)|l(sub|ist(s(can|ubscribed)|mailbox)?|ast_error)|a(ppend|lerts)|r(e(name(mailbox)?|open)|fc822_(parse_(headers|adrlist)|write_address))|g(c|et(subscribed|_quota(root)?|acl|mailboxes))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))\\b","name":"support.function.php_imap.php"},{"match":"(?i)\\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|pconnect|execute|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|r(ows_affected|esult)|g(uid_string|et_last_message)|min_(error_severity|message_severity)|bind)\\b","name":"support.function.php_mssql.php"},{"match":"(?i)\\bodbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|d(o|ata_source)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|e(rror(msg)?|xec(ute)?)|f(ield_(scale|n(um|ame)|type|precision|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|longreadlen|autocommit|r(ollback|esult(_all)?)|gettypeinfo|binmode)\\b","name":"support.function.php_odbc.php"},{"match":"(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b","name":"support.function.php_pcre.php"},{"match":"(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b","name":"support.function.php_spl.php"},{"match":"(?i)\\bzip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)\\b","name":"support.function.php_zip.php"},{"match":"(?i)\\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|t(tyname|imes)|i(satty|nitgroups)|uname|errno|kill|access|get(sid|cwd|uid|_last_error|p(id|pid|w(nam|uid)|g(id|rp))|e(uid|gid)|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))\\b","name":"support.function.posix.php"},{"match":"(?i)\\bset(threadtitle|proctitle)\\b","name":"support.function.proctitle.php"},{"match":"(?i)\\bpspell_(s(tore_replacement|uggest|ave_wordlist)|new(_(config|personal))?|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|add_to_(session|personal))\\b","name":"support.function.pspell.php"},{"match":"(?i)\\breadline(_(c(ompletion_function|lear_history|allback_(handler_(install|remove)|read_char))|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?\\b","name":"support.function.readline.php"},{"match":"(?i)\\brecode(_(string|file))?\\b","name":"support.function.recode.php"},{"match":"(?i)\\brrd_(create|tune|info|update|error|version|f(irst|etch)|last(update)?|restore|graph|xport)\\b","name":"support.function.rrd.php"},{"match":"(?i)\\b(s(hm_(has_var|detach|put_var|attach|remove(_var)?|get_var)|em_(acquire|re(lease|move)|get))|ftok|msg_(s(tat_queue|e(nd|t_queue))|queue_exists|re(ceive|move_queue)|get_queue))\\b","name":"support.function.sem.php"},{"match":"(?i)\\bsession_(s(ta(tus|rt)|et_(save_handler|cookie_params)|ave_path)|name|c(ommit|ache_(expire|limiter))|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister(_shutdown)?|enerate_id)|get_cookie_params|module_name)\\b","name":"support.function.session.php"},{"match":"(?i)\\bshmop_(size|close|open|delete|write|read)\\b","name":"support.function.shmop.php"},{"match":"(?i)\\bsimplexml_(import_dom|load_(string|file))\\b","name":"support.function.simplexml.php"},{"match":"(?i)\\bsnmp(set|2_(set|walk|real_walk|get(next)?)|_(set_(oid_(numeric_print|output_format)|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|3_(set|walk|real_walk|get(next)?)|walk(oid)?|realwalk|get(next)?)\\b","name":"support.function.snmp.php"},{"match":"(?i)\\b(is_soap_fault|use_soap_error_handler)\\b","name":"support.function.soap.php"},{"match":"(?i)\\bsocket_(s(hutdown|trerror|e(nd(to)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|import_stream|write|l(isten|ast_error)|accept|re(cv(from)?|ad)|get(sockname|_option|peername)|bind)\\b","name":"support.function.sockets.php"},{"match":"(?i)\\bsqlite_(s(ingle_query|eek)|has_(prev|more)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|p(open|rev)|e(scape_string|rror_string|xec)|valid|key|query|f(ield_name|etch_(s(tring|ingle)|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)\\b","name":"support.function.sqlite.php"},{"match":"(?i)\\bsqlsrv_(se(nd_stream_data|rver_info)|has_rows|n(um_(fields|rows)|ext_result)|c(o(n(nect|figure)|mmit)|l(ient_info|ose)|ancel)|prepare|e(rrors|xecute)|query|f(ield_metadata|etch(_(object|array))?|ree_stmt)|ro(ws_affected|llback)|get_(config|field)|begin_transaction)\\b","name":"support.function.sqlsrv.php"},{"match":"(?i)\\bstats_(s(ta(ndard_deviation|t_(noncentral_t|correlation|in(nerproduct|dependent_t)|p(owersum|ercentile|aired_t)|gennch|binomial_coef))|kew)|harmonic_mean|c(ovariance|df_(n(oncentral_(chisquare|f)|egative_binomial)|c(hisquare|auchy)|t|uniform|poisson|exponential|f|weibull|l(ogistic|aplace)|gamma|b(inomial|eta)))|den(s_(n(ormal|egative_binomial)|c(hisquare|auchy)|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|weibull|l(ogistic|aplace)|gamma|beta)|_uniform)|variance|kurtosis|absolute_deviation|rand_(setall|phrase_to_seeds|ranf|ge(n_(no(ncen(tral_(t|f)|ral_chisquare)|rmal)|chisquare|t|i(nt|uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)|t_seeds)))\\b","name":"support.function.stats.php"},{"match":"(?i)\\bs(tream_(s(ocket_(s(hutdown|e(ndto|rver))|client|pair|enable_crypto|accept|recvfrom|get_name)|upports_lock|e(t_(chunk_size|timeout|write_buffer|read_buffer|blocking)|lect))|notification_callback|co(ntext_(set_(option|default|params)|create|get_(options|default|params))|py_to_stream)|is_local|encoding|filter_(prepend|append|re(gister|move))|wrapper_(unregister|re(store|gister))|re(solve_include_path|gister_wrapper)|get_(contents|transports|filters|wrappers|line|meta_data)|bucket_(new|prepend|append|make_writeable))|et_socket_blocking)\\b","name":"support.function.streamsfuncs.php"},{"match":"(?i)\\b(s(scanf|ha1(_file)?|tr(s(tr|pn)|n(c(asecmp|mp)|atc(asecmp|mp))|c(spn|hr|oll|asecmp|mp)|t(o(upper|k|lower)|r)|i(str|p(slashes|cslashes|os|_tags))|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace))|getcsv)|p(os|brk)|len|r(chr|ipos|pos|ev))|imilar_text|oundex|ubstr(_(co(unt|mpare)|replace))?|printf|etlocale)|h(tml(specialchars(_decode)?|_entity_decode|entities)|e(x2bin|brev(c)?))|n(umber_format|l(2br|_langinfo))|c(h(op|unk_split|r)|o(nvert_(cyr_string|uu(decode|encode))|unt_chars)|r(ypt|c32))|trim|implode|ord|uc(first|words)|join|p(arse_str|rint(f)?)|e(cho|xplode)|v(sprintf|printf|fprintf)|quote(d_printable_(decode|encode)|meta)|fprintf|wordwrap|l(cfirst|trim|ocaleconv|evenshtein)|add(slashes|cslashes)|rtrim|get_html_translation_table|m(oney_format|d5(_file)?|etaphone)|bin2hex)\\b","name":"support.function.string.php"},{"match":"(?i)\\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|query|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|affected_rows|result|get_last_message|min_(server_severity|client_severity|error_severity|message_severity))\\b","name":"support.function.sybase.php"},{"match":"(?i)\\b(taint|is_tainted|untaint)\\b","name":"support.function.taint.php"},{"match":"(?i)\\b(tidy_(s(et(opt|_encoding)|ave_config)|c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|parse_(string|file)|error_count|warning_count|load_config|access_count|re(set_config|pair_(string|file))|get(opt|_(status|h(tml(_ver)?|ead)|config|o(utput|pt_doc)|r(oot|elease)|body)))|ob_tidyhandler)\\b","name":"support.function.tidy.php"},{"match":"(?i)\\btoken_(name|get_all)\\b","name":"support.function.tokenizer.php"},{"match":"(?i)\\btrader_(s(t(och(f|rsi)?|ddev)|in(h)?|u(m|b)|et_(compat|unstable_period)|qrt|ar(ext)?|ma)|ht_(sine|trend(line|mode)|dcp(hase|eriod)|phasor)|natr|c(ci|o(s(h)?|rrel)|dl(s(ho(otingstar|rtline)|t(icksandwich|alledpattern)|pinningtop|eparatinglines)|h(i(kkake(mod)?|ghwave)|omingpigeon|a(ngingman|rami(cross)?|mmer))|c(o(ncealbabyswall|unterattack)|losingmarubozu)|t(hrusting|a(sukigap|kuri)|ristar)|i(n(neck|vertedhammer)|dentical3crows)|2crows|onneck|d(oji(star)?|arkcloudcover|ragonflydoji)|u(nique3river|psidegap2crows)|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|piercing|e(ngulfing|vening(star|dojistar))|kicking(bylength)?|l(ongl(ine|eggeddoji)|adderbottom)|a(dvanceblock|bandonedbaby)|ri(sefall3methods|ckshawman)|g(apsidesidewhite|ravestonedoji)|xsidegap3methods|m(orning(star|dojistar)|a(t(hold|chinglow)|rubozu))|b(elthold|reakaway))|eil|mo)|t(sf|ypprice|3|ema|an(h)?|r(i(x|ma)|ange))|obv|d(iv|ema|x)|ultosc|p(po|lus_d(i|m))|e(rrno|xp|ma)|var|kama|floor|w(clprice|illr|ma)|l(n|inearreg(_(slope|intercept|angle))?|og10)|a(sin|cos|t(an|r)|d(osc|d|x(r)?)?|po|vgprice|roon(osc)?)|r(si|oc(p|r(100)?)?)|get_(compat|unstable_period)|m(i(n(index|us_d(i|m)|max(index)?)?|dp(oint|rice))|om|ult|edprice|fi|a(cd(ext|fix)?|vp|x(index)?|ma)?)|b(op|eta|bands))\\b","name":"support.function.trader.php"},{"match":"(?i)\\b(http_build_query|url(decode|encode)|parse_url|rawurl(decode|encode)|get_(headers|meta_tags)|base64_(decode|encode))\\b","name":"support.function.url.php"},{"match":"(?i)\\b(s(trval|e(ttype|rialize))|i(s(set|_(s(calar|tring)|nu(ll|meric)|callable|int(eger)?|object|double|float|long|array|re(source|al)|bool))|ntval|mport_request_variables)|d(oubleval|ebug_zval_dump)|unse(t|rialize)|print_r|empty|var_(dump|export)|floatval|get(type|_(defined_vars|resource_type))|boolval)\\b","name":"support.function.var.php"},{"match":"(?i)\\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)\\b","name":"support.function.wddx.php"},{"match":"(?i)\\bxhprof_(sample_(disable|enable)|disable|enable)\\b","name":"support.function.xhprof.php"},{"match":"(?i)\\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|object|default_handler|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|error_string|get_(current_(column_number|line_number|byte_index)|error_code)))\\b","name":"support.function.xml.php"},{"match":"(?i)\\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)\\b","name":"support.function.xmlrpc.php"},{"match":"(?i)\\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))\\b","name":"support.function.xmlwriter.php"},{"match":"(?i)\\bxslt_(set(opt|_(s(cheme_handler(s)?|ax_handler(s)?)|object|e(ncoding|rror_handler)|log|base))|create|process|err(no|or)|free|getopt|backend_(name|info|version))\\b","name":"support.function.xslt.php"},{"match":"(?i)\\b(zlib_(decode|encode|get_coding_type)|readgzfile|gz(seek|c(ompress|lose)|tell|inflate|open|de(code|flate)|uncompress|p(uts|assthru)|e(ncode|of)|file|write|re(wind|ad)|get(s(s)?|c)))\\b","name":"support.function.zlib.php"},{"match":"(?i)\\bis_int(eger)?\\b","name":"support.function.alias.php"}]},"user-function-call":{"begin":"(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()","end":"(?i)[a-z_][a-z_0-9]*(?=\\s*\\()","name":"meta.function-call.php","patterns":[{"include":"#namespace"}]},"var_basic":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.php"}},"match":"(?x)\n        \t\t\t            (\\$+)[a-zA-Z_\\x{7f}-\\x{ff}]\n        \t\t\t            [a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\\b","name":"variable.other.php"}]},"var_global":{"captures":{"1":{"name":"punctuation.definition.variable.php"}},"match":"(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b","name":"variable.other.global.php"},"var_global_safer":{"captures":{"1":{"name":"punctuation.definition.variable.php"}},"match":"(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))","name":"variable.other.global.safer.php"},"variable-name":{"patterns":[{"include":"#var_global"},{"include":"#var_global_safer"},{"captures":{"1":{"name":"variable.other.php"},"2":{"name":"punctuation.definition.variable.php"},"4":{"name":"keyword.operator.class.php"},"5":{"name":"variable.other.property.php"},"6":{"name":"punctuation.section.array.begin.php"},"7":{"name":"constant.numeric.index.php"},"8":{"name":"variable.other.index.php"},"9":{"name":"punctuation.definition.variable.php"},"10":{"name":"string.unquoted.index.php"},"11":{"name":"punctuation.section.array.end.php"}},"comment":"Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar","match":"(?x)\n\t\t\t\t\t\t((\\$)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t(->)(\\g<name>)\n\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t(\\[)\n\t\t\t\t\t\t\t\t(?:(\\d+)|((\\$)\\g<name>)|(\\w+))\n\t\t\t\t\t\t\t(\\])\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t"},{"captures":{"1":{"name":"variable.other.php"},"2":{"name":"punctuation.definition.variable.php"},"4":{"name":"punctuation.definition.variable.php"}},"comment":"Simple syntax with braces: \"foo${bar}baz\"","match":"(?x)\n\t\t\t\t\t\t((\\$\\{)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))\n\t\t\t\t\t\t"}]},"variables":{"patterns":[{"include":"#var_global"},{"include":"#var_global_safer"},{"include":"#var_basic"},{"begin":"(\\$\\{)(?=.*?\\})","beginCaptures":{"1":{"name":"punctuation.definition.variable.php"}},"end":"(\\})","endCaptures":{"1":{"name":"punctuation.definition.variable.php"}},"patterns":[{"include":"#language"}]}]}}},"/Users/sadick/github/highlights/deps/language-property-list/grammars/property list (old-style).cson":{"fileTypes":["plist","dict","scriptSuite","scriptTerminology","savedSearch"],"firstLineMatch":"\\A// .*?\\b(?i:property list)\\b","name":"Property List (Old-Style)","patterns":[{"begin":"(?=\\(|\\{)","end":"(?=not)possible","patterns":[{"include":"#dictionary"},{"include":"#array"},{"include":"#comment"},{"include":"#stray"}]},{"include":"#comment"},{"include":"#stray"}],"repository":{"array":{"begin":"\\G\\(","beginCaptures":{"0":{"name":"punctuation.definition.array.begin.plist"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.array.end.plist"}},"name":"meta.scope.array.plist","patterns":[{"include":"#array_item"},{"include":"#comment"},{"include":"#stray"}]},"array_item":{"begin":"(?=<|\\(|\\{|\"|'|[-a-zA-Z0-9_.])","end":",|(?=\\))","endCaptures":{"0":{"name":"punctuation.separator.array.plist"}},"name":"meta.scope.array-item.plist","patterns":[{"include":"#dictionary"},{"include":"#array"},{"include":"#string"},{"include":"#binary"},{"include":"#comment"},{"include":"#stray"}]},"binary":{"begin":"\\G<","beginCaptures":{"1":{"name":"punctuation.definition.data.plist"}},"contentName":"constant.numeric.base64.plist","end":"(=?)\\s*(>)","endCaptures":{"1":{"name":"punctuation.terminator.data.plist"},"2":{"name":"punctuation.definition.data.plist"}},"name":"meta.binary-data.plist","patterns":[{"match":"[^A-Za-z0-9+/ \\n]","name":"invalid.illegal.invalid-character.plist"}]},"comment":{"patterns":[{"begin":"/\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.plist"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.begin.plist"}},"name":"comment.block.plist"},{"begin":"(^[ \\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.plist"}},"end":"(?!\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.plist"}},"end":"\\n","name":"comment.line.double-slash.plist"}]}]},"dictionary":{"begin":"\\G\\{","beginCaptures":{"0":{"name":"punctuation.definition.dictionary.begin.plist"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.plist"}},"name":"meta.scope.dictionary.plist","patterns":[{"include":"#dictionary_item"},{"include":"#comment"},{"include":"#stray"}]},"dictionary_item":{"begin":"(?>((\")((?:[^\"\\\\]|\\\\.)*)(\"))|((')((?:[^'\\\\]|\\\\.)*)('))|([-a-zA-Z0-9_.]+))","beginCaptures":{"1":{"name":"string.quoted.double.plist"},"2":{"name":"punctuation.definition.string.begin.plist"},"3":{"name":"constant.other.key.plist","patterns":[{"include":"#string-contents"}]},"4":{"name":"punctuation.definition.string.end.plist"},"5":{"name":"string.quoted.single.plist"},"6":{"name":"punctuation.definition.string.begin.plist"},"7":{"name":"constant.other.key.plist","patterns":[{"include":"#string-contents"}]},"8":{"name":"punctuation.definition.string.end.plist"},"9":{"name":"constant.other.key.plist"}},"end":";|(?=\\})","endCaptures":{"0":{"name":"punctuation.separator.dictionary.plist"}},"name":"meta.scope.dictionary-item.${3/[[\\s\\x20-\\x7F]&&[:^alnum:]]//g}${7/[[\\s\\x20-\\x7F]&&[:^alnum:]]//g}${9/[[\\s\\x20-\\x7F]&&[:^alnum:]]//g}.plist","patterns":[{"include":"#dictionary_item_contents"}]},"dictionary_item_contents":{"patterns":[{"begin":"=","end":"(?=;|\\})","patterns":[{"begin":"(?=<|\\(|\\{|\"|'|[-a-zA-Z0-9_.])","end":"(?=;|\\})","patterns":[{"include":"#dictionary"},{"include":"#array"},{"include":"#string"},{"include":"#binary"},{"include":"#stray"}]},{"include":"#stray_alpha"}]},{"include":"#stray"}]},"stray":{"begin":"\\S","end":"(?=\\{|\\(|/\\*|//|\"|'|<|,|;|\\)|\\}|=)","name":"invalid.illegal.character-not-allowed-here.plist"},"stray_alpha":{"begin":"\\S","end":"(?=\\{|\\(|/\\*|//|\"|'|<|,|;|\\)|\\}|=|\\b[a-zA-Z0-9]|[-_.])","name":"invalid.illegal.character-not-allowed-here.plist"},"string":{"patterns":[{"begin":"\\G'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.plist"}},"end":"'(?!')","endCaptures":{"0":{"name":"punctuation.definition.string.end.plist"}},"name":"string.quoted.single.plist","patterns":[{"include":"#string-contents"}]},{"begin":"\\G\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.plist"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.plist"}},"name":"string.quoted.double.plist","patterns":[{"include":"#string-contents"}]},{"match":"\\G[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?(?!\\w)","name":"constant.numeric.plist"},{"match":"\\G[-a-zA-Z0-9_.]+","name":"string.unquoted.plist"}]},"string-contents":{"match":"\\\\([uU](\\h{4}|\\h{2})|\\d{1,3}|.)","name":"constant.character.escape.plist"}},"scopeName":"source.plist"},"/Users/sadick/github/highlights/deps/language-property-list/grammars/property list (xml).cson":{"fileTypes":[],"firstLineMatch":"\\s*<\\?xml .*\\n\\s*<!DOCTYPE\\s*(?i:plist)\\s","name":"Property List (XML)","patterns":[{"include":"#xml"}],"repository":{"xml":{"patterns":[{"begin":"((<)((plist\\b)))","captures":{"1":{"name":"meta.tag.plist.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"end":"((/)((plist))(>))","patterns":[{"begin":"(?<=<plist)(?!>)\\s*(?:(version)(=)(?:((\").*?(\"))|((').*?('))))?","beginCaptures":{"1":{"name":"entity.other.attribute-name.version.xml.plist"},"2":{"name":"punctuation.separator.key-value.xml.plist"},"3":{"name":"string.quoted.double.xml.plist"},"4":{"name":"punctuation.definition.string.begin.xml.plist"},"5":{"name":"punctuation.definition.string.end.xml.plist"},"6":{"name":"string.quoted.single.xml.plist"},"7":{"name":"punctuation.definition.string.begin.xml.plist"},"8":{"name":"punctuation.definition.string.end.xml.plist"}},"end":"(?=>)","name":"meta.tag.plist.xml.plist"},{"captures":{"1":{"name":"meta.tag.plist.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"meta.scope.between-tag-pair.xml.plist"}},"comment":"Tag with no content","match":"((>(<)))(?=/plist)"},{"begin":"((>))(?!</plist)","beginCaptures":{"1":{"name":"meta.tag.plist.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"}},"end":"(<)(?=/plist)","endCaptures":{"0":{"name":"meta.tag.plist.xml.plist"},"1":{"name":"punctuation.definition.tag.xml.plist"}},"patterns":[{"include":"#xml_tags"}]}]},{"include":"#xml_invalid"},{"include":"#xml_comment"},{"include":"text.xml"},{"include":"#xml_stray-char"}]},"xml_comment":{"begin":"<!--","captures":{"0":{"name":"punctuation.definition.comment.xml.plist"}},"end":"(?<!-)-->","name":"comment.block.xml.plist","patterns":[{"match":"-(?=-->)|--","name":"invalid.illegal.double-dash-not-allowed.xml.plist"}]},"xml_innertag":{"patterns":[{"match":"&([a-zA-Z0-9_-]+|#[0-9]+|#x[0-9a-fA-F]+);","name":"constant.character.entity.xml.plist"},{"match":"&","name":"invalid.illegal.bad-ampersand.xml.plist"}]},"xml_invalid":{"captures":{"1":{"name":"meta.tag.boolean.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"invalid.illegal.tag-not-recognized.xml.plist"},"4":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Invalid tag","match":"((<)/?(\\w+).*?(>))"},"xml_stray-char":{"match":"\\S","name":"invalid.illegal.character-data-not-allowed-here.xml.plist"},"xml_tags":{"patterns":[{"captures":{"1":{"name":"meta.tag.dict.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"},"6":{"name":"meta.tag.dict.xml.plist"},"7":{"name":"punctuation.definition.tag.xml.plist"},"8":{"name":"meta.scope.between-tag-pair.xml.plist"},"9":{"name":"entity.name.tag.xml.plist"},"10":{"name":"entity.name.tag.localname.xml.plist"},"11":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Empty tag: Dictionary","match":"((<)((dict))(>))(((<)/)((dict))(>))"},{"captures":{"1":{"name":"meta.tag.array.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"},"6":{"name":"meta.tag.array.xml.plist"},"7":{"name":"punctuation.definition.tag.xml.plist"},"8":{"name":"meta.scope.between-tag-pair.xml.plist"},"9":{"name":"entity.name.tag.xml.plist"},"10":{"name":"entity.name.tag.localname.xml.plist"},"11":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Empty tag: Array","match":"((<)((array))(>))(((<)/)((array))(>))"},{"captures":{"1":{"name":"meta.tag.string.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"},"6":{"name":"meta.tag.string.xml.plist"},"7":{"name":"punctuation.definition.tag.xml.plist"},"8":{"name":"meta.scope.between-tag-pair.xml.plist"},"9":{"name":"entity.name.tag.xml.plist"},"10":{"name":"entity.name.tag.localname.xml.plist"},"11":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Empty tag: String","match":"((<)((string))(>))(((<)/)((string))(>))"},{"begin":"((<)((key))(>))","captures":{"1":{"name":"meta.tag.key.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"the extra captures are required to duplicate the effect of the namespace parsing in the XML syntax","contentName":"constant.other.name.xml.plist","end":"((</)((key))(>))","patterns":[{"begin":"<!\\[CDATA\\[","captures":{"0":{"name":"punctuation.definition.constant.xml"}},"end":"]]>"}]},{"captures":{"1":{"name":"meta.tag.dict.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Self-closing Dictionary","match":"((<)((dict))\\s*?/(>))"},{"captures":{"1":{"name":"meta.tag.array.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Self-closing Array","match":"((<)((array))\\s*?/(>))"},{"captures":{"1":{"name":"meta.tag.string.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Self-closing String","match":"((<)((string))\\s*?/(>))"},{"captures":{"1":{"name":"meta.tag.key.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Self-closing Key","match":"((<)((key))\\s*?/(>))"},{"begin":"((<)((dict))(>))","captures":{"1":{"name":"meta.tag.dict.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Dictionary","end":"((</)((dict))(>))","patterns":[{"include":"#xml_tags"}]},{"begin":"((<)((array))(>))","captures":{"1":{"name":"meta.tag.array.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Array","end":"((</)((array))(>))","patterns":[{"include":"#xml_tags"}]},{"begin":"((<)((string))(>))","captures":{"1":{"name":"meta.tag.string.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Strings","contentName":"string.quoted.other.xml.plist","end":"((</)((string))(>))","patterns":[{"include":"#xml_innertag"},{"begin":"<!\\[CDATA\\[","captures":{"0":{"name":"punctuation.definition.string.xml"}},"end":"]]>","name":"string.unquoted.cdata.xml"}]},{"begin":"((<)((real))(>))","captures":{"1":{"name":"meta.tag.real.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Numeric","end":"((</)((real))(>))","patterns":[{"begin":"(<!\\[CDATA\\[)","captures":{"0":{"name":"punctuation.definition.constant.xml"},"1":{"name":"constant.numeric.real.xml.plist"}},"end":"(]]>)","patterns":[{"match":"[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?","name":"constant.numeric.real.xml.plist"},{"match":".","name":"invalid.illegal.not-a-number.xml.plist"}]},{"match":"[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?","name":"constant.numeric.real.xml.plist"},{"match":".","name":"invalid.illegal.not-a-number.xml.plist"}]},{"begin":"((<)((integer))(>))","captures":{"1":{"name":"meta.tag.integer.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Integer","end":"((</)((integer))(>))","patterns":[{"match":"[-+]?\\d+","name":"constant.numeric.integer.xml.plist"},{"match":".","name":"invalid.illegal.not-a-number.xml.plist"}]},{"captures":{"1":{"name":"meta.tag.boolean.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Boolean","match":"((<)((true|false))\\s*?(/>))"},{"begin":"((<)((data))(>))","captures":{"1":{"name":"meta.tag.data.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Data","end":"((</)((data))(>))","patterns":[{"match":"[A-Za-z0-9+/]","name":"constant.numeric.base64.xml.plist"},{"match":"=","name":"constant.numeric.base64.xml.plist"},{"match":"[^ \\n\\t]","name":"invalid.illegal.invalid-character.xml.plist"}]},{"begin":"((<)((date))(>))","captures":{"1":{"name":"meta.tag.date.xml.plist"},"2":{"name":"punctuation.definition.tag.xml.plist"},"3":{"name":"entity.name.tag.xml.plist"},"4":{"name":"entity.name.tag.localname.xml.plist"},"5":{"name":"punctuation.definition.tag.xml.plist"}},"comment":"Date","end":"((</)((date))(>))","patterns":[{"match":"(?x)\n\t\t\t\t\t\t\t\t\t\t[0-9]{4}\t\t\t\t\t\t# Year\n\t\t\t\t\t\t\t\t\t\t-\t\t\t\t\t\t\t\t# Divider\n\t\t\t\t\t\t\t\t\t\t(0[1-9]|1[012])\t\t\t\t\t# Month\n\t\t\t\t\t\t\t\t\t\t-\t\t\t\t\t\t\t\t# Divider\n\t\t\t\t\t\t\t\t\t\t(?!00|3[2-9])[0-3][0-9]\t\t\t# Day\n\t\t\t\t\t\t\t\t\t\tT\t\t\t\t\t\t\t\t# Separator\n\t\t\t\t\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\t\t\t# Hour\n\t\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t# Divider\n\t\t\t\t\t\t\t\t\t\t[0-5][0-9]\t\t\t\t\t\t# Minute\n\t\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t# Divider\n\t\t\t\t\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\t\t\t# Second\n\t\t\t\t\t\t\t\t\t\tZ\t\t\t\t\t\t\t\t# Zulu\n\t\t\t\t\t\t\t\t\t","name":"constant.other.date.xml.plist"}]},{"include":"#xml_invalid"},{"include":"#xml_comment"},{"include":"#xml_stray-char"}]}},"scopeName":"text.xml.plist"},"/Users/sadick/github/highlights/deps/language-python/grammars/python.cson":{"scopeName":"source.python","name":"Python","fileTypes":["py","rpy","pyw","cpy","SConstruct","Sconstruct","sconstruct","SConscript","gyp","gypi"],"firstLineMatch":"^#!/.*\\bpython\\b","patterns":[{"begin":"(^[ \\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.python"}},"end":"(?!\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.python"}},"end":"\\n","name":"comment.line.number-sign.python"}]},{"match":"\\b(?i:(0x\\h*)L)","name":"constant.numeric.integer.long.hexadecimal.python"},{"match":"\\b(?i:(0x\\h*))","name":"constant.numeric.integer.hexadecimal.python"},{"match":"\\b(?i:(0[0-7]+)L)","name":"constant.numeric.integer.long.octal.python"},{"match":"\\b(0[0-7]+)","name":"constant.numeric.integer.octal.python"},{"match":"\\b(?i:(((\\d+(\\.(?=[^a-zA-Z_])\\d*)?|(?<=[^0-9a-zA-Z_])\\.\\d+)(e[\\-\\+]?\\d+)?))J)","name":"constant.numeric.complex.python"},{"match":"\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))(?=[^a-zA-Z_])","name":"constant.numeric.float.python"},{"match":"(?<=[^0-9a-zA-Z_])(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))","name":"constant.numeric.float.python"},{"match":"\\b(?i:(\\d+e[\\-\\+]?\\d+))","name":"constant.numeric.float.python"},{"match":"\\b(?i:([1-9]+[0-9]*|0)L)","name":"constant.numeric.integer.long.decimal.python"},{"match":"\\b([1-9]+[0-9]*|0)","name":"constant.numeric.integer.decimal.python"},{"captures":{"1":{"name":"storage.modifier.global.python"}},"match":"\\b(global)\\b"},{"captures":{"1":{"name":"keyword.control.import.python"},"2":{"name":"keyword.control.import.from.python"}},"match":"\\b(?:(import)|(from))\\b"},{"comment":"keywords that delimit flow conditionals","name":"keyword.control.conditional.python","match":"\\b(if|elif|else)\\b"},{"comment":"keywords that delimit an exception","name":"keyword.control.exception.python","match":"\\b(except|finally|try|raise)\\b"},{"comment":"keywords that delimit loops","name":"keyword.control.repeat.python","match":"\\b(for|while)\\b"},{"comment":"keywords that alter flow from within a block","name":"keyword.control.statement.python","match":"\\b(with|break|continue|pass|return|yield)\\b"},{"comment":"keyword operators that evaluate to True or False","match":"\\b(and|in|is|not|or)\\b","name":"keyword.operator.logical.python"},{"captures":{"1":{"name":"keyword.other.python"}},"comment":"keywords that haven't fit into other groups (yet).","match":"\\b(as|assert|del|exec|print)\\b"},{"match":"<>","name":"invalid.deprecated.operator.python"},{"match":"<\\=|>\\=|\\=\\=|<|>|\\!\\=","name":"keyword.operator.comparison.python"},{"match":"\\+\\=|-\\=|\\*\\=|/\\=|//\\=|%\\=|&\\=|\\|\\=|\\^\\=|>>\\=|<<\\=|\\*\\*\\=","name":"keyword.operator.assignment.augmented.python"},{"match":"\\+|\\-|\\*|\\*\\*|/|//|%|<<|>>|&|\\||\\^|~","name":"keyword.operator.arithmetic.python"},{"match":"\\=","name":"keyword.operator.assignment.python"},{"begin":"^\\s*(class)\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*\\:)","beginCaptures":{"1":{"name":"storage.type.class.python"}},"contentName":"entity.name.type.class.python","end":"\\s*(:)","endCaptures":{"1":{"name":"punctuation.section.class.begin.python"}},"name":"meta.class.old-style.python","patterns":[{"include":"#entity_name_class"}]},{"begin":"^\\s*(class)\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*\\()","beginCaptures":{"1":{"name":"storage.type.class.python"}},"end":"(\\))\\s*(?:(\\:)|(.*$\\n?))","endCaptures":{"1":{"name":"punctuation.definition.inheritance.end.python"},"2":{"name":"punctuation.section.class.begin.python"},"3":{"name":"invalid.illegal.missing-section-begin.python"}},"name":"meta.class.python","patterns":[{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","contentName":"entity.name.type.class.python","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#entity_name_class"}]},{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.inheritance.begin.python"}},"contentName":"meta.class.inheritance.python","end":"(?=\\)|:)","patterns":[{"begin":"(?<=\\(|,)\\s*","contentName":"entity.other.inherited-class.python","end":"\\s*(?:(,)|(?=\\)))","endCaptures":{"1":{"name":"punctuation.separator.inheritance.python"}},"patterns":[{"include":"$self"}]}]}]},{"begin":"^\\s*(class)\\s+(?=[a-zA-Z_][a-zA-Z_0-9])","beginCaptures":{"1":{"name":"storage.type.class.python"}},"end":"(\\()|(\\s*$\\n?|#.*$\\n?)","endCaptures":{"1":{"name":"punctuation.definition.inheritance.begin.python"},"2":{"name":"invalid.illegal.missing-inheritance.python"}},"name":"meta.class.python","patterns":[{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","contentName":"entity.name.type.class.python","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#entity_name_function"}]}]},{"begin":"^\\s*(def)\\s+(?=[A-Za-z_][A-Za-z0-9_]*\\s*\\()","beginCaptures":{"1":{"name":"storage.type.function.python"}},"end":"(\\))\\s*(?:(\\:)|(.*$\\n?))","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.python"},"2":{"name":"punctuation.section.function.begin.python"},"3":{"name":"invalid.illegal.missing-section-begin.python"}},"name":"meta.function.python","patterns":[{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","contentName":"entity.name.function.python","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#entity_name_function"}]},{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.python"}},"contentName":"meta.function.parameters.python","end":"(?=\\)\\s*\\:)","patterns":[{"include":"#keyword_arguments"},{"captures":{"1":{"name":"variable.parameter.function.python"},"2":{"name":"punctuation.separator.parameters.python"}},"match":"\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(,)|(?=[\\n\\)]))"}]}]},{"begin":"^\\s*(def)\\s+(?=[A-Za-z_][A-Za-z0-9_]*)","beginCaptures":{"1":{"name":"storage.type.function.python"}},"end":"(\\()|\\s*($\\n?|#.*$\\n?)","endCaptures":{"1":{"name":"punctuation.definition.parameters.begin.python"},"2":{"name":"invalid.illegal.missing-parameters.python"}},"name":"meta.function.python","patterns":[{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","contentName":"entity.name.function.python","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#entity_name_function"}]}]},{"begin":"(lambda)(?=\\s+)","beginCaptures":{"1":{"name":"storage.type.function.inline.python"}},"end":"(\\:)","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.python"},"2":{"name":"punctuation.section.function.begin.python"},"3":{"name":"invalid.illegal.missing-section-begin.python"}},"name":"meta.function.inline.python","patterns":[{"begin":"\\s+","contentName":"meta.function.inline.parameters.python","end":"(?=\\:)","patterns":[{"include":"#keyword_arguments"},{"captures":{"1":{"name":"variable.parameter.function.python"},"2":{"name":"punctuation.separator.parameters.python"}},"match":"\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(,)|(?=[\\n\\)\\:]))"}]}]},{"begin":"^\\s*(?=@\\s*[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\()","comment":"a decorator may be a function call which returns a decorator.","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"}},"name":"meta.function.decorator.python","patterns":[{"begin":"(?=(@)\\s*[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\()","beginCaptures":{"1":{"name":"punctuation.definition.decorator.python"}},"contentName":"entity.name.function.decorator.python","end":"(?=\\s*\\()","patterns":[{"include":"#dotted_name"}]},{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.python"}},"contentName":"meta.function.decorator.arguments.python","end":"(?=\\))","patterns":[{"include":"#keyword_arguments"},{"include":"$self"}]}]},{"begin":"^\\s*(?=@\\s*[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*)","contentName":"entity.name.function.decorator.python","end":"(?=\\s|$\\n?|#)","name":"meta.function.decorator.python","patterns":[{"begin":"(?=(@)\\s*[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)","beginCaptures":{"1":{"name":"punctuation.definition.decorator.python"}},"end":"(?=\\s|$\\n?|#)","patterns":[{"include":"#dotted_name"}]}]},{"begin":"(?<=\\)|\\])\\s*(\\()","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.python"}},"contentName":"meta.function-call.arguments.python","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"}},"name":"meta.function-call.python","patterns":[{"include":"#keyword_arguments"},{"include":"$self"}]},{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\()","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"}},"name":"meta.function-call.python","patterns":[{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\()","end":"(?=\\s*\\()","patterns":[{"include":"#dotted_name"}]},{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.python"}},"contentName":"meta.function-call.arguments.python","end":"(?=\\))","patterns":[{"include":"#keyword_arguments"},{"include":"$self"}]}]},{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\[)","end":"(\\])","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"}},"name":"meta.item-access.python","patterns":[{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\[)","end":"(?=\\s*\\[)","patterns":[{"include":"#dotted_name"}]},{"begin":"(\\[)","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.python"}},"contentName":"meta.item-access.arguments.python","end":"(?=\\])","patterns":[{"include":"$self"}]}]},{"begin":"(?<=\\)|\\])\\s*(\\[)","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.python"}},"contentName":"meta.item-access.arguments.python","end":"(\\])","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"}},"name":"meta.item-access.python","patterns":[{"include":"$self"}]},{"captures":{"1":{"name":"storage.type.function.python"}},"match":"\\b(def|lambda)\\b"},{"captures":{"1":{"name":"storage.type.class.python"}},"match":"\\b(class)\\b"},{"include":"#line_continuation"},{"include":"#language_variables"},{"match":"\\b(None|True|False|Ellipsis|NotImplemented)\\b","name":"constant.language.python"},{"include":"#string_quoted_single"},{"include":"#string_quoted_double"},{"include":"#dotted_name"},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"$self"}]},{"captures":{"1":{"name":"punctuation.definition.list.begin.python"},"2":{"name":"meta.empty-list.python"},"3":{"name":"punctuation.definition.list.end.python"}},"match":"(\\[)(\\s*(\\]))\\b"},{"begin":"(\\[)","beginCaptures":{"1":{"name":"punctuation.definition.list.begin.python"}},"end":"(\\])","endCaptures":{"1":{"name":"punctuation.definition.list.end.python"}},"name":"meta.structure.list.python","patterns":[{"begin":"(?<=\\[|\\,)\\s*(?![\\],])","contentName":"meta.structure.list.item.python","end":"\\s*(?:(,)|(?=\\]))","endCaptures":{"1":{"name":"punctuation.separator.list.python"}},"patterns":[{"include":"$self"}]}]},{"captures":{"1":{"name":"punctuation.definition.tuple.begin.python"},"2":{"name":"meta.empty-tuple.python"},"3":{"name":"punctuation.definition.tuple.end.python"}},"match":"(\\()(\\s*(\\)))","name":"meta.structure.tuple.python"},{"captures":{"1":{"name":"punctuation.definition.dictionary.begin.python"},"2":{"name":"meta.empty-dictionary.python"},"3":{"name":"punctuation.definition.dictionary.end.python"}},"match":"(\\{)(\\s*(\\}))","name":"meta.structure.dictionary.python"},{"begin":"(\\{)","beginCaptures":{"1":{"name":"punctuation.definition.dictionary.begin.python"}},"end":"(\\})","endCaptures":{"1":{"name":"punctuation.definition.dictionary.end.python"}},"name":"meta.structure.dictionary.python","patterns":[{"begin":"(?<=\\{|\\,|^)\\s*(?![\\},])","contentName":"meta.structure.dictionary.key.python","end":"\\s*(?:(?=\\})|(\\:))","endCaptures":{"1":{"name":"punctuation.separator.valuepair.dictionary.python"}},"patterns":[{"include":"$self"}]},{"begin":"(?<=\\:|^)\\s*","contentName":"meta.structure.dictionary.value.python","end":"\\s*(?:(?=\\})|(,))","endCaptures":{"1":{"name":"punctuation.separator.dictionary.python"}},"patterns":[{"include":"$self"}]}]}],"repository":{"builtin_exceptions":{"match":"(?x)\\b(\n\t\t\t\t(\n\t\t\t\t\tArithmetic|Assertion|Attribute|BlockingIO|BrokenPipe|Buffer|ChildProcess|\n\t\t\t\t\tConnection(Aborted|Refused|Reset)?|EOF|Environment|FileExists|\n\t\t\t\t\tFileNotFound|FloatingPoint|Interrupted|IO|IsADirectoryError|\n\t\t\t\t\tImport|Indentation|Index|Key|Lookup|Memory|Name|NotADirectory|\n\t\t\t\t\tNotImplemented|OS|Overflow|Permission|ProcessLookup|Reference|\n\t\t\t\t\tRuntime|Standard|Syntax|System|Tab|Timeout|Type|UnboundLocal|\n\t\t\t\t\tUnicode(Encode|Decode|Translate)?|Value|VMS|Windows|ZeroDivision\n\t\t\t\t)Error|\n\t\t\t\t((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes)?Warning|\n\t\t\t\t(Base)?Exception|\n\t\t\t\tSystemExit|StopIteration|NotImplemented|KeyboardInterrupt|GeneratorExit\n\t\t\t)\\b","name":"support.type.exception.python"},"builtin_functions":{"match":"(?x)\\b(\n\t\t\t\t__import__|all|abs|any|apply|ascii|bin|callable|chr|classmethod|cmp|coerce|\n\t\t\t\tcompile|delattr|dir|divmod|enumerate|eval|execfile|filter|format|getattr|\n\t\t\t\tglobals|hasattr|hash|help|hex|id|input|intern|isinstance|issubclass|iter|\n\t\t\t\tlen|locals|map|max|min|next|oct|open|ord|pow|print|property|range|\n\t\t\t\traw_input|reduce|reload|repr|reversed|round|setattr|sorted|staticmethod|\n\t\t\t\tsum|super|type|unichr|vars|zip\n\t\t\t)\\b","name":"support.function.builtin.python"},"builtin_types":{"match":"(?x)\\b(\n\t\t\t\tbasestring|bool|buffer|bytearray|bytes|complex|dict|float|frozenset|int|\n\t\t\t\tlist|long|memoryview|object|range|set|slice|str|tuple|unicode|xrange\n\t\t\t)\\b","name":"support.type.python"},"constant_placeholder":{"match":"(?i:(%(\\([a-z_]+\\))?#?0?\\-?[ ]?\\+?([0-9]*|\\*)(\\.([0-9]*|\\*))?([hL][a-z]|[a-z%]))|(\\{([!\\[\\].:\\w ]+)?\\}))","name":"constant.other.placeholder.python"},"docstrings":{"patterns":[{"begin":"^\\s*(?=[uU]?[rR]?\"\"\")","end":"(?<=\"\"\")","name":"comment.block.python","patterns":[{"include":"#string_quoted_double"}]},{"begin":"^\\s*(?=[uU]?[rR]?''')","end":"(?<=''')","name":"comment.block.python","patterns":[{"include":"#string_quoted_single"}]}]},"dotted_name":{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*)","end":"(?![A-Za-z0-9_\\.])","patterns":[{"begin":"(\\.)(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#magic_function_names"},{"include":"#magic_variable_names"},{"include":"#illegal_names"},{"include":"#generic_names"}]},{"begin":"(?<!\\.)(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#builtin_functions"},{"include":"#builtin_types"},{"include":"#builtin_exceptions"},{"include":"#illegal_names"},{"include":"#magic_function_names"},{"include":"#magic_variable_names"},{"include":"#language_variables"},{"include":"#generic_names"}]}]},"entity_name_class":{"patterns":[{"include":"#illegal_names"},{"include":"#generic_names"}]},"entity_name_function":{"patterns":[{"include":"#magic_function_names"},{"include":"#illegal_names"},{"include":"#generic_names"}]},"escaped_char":{"captures":{"1":{"name":"constant.character.escape.hex.python"},"2":{"name":"constant.character.escape.octal.python"},"3":{"name":"constant.character.escape.newline.python"},"4":{"name":"constant.character.escape.backlash.python"},"5":{"name":"constant.character.escape.double-quote.python"},"6":{"name":"constant.character.escape.single-quote.python"},"7":{"name":"constant.character.escape.bell.python"},"8":{"name":"constant.character.escape.backspace.python"},"9":{"name":"constant.character.escape.formfeed.python"},"10":{"name":"constant.character.escape.linefeed.python"},"11":{"name":"constant.character.escape.return.python"},"12":{"name":"constant.character.escape.tab.python"},"13":{"name":"constant.character.escape.vertical-tab.python"}},"match":"(\\\\x[0-9A-F]{2})|(\\\\[0-7]{3})|(\\\\\\n)|(\\\\\\\\)|(\\\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)"},"escaped_unicode_char":{"captures":{"1":{"name":"constant.character.escape.unicode.16-bit-hex.python"},"2":{"name":"constant.character.escape.unicode.32-bit-hex.python"},"3":{"name":"constant.character.escape.unicode.name.python"}},"match":"(\\\\U[0-9A-Fa-f]{8})|(\\\\u[0-9A-Fa-f]{4})|(\\\\N\\{[a-zA-Z ]+\\})"},"function_name":{"patterns":[{"include":"#magic_function_names"},{"include":"#magic_variable_names"},{"include":"#builtin_exceptions"},{"include":"#builtin_functions"},{"include":"#builtin_types"},{"include":"#generic_names"}]},"generic_names":{"match":"[A-Za-z_][A-Za-z0-9_]*"},"illegal_names":{"match":"\\b(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield)\\b","name":"invalid.illegal.name.python"},"keyword_arguments":{"begin":"\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)(?!=)","beginCaptures":{"1":{"name":"variable.parameter.function.python"},"2":{"name":"keyword.operator.assignment.python"}},"end":"\\s*(?:(,)|(?=$\\n?|[\\)\\:]))","endCaptures":{"1":{"name":"punctuation.separator.parameters.python"}},"patterns":[{"include":"$self"}]},"language_variables":{"match":"\\b(self|cls)\\b","name":"variable.language.python"},"line_continuation":{"captures":{"1":{"name":"punctuation.separator.continuation.line.python"},"2":{"name":"invalid.illegal.unexpected-text.python"}},"match":"(\\\\)(.*)$\\n?"},"magic_function_names":{"comment":"these methods have magic interpretation by python and are generally called indirectly through syntactic constructs","match":"(?x)\\b(__(?:\n\t\t\t\t\t\tabs|add|and|call|cmp|coerce|complex|contains|del|delattr|\n\t\t\t\t\t\tdelete|delitem|delslice|div|divmod|enter|eq|exit|float|\n\t\t\t\t\t\tfloordiv|ge|get|getattr|getattribute|getitem|getslice|gt|\n\t\t\t\t\t\thash|hex|iadd|iand|idiv|ifloordiv|ilshift|imod|imul|init|\n\t\t\t\t\t\tint|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|\n\t\t\t\t\t\tlong|lshift|lt|mod|mul|ne|neg|new|nonzero|oct|or|pos|pow|\n\t\t\t\t\t\tradd|rand|rdiv|rdivmod|repr|rfloordiv|rlshift|rmod|rmul|ror|\n\t\t\t\t\t\trpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|\n\t\t\t\t\t\tsetslice|str|sub|truediv|unicode|xor\n\t\t\t\t\t)__)\\b","name":"support.function.magic.python"},"magic_variable_names":{"comment":"magic variables which a class/module may have.","match":"\\b__(all|bases|class|debug|dict|doc|file|members|metaclass|methods|name|slots|weakref)__\\b","name":"support.variable.magic.python"},"regular_expressions":{"comment":"Changed disabled to 1 to turn off syntax highlighting in “r” strings.","disabled":0,"patterns":[{"include":"source.regexp.python"}]},"string_quoted_double":{"patterns":[{"begin":"([uU]r)(\"\"\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted unicode-raw string","end":"((?<=\"\"\")(\")\"\"|\"\"\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"}},"name":"string.quoted.double.block.unicode-raw-regex.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"},{"include":"#regular_expressions"}]},{"begin":"([uU]R)(\"\"\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted unicode-raw string without regular expression highlighting","end":"((?<=\"\"\")(\")\"\"|\"\"\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"}},"name":"string.quoted.double.block.unicode-raw.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"}]},{"begin":"(r)(\"\"\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"double quoted raw string","end":"((?<=\"\"\")(\")\"\"|\"\"\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"}},"name":"string.quoted.double.block.raw-regex.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"},{"include":"#regular_expressions"}]},{"begin":"(R)(\"\"\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"double quoted raw string","end":"((?<=\"\"\")(\")\"\"|\"\"\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"}},"name":"string.quoted.double.block.raw.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"}]},{"begin":"([uU])(\"\"\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"double quoted unicode string","end":"((?<=\"\"\")(\")\"\"|\"\"\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"}},"name":"string.quoted.double.block.unicode.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"}]},{"begin":"([uU]r)(\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"double-quoted raw string","end":"((?<=\")(\")|\")|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"},"3":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.double.single-line.unicode-raw-regex.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"},{"include":"#regular_expressions"}]},{"begin":"([uU]R)(\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"double-quoted raw string","end":"((?<=\")(\")|\")|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"},"3":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.double.single-line.unicode-raw.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"}]},{"begin":"(r)(\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"double-quoted raw string","end":"((?<=\")(\")|\")|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"},"3":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.double.single-line.raw-regex.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"},{"include":"#regular_expressions"}]},{"begin":"(R)(\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"double-quoted raw string","end":"((?<=\")(\")|\")|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"},"3":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.double.single-line.raw.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"}]},{"begin":"([uU])(\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"double quoted unicode string","end":"((?<=\")(\")|\")|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"},"3":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.double.single-line.unicode.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"}]},{"begin":"(\"\"\")(?=\\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"comment":"double quoted string","end":"((?<=\"\"\")(\")\"\"|\"\"\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"}},"name":"string.quoted.double.block.sql.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"},{"include":"source.sql"}]},{"begin":"(\")(?=\\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"comment":"double quoted string","end":"((?<=\")(\")|\")|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"},"3":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.double.single-line.sql.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"},{"include":"source.sql"}]},{"begin":"(\"\"\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"comment":"double quoted string","end":"((?<=\"\"\")(\")\"\"|\"\"\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"}},"name":"string.quoted.double.block.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"}]},{"begin":"(\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"comment":"double quoted string","end":"((?<=\")(\")|\")|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.double.python"},"3":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.double.single-line.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"}]}]},"string_quoted_single":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.string.begin.python"},"2":{"name":"punctuation.definition.string.end.python"},"3":{"name":"meta.empty-string.single.python"}},"match":"(?<!')(')(('))(?!')","name":"string.quoted.single.single-line.python"},{"begin":"([uU]r)(''')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted unicode-raw string","end":"((?<=''')(')''|''')","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.single.python"}},"name":"string.quoted.single.block.unicode-raw-regex.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"},{"include":"#regular_expressions"}]},{"begin":"([uU]R)(''')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted unicode-raw string","end":"((?<=''')(')''|''')","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.single.python"}},"name":"string.quoted.single.block.unicode-raw.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"}]},{"begin":"(r)(''')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted raw string","end":"((?<=''')(')''|''')","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.single.python"}},"name":"string.quoted.single.block.raw-regex.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"},{"include":"#regular_expressions"}]},{"begin":"(R)(''')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted raw string","end":"((?<=''')(')''|''')","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.single.python"}},"name":"string.quoted.single.block.raw.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"}]},{"begin":"([uU])(''')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted unicode string","end":"((?<=''')(')''|''')","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.single.python"}},"name":"string.quoted.single.block.unicode.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"}]},{"begin":"([uU]r)(')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted raw string","end":"(')|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.single.single-line.unicode-raw-regex.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"},{"include":"#regular_expressions"}]},{"begin":"([uU]R)(')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted raw string","end":"(')|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.single.single-line.unicode-raw.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"}]},{"begin":"(r)(')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted raw string","end":"(')|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.single.single-line.raw-regex.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"},{"include":"#regular_expressions"}]},{"begin":"(R)(')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted raw string","end":"(')|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.single.single-line.raw.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"}]},{"begin":"([uU])(')","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted unicode string","end":"(')|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.single.single-line.unicode.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_unicode_char"},{"include":"#escaped_char"}]},{"begin":"(''')(?=\\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted string","end":"((?<=''')(')''|''')","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.single.python"}},"name":"string.quoted.single.block.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"},{"include":"source.sql"}]},{"begin":"(')(?=\\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted string","end":"(')|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.single.single-line.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"},{"include":"source.sql"}]},{"begin":"(''')","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted string","end":"((?<=''')(')''|''')","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"meta.empty-string.single.python"}},"name":"string.quoted.single.block.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"}]},{"begin":"(')","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"comment":"single quoted string","end":"(')|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.unclosed-string.python"}},"name":"string.quoted.single.single-line.python","patterns":[{"include":"#constant_placeholder"},{"include":"#escaped_char"}]}]},"strings":{"patterns":[{"include":"#string_quoted_double"},{"include":"#string_quoted_single"}]}}},"/Users/sadick/github/highlights/deps/language-python/grammars/regular expressions (python).cson":{"comment":"Matches Python's regular expression syntax.","fileTypes":["re"],"foldingStartMarker":"(/\\*|\\{|\\()","foldingStopMarker":"(\\*/|\\}|\\))","name":"Regular Expressions (Python)","patterns":[{"match":"\\\\[bBAZzG]|\\^|\\$","name":"keyword.control.anchor.regexp"},{"match":"\\\\[1-9][0-9]?","name":"keyword.other.back-reference.regexp"},{"match":"[?+*][?+]?|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??","name":"keyword.operator.quantifier.regexp"},{"match":"\\|","name":"keyword.operator.or.regexp"},{"begin":"\\(\\?\\#","end":"\\)","name":"comment.block.regexp"},{"comment":"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.","match":"(?<=^|\\s)#\\s[[a-zA-Z0-9,. \\t?!-:][^\\x{00}-\\x{7F}]]*$","name":"comment.line.number-sign.regexp"},{"match":"\\(\\?[iLmsux]+\\)","name":"keyword.other.option-toggle.regexp"},{"match":"(\\()(\\?P=([a-zA-Z_][a-zA-Z_0-9]*\\w*))(\\))","name":"keyword.other.back-reference.named.regexp"},{"begin":"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"},"5":{"name":"meta.assertion.look-behind.regexp"},"6":{"name":"meta.assertion.negative-look-behind.regexp"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.assertion.regexp","patterns":[{"include":"$self"}]},{"begin":"(\\()(\\?\\(([1-9][0-9]?|[a-zA-Z_][a-zA-Z_0-9]*)\\))","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.conditional.regexp"},"3":{"name":"entity.name.section.back-reference.regexp"}},"comment":"we can make this more sophisticated to match the | character that separates yes-pattern from no-pattern, but it's not really necessary.","end":"(\\))","name":"meta.group.assertion.conditional.regexp","patterns":[{"include":"$self"}]},{"begin":"(\\()((\\?P<)([a-z]\\w*)(>)|(\\?:))?","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"3":{"name":"punctuation.definition.group.capture.regexp"},"4":{"name":"entity.name.section.group.regexp"},"5":{"name":"punctuation.definition.group.capture.regexp"},"6":{"name":"punctuation.definition.group.no-capture.regexp"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.regexp","patterns":[{"include":"$self"}]},{"include":"#character-class"}],"repository":{"character-class":{"patterns":[{"match":"\\\\[wWsSdDhH]|\\.","name":"constant.character.character-class.regexp"},{"match":"\\\\.","name":"constant.character.escape.backslash.regexp"},{"begin":"(\\[)(\\^)?","beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"end":"(\\])","endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}},"name":"constant.other.character-class.set.regexp","patterns":[{"include":"#character-class"},{"captures":{"2":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.escape.backslash.regexp"}},"match":"((\\\\.)|.)\\-((\\\\.)|[^\\]])","name":"constant.other.character-class.range.regexp"}]}]}},"scopeName":"source.regexp.python"},"/Users/sadick/github/highlights/deps/language-react/grammars/CoffeeScript (JSX).cson":{"name":"CoffeeScript (JSX)","scopeName":"source.coffee.jsx","comment":"Coffee-React Syntax","fileTypes":["cjsx"],"patterns":[{"include":"#cjsx"},{"include":"source.coffee"}],"repository":{"interpolated-coffee":{"patterns":[{"begin":"\\#\\{","captures":{"0":{"name":"punctuation.section.embedded.coffee"}},"end":"\\}","name":"source.coffee.embedded.source","patterns":[{"include":"$self"}]}]},"entities":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}},"match":"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","name":"constant.character.entity.html"},{"match":"&","name":"invalid.illegal.bad-ampersand.html"}]},"string-double-quoted":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.double.html","patterns":[{"include":"#interpolated-coffee"},{"include":"#entities"}]},"string-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.single.html","patterns":[{"include":"#entities"}]},"tag-generic-attribute":{"match":"(?<=[^=])\\b([a-zA-Z0-9:-]+)","name":"entity.other.attribute-name.html"},"embedded-coffee":{"begin":"\\{","beginCaptures":{"0":{"name":"meta.brace.curly.coffee"}},"end":"\\}","endCaptures":{"0":{"name":"meta.brace.curly.coffee"}},"patterns":[{"include":"$self"}]},"cjsx":{"patterns":[{"begin":"(<)([a-zA-Z0-9.:-]+)([^>/]*)(>)","beginCaptures":{"0":{"name":"meta.tag.other.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.other.html"},"3":{"patterns":[{"include":"#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.end.html"}},"end":"(<)(/\\2)(>)","endCaptures":{"0":{"name":"meta.tag.other.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.other.html"},"3":{"name":"punctuation.definition.tag.end.html"}},"patterns":[{"include":"#embedded-coffee"},{"include":"#cjsx"}]},{"begin":"(</?)([a-zA-Z0-9.:-]+)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.inline.other.html"}},"end":"((?: ?/)?>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.other.html","patterns":[{"include":"#tag-stuff"}]}]},"tag-stuff":{"patterns":[{"include":"#tag-generic-attribute"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"},{"include":"#embedded-coffee"}]}}},"/Users/sadick/github/highlights/deps/language-react/grammars/JavaScript (JSX).cson":{"name":"JavaScript (JSX)","scopeName":"source.js.jsx","fileTypes":["jsx","react.js"],"patterns":[{"include":"#pcdata"},{"include":"#jsx"},{"match":"(?<!\\.)\\b(await|break|catch|case|continue|do|else|finally|for|if|import|from|package|return|switch|throw|try|while|with)(?!\\s*:)\\b","name":"keyword.control.js"},{"match":"(?<!\\.)\\b(default)(?=\\s*:)\\b","name":"keyword.control.js"},{"begin":"\\?","beginCaptures":{"0":{"name":"keyword.operator.ternary.js"}},"end":":","endCaptures":{"0":{"name":"keyword.operator.ternary.js"}},"patterns":[{"include":"$self"}]},{"begin":"{","beginCaptures":{"0":{"name":"meta.brace.curly.js"}},"end":"}","endCaptures":{"0":{"name":"meta.brace.curly.js"}},"patterns":[{"include":"$self"}]},{"begin":"\\(","beginCaptures":{"0":{"name":"meta.brace.round.js"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.js"}},"patterns":[{"include":"$self"}]},{"begin":"(?=(\\basync\\b\\s*)?\\bfunction\\b)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.js","patterns":[{"include":"#function_innards"}]}]},{"begin":"(?=(\\.)?[a-zA-Z_$][\\w$]*\\s*=\\s*(\\basync\\b\\s*)?\\bfunction\\b)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?!\\G)(?<=\\))","name":"meta.function.js","patterns":[{"match":"(\\.)?([a-zA-Z_$][\\w$]*)\\s*(=)\\s*","captures":{"1":{"name":"meta.delimiter.method.period.js"},"2":{"name":"entity.name.function.js"},"3":{"name":"keyword.operator.assignment.js"}}},{"include":"#function_innards"}]}]},{"begin":"(?=\\b[a-zA-Z_$][\\w$]*\\s*:\\s*(\\basync\\b\\s*)?\\bfunction\\b)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.json.js","patterns":[{"match":"\\b([a-zA-Z_$][\\w$]*)\\s*(:)\\s*","captures":{"1":{"name":"entity.name.function.js"},"2":{"name":"keyword.operator.assignment.js"}}},{"include":"#function_innards"}]}]},{"begin":"(?=(('[^']*?')|(\"[^\"]*?\"))\\s*:\\s*(\\basync\\b\\s*)?\\bfunction\\b)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.json.js","patterns":[{"match":"(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\\s*(:)","captures":{"1":{"name":"string.quoted.single.js"},"2":{"name":"punctuation.definition.string.begin.js"},"3":{"name":"entity.name.function.js"},"4":{"name":"punctuation.definition.string.end.js"},"5":{"name":"string.quoted.double.js"},"6":{"name":"punctuation.definition.string.begin.js"},"7":{"name":"entity.name.function.js"},"8":{"name":"punctuation.definition.string.end.js"},"9":{"name":"keyword.operator.assignment.js"}}},{"include":"#function_innards"}]}]},{"begin":"(?=\\b(constructor)\\s*)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.js","patterns":[{"match":"\\b(constructor)\\s*","name":"entity.name.function.constructor.js"},{"include":"#function_innards"}]}]},{"begin":"(?x)\n(?=\n  (?!\n    (break|case|catch|continue|do|else|finally|for|function|if|export|\n    import|package|return|switch|throw|try|while|with)\n    [\\s\\(]\n  )\n  \\b[a-zA-Z_$][\\w$]*\n  \\s*\\(\\s*\n     ((\"[^\"]*\")|(\\'[^\\']*\\')|((?!\"|\\'|\\(|\\)).))*\n  \\)\\s*\\{\n)","end":"(?<=})","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=\\))","name":"meta.function.method.definition.js","patterns":[{"match":"\\b([a-zA-Z_$][\\w$]*)","name":"entity.name.function.js"},{"include":"#function_params"}]}]},{"begin":"(?x)\n(?=\n  (?<![A-Za-z0-9])\n  ((\\(([^\\(\\)]*)?\\))|[\\w$]+)\n  \\s*=>\n)","end":"(?x)\n(?<=})|\n((?!\n  \\s*{|\n  \\G\\(|\n  \\G[\\w$]+|\n  \\s*/\\*|\\s*//\n)(?=\\s*\\S))","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=(=>))","name":"meta.function.arrow.js","patterns":[{"include":"#arrow_function_innards"}]}]},{"begin":"(?x)\n(?=\n  (\\.)?[a-zA-Z_$][\\w$]*\n  \\s*(=)\\s*\n  ((\\(([^\\(\\)]*)?\\))|[\\w$]+)\n  \\s*=>\n)","end":"(?x)\n(?<=})|\n((?!\n  \\s*{|\n  \\G(\\.)?[a-zA-Z_$][\\w$]*\\s*(=)\\s*\\(|\n  \\G(\\.)?[a-zA-Z_$][\\w$]*\\s*(=)\\s*[\\w$]+|\n  \\s*/\\*|\\s*//\n)(?=\\s*\\S))","patterns":[{"include":"#comments"},{"include":"#function_body"},{"begin":"\\G","end":"(?<=(=>))","name":"meta.function.arrow.js","patterns":[{"match":"\\G(\\.)?([a-zA-Z_$][\\w$]*)\\s*(=)","captures":{"1":{"name":"meta.delimiter.method.period.js"},"2":{"name":"entity.name.function.js"},"3":{"name":"keyword.operator.assignment.js"}}},{"include":"#arrow_function_innards"}]}]},{"include":"#method_calls"},{"include":"#function_calls"},{"include":"source.js"}],"repository":{"arguments":{"patterns":[{"include":"$self"}]},"pcdata":{"patterns":[{"include":"#pcdata-quotes"}]},"pcdata-quotes":{"name":"meta.other.pcdata.js","match":"\\b\\w+['\"]\\w+\\b"},"jsx-tag-attributes":{"patterns":[{"include":"#jsx-tag-attribute-name"},{"include":"#jsx-string-double-quoted"},{"include":"#jsx-string-single-quoted"},{"include":"#jsx-evaluated-code"}]},"jsx-tag-attribute-name":{"name":"meta.tag.attribute-name.js","match":"\\b([a-zA-Z0-9\\-:]+)","captures":{"1":{"name":"entity.other.attribute-name.js"}}},"jsx-string-double-quoted":{"begin":"\"","end":"\"","name":"string.quoted.double.js","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"patterns":[{"include":"#jsx-entities"}]},"jsx-string-single-quoted":{"begin":"'","end":"'","name":"string.quoted.single.js","endCaptures":{"0":{"name":"punctuation.definition.string.end.js"}},"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.js"}},"patterns":[{"include":"#jsx-entities"}]},"jsx-entities":{"patterns":[{"name":"constant.character.entity.js","match":"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","captures":{"1":{"name":"punctuation.definition.entity.js"},"3":{"name":"punctuation.definition.entity.js"}}},{"name":"invalid.illegal.bad-ampersand.js","match":"&"}]},"jsx-evaluated-code":{"begin":"{","end":"}","name":"meta.brace.curly.js","endCaptures":{"0":{"name":"punctuation.definition.brace.curly.end.js"}},"beginCaptures":{"0":{"name":"punctuation.definition.brace.curly.start.js"}},"patterns":[{"include":"$self"}]},"jsx-tag-open":{"begin":"(<)([a-zA-Z0-9.:$_]+)","end":"(/?>)","name":"tag.open.js","endCaptures":{"1":{"name":"punctuation.definition.tag.end.js"}},"beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.js"},"2":{"name":"entity.name.tag.js"}},"patterns":[{"include":"#jsx-tag-attributes"}]},"jsx-tag-close":{"match":"(</)([^>]+)(>)","name":"tag.closed.js","captures":{"1":{"name":"punctuation.definition.tag.begin.js"},"2":{"name":"entity.name.tag.js"},"3":{"name":"punctuation.definition.tag.end.js"}}},"jsx-tag-invalid":{"name":"invalid.illegal.tag.incomplete.js","match":"<\\s*>"},"jsx":{"name":"meta.jsx.js","patterns":[{"include":"#jsx-tag-open"},{"include":"#jsx-tag-close"},{"include":"#jsx-tag-invalid"}]},"docblock":{"patterns":[{"match":"(?<!\\w)@(abstract|access|alias|arg|argument|async|attribute|augments|author|beta|borrows|bubbes|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exports?|extends|extension|extension_for|extensionfor|external|file|fileoverview|final|fires|for|function|global|host|ignore|implements|inherit[Dd]oc|inner|instance|interface|kind|lends|license|listens|main|member|memberof|method|mixex|mixins?|module|name|namespace|nocollapse|nosideeffects|override|overview|package|param|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce)\\b","name":"storage.type.class.jsdoc"},{"match":"({\\b(?:[a-zA-Z_$][a-zA-Z_$0-9]*)\\b})\\s\\b([a-zA-Z_$][a-zA-Z_$0-9]*)\\b\\s*((?:(?!\\*\\/).)*)","captures":{"0":{"name":"other.meta.jsdoc"},"1":{"name":"entity.name.type.instance.jsdoc"},"2":{"name":"variable.other.jsdoc"},"3":{"name":"other.description.jsdoc"}}}]},"comments":{"patterns":[{"begin":"/\\*\\*(?!/)","captures":{"0":{"name":"punctuation.definition.comment.js"}},"patterns":[{"include":"#docblock"}],"end":"\\*/","name":"comment.block.documentation.js"},{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"\\*/","name":"comment.block.js"},{"begin":"(^[ \\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.js"}},"end":"(?!\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"\\n","name":"comment.line.double-slash.js"}]}]},"function_params":{"patterns":[{"begin":"\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.bracket.round.js"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.js"}},"name":"meta.parameters.js","patterns":[{"match":"(\\.\\.\\.)([a-zA-Z_$][\\w$]*)","captures":{"1":{"name":"keyword.operator.spread.js"},"2":{"name":"variable.parameter.rest.function.js"}}},{"include":"$self"},{"match":"[a-zA-Z_$][\\w$]*","name":"variable.parameter.function.js"}]}]},"function_body":{"patterns":[{"begin":"{","beginCaptures":{"0":{"name":"punctuation.definition.function.body.begin.bracket.curly.js"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.function.body.end.bracket.curly.js"}},"patterns":[{"include":"$self"}]}]},"function_innards":{"patterns":[{"match":"(?:\\b(async)\\b\\s*)?\\b(function)\\b(?:\\s*(\\*))?","captures":{"1":{"name":"storage.modifier.async.js"},"2":{"name":"storage.type.function.js"},"3":{"name":"storage.modifier.generator.js"}}},{"match":"[a-zA-Z_$][\\w$]*(?=\\s*\\()","name":"entity.name.function.js"},{"include":"#function_params"},{"include":"#comments"}]},"arrow_function_innards":{"patterns":[{"match":"=>","name":"storage.type.function.arrow.js"},{"include":"#function_params"},{"match":"([a-zA-Z_$][\\w$]*)(?=\\s*=>)","captures":{"0":{"name":"meta.parameters.js"},"1":{"name":"variable.parameter.function.js"}}},{"match":"(\\d[\\w$]*)","captures":{"0":{"name":"meta.parameters.js"},"1":{"name":"invalid.illegal.identifier.js"}}}]},"method_calls":{"patterns":[{"begin":"(\\.)\\s*([\\w$]+)\\s*(?=\\()","beginCaptures":{"1":{"name":"meta.delimiter.method.period.js"},"2":{"patterns":[{"match":"(?x)\n\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\nReadystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\nBefore(cut|deactivate|unload|update|paste|print|editfocus|activate)|\nBlur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\nChange|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\nDatasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\nDragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\nErrorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\b","name":"support.function.event-handler.js"},{"match":"(?x)\n\\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\nscrollByLines|scrollY|scrollTo|stop|strike|sin|sizeToContent|sidebar|signText|sort|\nsup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|\nMonth|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\nTime|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|sqrt|slice|\nsavePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|cos|concat|\ncontextual|confirm|compile|ceil|clear|captureEvents|call|createStyleSheet|createPopup|\ncreateEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\ntest|tan|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\nuntaint|unwatch|updateCommands|join|javaEnabled|pop|pow|push|plugins.refresh|paddings|parse|\nprint|prompt|preference|enableExternalCapture|elementFromPoint|exp|exec|execScript|\nexecCommand|valueOf|UTC|queryCommandState|queryCommandIndeterm|queryCommandEnabled|\nqueryCommandValue|find|file|fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|\nfixed|fontsize|fontcolor|forward|floor|fromCharCode|watch|link|load|log|lastIndexOf|\nasin|anchor|acos|attachEvent|atob|atan|atan2|apply|alert|abs|abort|round|routeEvents|\nresize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|releaseCapture|\nreleaseEvents|random|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\nTime|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\nAttention|Selection|ResponseHeader|AllResponseHeaders)|min|moveBy|moveBelow|moveTo|\nmoveToAbsolute|moveAbove|mergeAttributes|match|margins|max|btoa|big|bold|borderWidths|blink|back)\\b","name":"support.function.js"},{"match":"(?x)\n\\b(substringData|submit|splitText|setNamedItem|setAttribute|setAttributeNode|select|\nhasChildNodes|hasFeature|namedItem|click|close|cloneNode|createComment|createCDATASection|\ncreateCaption|createTHead|createTextNode|createTFoot|createDocumentFragment|\ncreateProcessingInstruction|createEntityReference|createElement|createAttribute|\ntabIndex|insertRow|insertBefore|insertCell|insertData|item|open|deleteRow|deleteCell|\ndeleteCaption|deleteTHead|deleteTFoot|deleteData|focus|write|writeln|add|appendChild|\nappendData|reset|replaceChild|replaceData|move|moveNamedItem|moveChild|moveAttribute|\nmoveAttributeNode|getNamedItem|getElementsByName|getElementsByTagName|getElementById|\ngetAttribute|getAttributeNode|blur)\\b","name":"support.function.dom.js"},{"match":"[a-zA-Z_$][\\w$]*","name":"entity.name.function.js"},{"match":"\\d[\\w$]*","name":"invalid.illegal.identifier.js"}]}},"end":"(?<=\\))","name":"meta.method-call.js","patterns":[{"include":"#arguments"}]}]},"function_calls":{"patterns":[{"begin":"([\\w$]+)\\s*(?=\\()","beginCaptures":{"1":{"patterns":[{"match":"(?x)\n\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|\ndecodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|\nrequire|set(Interval|Timeout)|clear(Interval|Timeout))\\b","name":"support.function.js"},{"match":"[a-zA-Z_$][\\w$]*","name":"entity.name.function.js"},{"match":"\\d[\\w$]*","name":"invalid.illegal.identifier.js"}]}},"end":"(?<=\\))","name":"meta.function-call.js","patterns":[{"include":"#arguments"}]}]}}},"/Users/sadick/github/highlights/deps/language-ruby/grammars/html (ruby - erb).cson":{"fileTypes":["erb","rhtml","html.erb"],"injections":{"text.html.erb - (meta.embedded.block.erb | meta.embedded.line.erb | meta.tag | comment), meta.tag string.quoted":{"patterns":[{"begin":"(^\\s*)(?=<%+#(?![^%]*%>))","beginCaptures":{"0":{"name":"punctuation.whitespace.comment.leading.erb"}},"end":"(?!\\G)(\\s*$\\n)?","endCaptures":{"0":{"name":"punctuation.whitespace.comment.trailing.erb"}},"patterns":[{"include":"#comment"}]},{"begin":"(^\\s*)(?=<%(?![^%]*%>))","beginCaptures":{"0":{"name":"punctuation.whitespace.embedded.leading.erb"}},"end":"(?!\\G)(\\s*$\\n)?","endCaptures":{"0":{"name":"punctuation.whitespace.embedded.trailing.erb"}},"patterns":[{"include":"#tags"}]},{"include":"#comment"},{"include":"#tags"}]}},"name":"HTML (Ruby - ERB)","patterns":[{"include":"text.html.basic"}],"repository":{"comment":{"patterns":[{"begin":"<%+#","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.erb"}},"end":"%>","endCaptures":{"0":{"name":"punctuation.definition.comment.end.erb"}},"name":"comment.block.erb"}]},"tags":{"patterns":[{"begin":"<%+(?!>)[-=]?(?![^%]*%>)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.erb"}},"contentName":"source.ruby","end":"(-?%)>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.erb"},"1":{"name":"source.ruby"}},"name":"meta.embedded.block.erb","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.erb"}},"match":"(#).*?(?=-?%>)","name":"comment.line.number-sign.erb"},{"include":"source.ruby"}]},{"begin":"<%+(?!>)[-=]?","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.erb"}},"contentName":"source.ruby","end":"(-?%)>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.erb"},"1":{"name":"source.ruby"}},"name":"meta.embedded.line.erb","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.erb"}},"match":"(#).*?(?=-?%>)","name":"comment.line.number-sign.erb"},{"include":"source.ruby"}]}]}},"scopeName":"text.html.erb"},"/Users/sadick/github/highlights/deps/language-ruby/grammars/ruby.cson":{"name":"Ruby","scopeName":"source.ruby","fileTypes":["Appraisals","Berksfile","cap","Capfile","capfile","cgi","fcgi","Gemfile","gemspec","Guardfile","irbrc","opal","podspec","prawn","pryrc","Puppetfile","rabl","rake","Rakefile","Rantfile","rb","rbx","rjs","ru","ruby","thor","Thorfile","Vagrantfile"],"firstLineMatch":"^#!\\s*/.*\\bruby","patterns":[{"captures":{"1":{"name":"keyword.control.class.ruby"},"2":{"name":"entity.name.type.class.ruby"},"4":{"name":"entity.other.inherited-class.ruby"},"5":{"name":"punctuation.separator.inheritance.ruby"},"6":{"name":"variable.other.object.ruby"},"7":{"name":"punctuation.definition.variable.ruby"}},"match":"^\\s*(class)\\s+(([.a-zA-Z0-9_:]+(\\s*(<)\\s*[.a-zA-Z0-9_:]+)?)|((<<)\\s*[.a-zA-Z0-9_:]+))","name":"meta.class.ruby"},{"captures":{"1":{"name":"keyword.control.module.ruby"},"2":{"name":"entity.name.type.module.ruby"},"3":{"name":"entity.other.inherited-class.module.first.ruby"},"4":{"name":"punctuation.separator.inheritance.ruby"},"5":{"name":"entity.other.inherited-class.module.second.ruby"},"6":{"name":"punctuation.separator.inheritance.ruby"},"7":{"name":"entity.other.inherited-class.module.third.ruby"},"8":{"name":"punctuation.separator.inheritance.ruby"}},"match":"^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)","name":"meta.module.ruby"},{"comment":"else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.","match":"(?<!\\.)\\belse(\\s)+if\\b","name":"invalid.deprecated.ruby"},{"captures":{"1":{"name":"punctuation.definition.constant.ruby"}},"comment":"symbols as hash key (1.9 syntax)","match":"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)","name":"constant.other.symbol.hashkey.ruby"},{"captures":{"1":{"name":"punctuation.definition.constant.ruby"}},"comment":"symbols as hash key (1.8 syntax)","match":"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)","name":"constant.other.symbol.hashkey.ruby"},{"comment":"everything being a reserved word, not a value and needing a 'end' is a..","match":"(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])","name":"keyword.control.ruby"},{"comment":"contextual smart pair support for block parameters","match":"(?<!\\.)\\bdo\\b\\s*","name":"keyword.control.start-block.ruby"},{"comment":"contextual smart pair support","match":"(?<=\\{)(\\s+)","name":"meta.syntax.ruby.start-block"},{"comment":" as above, just doesn't need a 'end' and does a logic operation","match":"(?<!\\.)\\b(and|not|or)\\b","name":"keyword.operator.logical.ruby"},{"comment":" just as above but being not a logical operation","match":"(?<!\\.)\\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\\b(?![?!])|\\bdefined\\?|\\bblock_given\\?","name":"keyword.control.pseudo-method.ruby"},{"match":"\\bnil\\b(?![?!])","name":"constant.language.nil.ruby"},{"match":"\\b(true|false)\\b(?![?!])","name":"constant.language.boolean.ruby"},{"match":"\\b(__(FILE|LINE)__)\\b(?![?!])","name":"variable.language.ruby"},{"match":"\\bself\\b(?![?!])","name":"variable.language.self.ruby"},{"comment":" everything being a method but having a special function is a..","match":"\\b(initialize|new|loop|include|extend|prepend|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|module_function|public|protected)\\b(?![?!])","name":"keyword.other.special-method.ruby"},{"begin":"\\b(require|require_relative|gem)\\b","captures":{"1":{"name":"keyword.other.special-method.ruby"}},"end":"$|(?=#|\\})","name":"meta.require.ruby","patterns":[{"include":"$self"}]},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(@)[a-zA-Z_]\\w*","name":"variable.other.readwrite.instance.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(@@)[a-zA-Z_]\\w*","name":"variable.other.readwrite.class.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(\\$)[a-zA-Z_]\\w*","name":"variable.other.readwrite.global.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpv])","name":"variable.other.readwrite.global.pre-defined.ruby"},{"begin":"\\b(ENV)\\[","beginCaptures":{"1":{"name":"variable.other.constant.ruby"}},"end":"\\]","name":"meta.environment-variable.ruby","patterns":[{"include":"$self"}]},{"match":"\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))","name":"support.class.ruby"},{"match":"\\b(abort|at_exit|autoload\\??|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|exit!|fork|format|gets|global_variables|gsub|iterator\\?|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\\b(?![?!])","name":"support.function.kernel.ruby"},{"match":"\\b[A-Z]\\w*\\b","name":"variable.other.constant.ruby"},{"begin":"(?x)\n\t\t\t         (?=def\\b)                                                      # an optimization to help Oniguruma fail fast\n\t\t\t         (?<=^|\\s)(def)\\s+                                              # the def keyword\n\t\t\t         ( (?>[a-zA-Z_]\\w*(?>\\.|::))?                                   # a method name prefix\n\t\t\t           (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?                              # the method name\n\t\t\t           |===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) )  # …or an operator method\n\t\t\t         \\s*(\\()                                                        # the openning parenthesis for arguments\n\t\t\t        ","beginCaptures":{"1":{"name":"keyword.control.def.ruby"},"2":{"name":"entity.name.function.ruby"},"3":{"name":"punctuation.definition.parameters.ruby"}},"comment":"the method pattern comes from the symbol pattern, see there for a explaination","end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.ruby"}},"name":"meta.function.method.with-arguments.ruby","patterns":[{"begin":"(?![\\s,)])","end":"(?=[,)])","patterns":[{"captures":{"1":{"name":"storage.type.variable.ruby"},"2":{"name":"variable.parameter.function.ruby"}},"match":"\\G([&*]?)([_a-zA-Z][_a-zA-Z0-9]*)"},{"include":"$self"}]}]},{"begin":"(?x)\n\t\t\t         (?=def\\b)                                                      # an optimization to help Oniguruma fail fast\n\t\t\t         (?<=^|\\s)(def)\\s+                                              # the def keyword\n\t\t\t         ( (?>[a-zA-Z_]\\w*(?>\\.|::))?                                   # a method name prefix\n\t\t\t           (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?                              # the method name\n\t\t\t           |===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) )  # …or an operator method\n\t\t\t         [ \\t]                                                          # the space separating the arguments\n\t\t\t         (?=[ \\t]*[^\\s#;])                                              # make sure arguments and not a comment follow\n\t\t\t        ","beginCaptures":{"1":{"name":"keyword.control.def.ruby"},"2":{"name":"entity.name.function.ruby"}},"comment":"same as the previous rule, but without parentheses around the arguments","end":"$","name":"meta.function.method.with-arguments.ruby","patterns":[{"begin":"(?![\\s,])","end":"(?=,|$)","patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"\\G([&*]?)[_a-zA-Z][_a-zA-Z0-9]*","name":"variable.parameter.function.ruby"},{"include":"$self"}]}]},{"captures":{"1":{"name":"keyword.control.def.ruby"},"3":{"name":"entity.name.function.ruby"}},"comment":" the optional name is just to catch the def also without a method-name","match":"(?x)\n\t\t\t         (?=def\\b)                                                           # an optimization to help Oniguruma fail fast\n\t\t\t         (?<=^|\\s)(def)\\b                                                    # the def keyword\n\t\t\t         ( \\s+                                                               # an optional group of whitespace followed by…\n\t\t\t           ( (?>[a-zA-Z_]\\w*(?>\\.|::))?                                      # a method name prefix\n\t\t\t             (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?                                 # the method name\n\t\t\t             |===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) )?  # …or an operator method\n\t\t\t        ","name":"meta.function.method.without-arguments.ruby"},{"match":"\\b(0[xX]\\h(?>_?\\h)*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0[bB][01]+)\\b","name":"constant.numeric.ruby"},{"begin":":'","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"comment":"symbol literal with '' delimitor","end":"'","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"match":"\\\\['\\\\]","name":"constant.character.escape.ruby"}]},{"begin":":\"","beginCaptures":{"0":{"name":"punctuation.section.symbol.begin.ruby"}},"comment":"symbol literal with \"\" delimitor","end":"\"","endCaptures":{"0":{"name":"punctuation.section.symbol.end.ruby"}},"name":"constant.other.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"comment":"Needs higher precidence than regular expressions.","match":"(?<!\\()/=","name":"keyword.operator.assignment.augmented.ruby"},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with '' delimitor","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.single.ruby","patterns":[{"match":"\\\\'|\\\\\\\\","name":"constant.character.escape.ruby"}]},{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with interpolation and \"\" delimitor","end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.double.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"execute string (allows for interpolation)","end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%x\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"execute string (allow for interpolation)","end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%x\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"execute string (allow for interpolation)","end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%x\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"execute string (allow for interpolation)","end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%x\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"execute string (allow for interpolation)","end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%x([^\\w])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"execute string (allow for interpolation)","end":"\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?<![\\w)])((/))(?![*+?])(?=(?:\\\\/|[^/])*/[eimnosux]*\\s*([\\]#).,?:]|$|\\|\\||&&))","captures":{"1":{"name":"string.regexp.interpolated.ruby"},"2":{"name":"punctuation.section.regexp.ruby"}},"comment":"regular expression literal with interpolation","contentName":"string.regexp.interpolated.ruby","end":"((/[eimnosux]*))(?=[^eimnosux])","patterns":[{"include":"#regex_sub"}]},{"begin":"%r\\{","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"comment":"regular expression literal with interpolation and {} delimitor","end":"\\}[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},{"begin":"%r\\[","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"comment":"regular expression literal with interpolation and [] delimitor","end":"\\][eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},{"begin":"%r\\(","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"comment":"regular expression literal with interpolation and () delimitor","end":"\\)[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},{"begin":"%r\\<","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"comment":"regular expression literal with interpolation and <> delimitor","end":"\\>[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},{"begin":"%r([^\\w])","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"comment":"regular expression literal with interpolation and {} delimitor","end":"\\1[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"}]},{"begin":"%I\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with interpolation and [] delimitor","end":"\\]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%I\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with interpolation and () delimitor","end":"\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%I\\<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with interpolation and <> delimitor","end":"\\>","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%I\\{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with interpolation and {} delimitor","end":"\\}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%I([^\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with interpolation and wildcard delimitor","end":"\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%i\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with [] delimitor","end":"\\]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"match":"\\\\\\]|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%i\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with () delimitor","end":"\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"match":"\\\\\\)|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%i\\<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with <> delimitor","end":"\\>","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"match":"\\\\\\>|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%i\\{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with {} delimitor","end":"\\}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"match":"\\\\\\}|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%i([^\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of symbols literal with wildcard delimitor","end":"\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"comment":"Cant be named because its not neccesarily an escape.","match":"\\\\."}]},{"begin":"%W\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with interpolation and [] delimitor","end":"\\]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%W\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with interpolation and () delimitor","end":"\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%W\\<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with interpolation and <> delimitor","end":"\\>","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%W\\{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with interpolation and {} delimitor","end":"\\}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%W([^\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with interpolation and wildcard delimitor","end":"\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%w\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with [] delimitor","end":"\\]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\]|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%w\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with () delimitor","end":"\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\)|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%w\\<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with <> delimitor","end":"\\>","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\>|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%w\\{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with {} delimitor","end":"\\}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\}|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%w([^\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"comment":"array of strings literal with wildcard delimitor","end":"\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"comment":"Cant be named because its not neccesarily an escape.","match":"\\\\."}]},{"begin":"%Q\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with interpolation and () delimitor","end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%Q\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with interpolation and [] delimitor","end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%Q\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with interpolation and <> delimitor","end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%Q\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with interpolation and {} delimitor","end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%Q([^\\w])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with interpolation and wildcard delimitor","end":"\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly"}]},{"begin":"%\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets"}]},{"begin":"%\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens"}]},{"begin":"%\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt"}]},{"begin":"%([^\\w\\s=])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with interpolation and wildcard delimitor","end":"\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%q\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with () delimitor","end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\)|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%q\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with <> delimitor","end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\>|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%q\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with [] delimitor","end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\]|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%q\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with {} delimitor","end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\}|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%q([^\\w])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"string literal with wildcard delimitor","end":"\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"comment":"Cant be named because its not neccesarily an escape.","match":"\\\\."}]},{"begin":"%s\\(","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"comment":"symbol literal with () delimitor","end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"match":"\\\\\\)|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%s\\<","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"comment":"symbol literal with <> delimitor","end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"match":"\\\\\\>|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%s\\[","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"comment":"symbol literal with [] delimitor","end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"match":"\\\\\\]|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%s\\{","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"comment":"symbol literal with {} delimitor","end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"match":"\\\\\\}|\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%s([^\\w])","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"comment":"symbol literal with wildcard delimitor","end":"\\1","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.other.symbol.ruby","patterns":[{"comment":"Cant be named because its not neccesarily an escape.","match":"\\\\."}]},{"captures":{"1":{"name":"punctuation.definition.constant.ruby"}},"comment":"symbols","match":"(?<!:)(:)(?>[$a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|@@?[a-zA-Z_]\\w*)","name":"constant.other.symbol.ruby"},{"begin":"^=begin","captures":{"0":{"name":"punctuation.definition.comment.ruby"}},"comment":"multiline comments","end":"^=end","name":"comment.block.documentation.ruby"},{"begin":"(^[ \\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.ruby"}},"end":"(?!\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.ruby"}},"end":"\\n","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"}]}]},{"comment":"\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1     ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0      ?\\07     ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n      ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a    ?\\M-a    ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a       ?A       ?0 \n\t\t\t?*       ?\"       ?( \n\t\t\t?.       ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t","match":"(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])","name":"constant.numeric.ruby"},{"begin":"^__END__\\n","captures":{"0":{"name":"string.unquoted.program-block.ruby"}},"comment":"__END__ marker","contentName":"text.plain","end":"(?=not)impossible","patterns":[{"begin":"(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))","end":"(?=not)impossible","name":"text.html.embedded.ruby","patterns":[{"include":"text.html.basic"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)HTML)\\b\\1))","comment":"Heredoc with embedded html","end":"(?!\\G)","name":"meta.embedded.block.html","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)HTML)\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"text.html","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"text.html.basic"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)SQL)\\b\\1))","comment":"Heredoc with embedded sql","end":"(?!\\G)","name":"meta.embedded.block.sql","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)SQL)\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.sql","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.sql"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)CSS)\\b\\1))","comment":"Heredoc with embedded css","end":"(?!\\G)","name":"meta.embedded.block.css","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)CSS)\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.css","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.css"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)CPP)\\b\\1))","comment":"Heredoc with embedded c++","end":"(?!\\G)","name":"meta.embedded.block.cpp","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)CPP)\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.cpp","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.c++"},{"include":"source.cpp"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)C)\\b\\1))","comment":"Heredoc with embedded c","end":"(?!\\G)","name":"meta.embedded.block.c","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)C)\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.c","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.c"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))","comment":"Heredoc with embedded javascript","end":"(?!\\G)","name":"meta.embedded.block.js","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.js","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.js"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)JQUERY)\\b\\1))","comment":"Heredoc with embedded jQuery javascript","end":"(?!\\G)","name":"meta.embedded.block.js.jquery","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)JQUERY)\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.js.jquery","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.js.jquery"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))","comment":"Heredoc with embedded shell","end":"(?!\\G)","name":"meta.embedded.block.shell","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.shell","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.shell"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)LUA)\\b\\1))","comment":"Heredoc with embedded lua","end":"(?!\\G)","name":"meta.embedded.block.lua","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)LUA)\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.lua","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.lua"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<-(\"?)((?:[_\\w]+_|)RUBY)\\b\\1))","comment":"Heredoc with embedded ruby","end":"(?!\\G)","name":"meta.embedded.block.ruby","patterns":[{"begin":"(?><<-(\"?)((?:[_\\w]+_|)RUBY)\\b\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.ruby","end":"\\s*\\2$\\n?","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.ruby"},{"include":"#escaped_char"}]}]},{"begin":"(?>\\=\\s*<<(\\w+))","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"^\\1$","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?><<-(\\w+))","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"comment":"heredoc with indented terminator","end":"\\s*\\1$","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?<=\\{|do|\\{\\s|do\\s)(\\|)","captures":{"1":{"name":"punctuation.separator.variable.ruby"}},"end":"(\\|)","patterns":[{"match":"[_a-zA-Z][_a-zA-Z0-9]*","name":"variable.other.block.ruby"},{"match":",","name":"punctuation.separator.variable.ruby"}]},{"match":"=>","name":"punctuation.separator.key-value"},{"match":"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|\\-=|\\^=|\\|{1,2}=|<<","name":"keyword.operator.assignment.augmented.ruby"},{"match":"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?","name":"keyword.operator.comparison.ruby"},{"match":"(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\^","name":"keyword.operator.logical.ruby"},{"match":"(%|&|\\*\\*|\\*|\\+|\\-|/)","name":"keyword.operator.arithmetic.ruby"},{"match":"=","name":"keyword.operator.assignment.ruby"},{"match":"\\||~|>>","name":"keyword.operator.other.ruby"},{"match":":","name":"punctuation.separator.other.ruby"},{"match":"\\;","name":"punctuation.separator.statement.ruby"},{"match":",","name":"punctuation.separator.object.ruby"},{"match":"\\.|::","name":"punctuation.separator.method.ruby"},{"match":"\\{","name":"punctuation.section.scope.begin.ruby"},{"match":"\\}","name":"punctuation.section.scope.end.ruby"},{"match":"\\[","name":"punctuation.section.array.begin.ruby"},{"match":"\\]","name":"punctuation.section.array.end.ruby"},{"match":"\\(|\\)","name":"punctuation.section.function.ruby"}],"repository":{"escaped_char":{"match":"\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)","name":"constant.character.escape.ruby"},"heredoc":{"begin":"^<<-?\\w+","end":"$","patterns":[{"include":"$self"}]},"interpolated_ruby":{"patterns":[{"begin":"(#\\{)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.ruby"},"1":{"name":"source.ruby"}},"contentName":"source.ruby","end":"(\\})","endCaptures":{"0":{"name":"punctuation.section.embedded.end.ruby"},"1":{"name":"source.ruby"}},"name":"meta.embedded.line.ruby","patterns":[{"include":"#nest_curly_and_self"},{"include":"$self"}]},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(#@)[a-zA-Z_]\\w*","name":"variable.other.readwrite.instance.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(#@@)[a-zA-Z_]\\w*","name":"variable.other.readwrite.class.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(#\\$)[a-zA-Z_]\\w*","name":"variable.other.readwrite.global.ruby"}]},"nest_brackets":{"begin":"\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\]","patterns":[{"include":"#nest_brackets"}]},"nest_brackets_i":{"begin":"\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\]","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},"nest_brackets_r":{"begin":"\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\]","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},"nest_curly":{"begin":"\\{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\}","patterns":[{"include":"#nest_curly"}]},"nest_curly_and_self":{"patterns":[{"begin":"\\{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\}","patterns":[{"include":"#nest_curly_and_self"}]},{"include":"$self"}]},"nest_curly_i":{"begin":"\\{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\}","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},"nest_curly_r":{"begin":"\\{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\}","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},"nest_ltgt":{"begin":"\\<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\>","patterns":[{"include":"#nest_ltgt"}]},"nest_ltgt_i":{"begin":"\\<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\>","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},"nest_ltgt_r":{"begin":"\\<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\>","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},"nest_parens":{"begin":"\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\)","patterns":[{"include":"#nest_parens"}]},"nest_parens_i":{"begin":"\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\)","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},"nest_parens_r":{"begin":"\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\)","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},"regex_sub":{"patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"captures":{"1":{"name":"punctuation.definition.arbitrary-repetition.ruby"},"3":{"name":"punctuation.definition.arbitrary-repetition.ruby"}},"match":"(\\{)\\d+(,\\d+)?(\\})","name":"string.regexp.arbitrary-repetition.ruby"},{"begin":"\\[(?:\\^?\\])?","captures":{"0":{"name":"punctuation.definition.character-class.ruby"}},"end":"\\]","name":"string.regexp.character-class.ruby","patterns":[{"include":"#escaped_char"}]},{"begin":"\\(\\?#","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.ruby"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.comment.end.ruby"}},"name":"comment.line.number-sign.ruby","patterns":[{"include":"#escaped_char"}]},{"begin":"\\(","captures":{"0":{"name":"punctuation.definition.group.ruby"}},"end":"\\)","name":"string.regexp.group.ruby","patterns":[{"include":"#regex_sub"}]},{"begin":"(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)","beginCaptures":{"1":{"name":"punctuation.definition.comment.ruby"}},"comment":"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.","end":"$\\n?","endCaptures":{"0":{"name":"punctuation.definition.comment.ruby"}},"name":"comment.line.number-sign.ruby"}]},"yard":{"name":"comment.line.yard.ruby","patterns":[{"include":"#yard_comment"},{"include":"#yard_name_types"},{"include":"#yard_tag"},{"include":"#yard_types"}]},"yard_comment":{"comment":"For YARD tags that follow the tag-comment pattern","match":"(@)(abstract|api|author|deprecated|example|note|since|todo|version)(?=\\s)(.*)$","captures":{"1":{"name":"comment.line.keyword.punctuation.yard.ruby"},"2":{"name":"comment.line.keyword.yard.ruby"},"3":{"name":"comment.line.string.yard.ruby"}}},"yard_name_types":{"comment":"For YARD tags that follow the tag-name-types-comment pattern","match":"(@)(attr|attr_reader|attr_writer|param|see|yieldparam)(?=\\s)(\\s+([a-z_][a-zA-Z_]*))?(\\s+((\\[).+(\\])))?(.*)$","captures":{"1":{"name":"comment.line.keyword.punctuation.yard.ruby"},"2":{"name":"comment.line.keyword.yard.ruby"},"3":{"name":"comment.line.yard.ruby"},"4":{"name":"comment.line.parameter.yard.ruby"},"5":{"name":"comment.line.yard.ruby"},"6":{"name":"comment.line.type.yard.ruby"},"7":{"name":"comment.line.punctuation.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.string.yard.ruby"}}},"yard_tag":{"comment":"For YARD tags that are just the tag","match":"(@)(private)$","captures":{"1":{"name":"comment.line.keyword.punctuation.yard.ruby"},"2":{"name":"comment.line.keyword.yard.ruby"}}},"yard_types":{"comment":"For YARD tags that follow the tag-types-comment pattern","match":"(@)(raise|return|yieldreturn)(?=\\s)(\\s+((\\[).+(\\])))?(.*)$","captures":{"1":{"name":"comment.line.keyword.punctuation.yard.ruby"},"2":{"name":"comment.line.keyword.yard.ruby"},"3":{"name":"comment.line.yard.ruby"},"4":{"name":"comment.line.type.yard.ruby"},"5":{"name":"comment.line.punctuation.yard.ruby"},"6":{"name":"comment.line.punctuation.yard.ruby"},"7":{"name":"comment.line.string.yard.ruby"}}}}},"/Users/sadick/github/highlights/deps/language-ruby-on-rails/grammars/html (rails).cson":{"fileTypes":["rhtml","erb","html.erb"],"foldingStartMarker":"(?x)\n\t\t(<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\\b.*?>\n\t\t|<!--(?!.*-->)\n\t\t|\\{\\s*($|\\?>\\s*$|//|/\\*(.*\\*/\\s*$|(?!.*?\\*/)))\n\t\t)","foldingStopMarker":"(?x)\n\t\t(</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>\n\t\t|^\\s*-->\n\t\t|(^|\\s)\\}\n\t\t)","name":"HTML (Rails)","patterns":[{"begin":"<%+#","captures":{"0":{"name":"punctuation.definition.comment.erb"}},"end":"%>","name":"comment.block.erb"},{"begin":"<%+(?!>)[-=]?","captures":{"0":{"name":"punctuation.section.embedded.ruby"}},"end":"-?%>","name":"source.ruby.rails.embedded.html","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.ruby"}},"match":"(#).*?(?=-?%>)","name":"comment.line.number-sign.ruby"},{"include":"source.ruby.rails"}]},{"include":"text.html.basic"}],"scopeName":"text.html.ruby"},"/Users/sadick/github/highlights/deps/language-ruby-on-rails/grammars/javascript (rails).cson":{"fileTypes":["js.erb"],"foldingStartMarker":"/\\*\\*|\\{\\s*$","foldingStopMarker":"\\*\\*/|^\\s*\\}","name":"JavaScript (Rails)","patterns":[{"begin":"<%+#","captures":{"0":{"name":"punctuation.definition.comment.erb"}},"end":"%>","name":"comment.block.erb"},{"begin":"<%+(?!>)[-=]?","captures":{"0":{"name":"punctuation.section.embedded.ruby"}},"end":"-?%>","name":"source.ruby.rails.embedded.html","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.ruby"}},"match":"(#).*?(?=-?%>)","name":"comment.line.number-sign.ruby"},{"include":"source.ruby.rails"}]},{"include":"source.js"}],"scopeName":"source.js.rails source.js.jquery"},"/Users/sadick/github/highlights/deps/language-ruby-on-rails/grammars/rjs.cson":{"fileTypes":["rjs"],"name":"Ruby on Rails (RJS)","patterns":[{"include":"source.ruby"}],"scopeName":"source.ruby.rails.rjs"},"/Users/sadick/github/highlights/deps/language-ruby-on-rails/grammars/ruby on rails.cson":{"scopeName":"source.ruby.rails","fileTypes":["rb","rxml","builder","Gemfile","jbuilder","json_builder"],"foldingStartMarker":"(?x)^\n\t    (\\s*+\n\t        (module|class|def\n\t        |unless|if\n\t        |case\n\t        |begin\n\t        |for|while|until\n\t        |(  \"(\\\\.|[^\"])*+\"          # eat a double quoted string\n\t         | '(\\\\.|[^'])*+'        # eat a single quoted string\n\t         |   [^#\"']                # eat all but comments and strings\n\t         )*\n\t         (                 \\s   (do|begin|case)\n\t         | [-+=&|*/~%^<>~] \\s*+ (if|unless)\n\t         )\n\t        )\\b\n\t        (?! [^;]*+ ; .*? \\bend\\b )\n\t    |(  \"(\\\\.|[^\"])*+\"              # eat a double quoted string\n\t     | '(\\\\.|[^'])*+'            # eat a single quoted string\n\t     |   [^#\"']                    # eat all but comments and strings\n\t     )*\n\t     ( \\{ (?!  [^}]*+ \\} )\n\t     | \\[ (?! [^\\]]*+ \\] )\n\t     )\n\t    ).*$\n\t|   [#] .*? \\(fold\\) \\s*+ $         # Sune’s special marker\n\t","foldingStopMarker":"(?x)\n\t\t(   (^|;) \\s*+ end   \\s*+ ([#].*)? $\n\t\t|   ^     \\s*+ [}\\]] \\s*+ ([#].*)? $\n\t\t|   [#] .*? \\(end\\) \\s*+ $    # Sune’s special marker\n\t\t)","name":"Ruby on Rails","patterns":[{"begin":"(^\\s*)(?=class\\s+(([.a-zA-Z0-9_:]+ControllerTest(\\s*<\\s*[.a-zA-Z0-9_:]+)?)))","comment":"Uses lookahead to match classes with the ControllerTest suffix; includes 'source.ruby' to avoid infinite recursion","end":"^\\1(?=end)\\b","name":"meta.rails.functional_test","patterns":[{"include":"source.ruby"},{"include":"$self"}]},{"begin":"(^\\s*)(?=class\\s+(([.a-zA-Z0-9_:]+Controller\\b(\\s*<\\s*[.a-zA-Z0-9_:]+)?)|(<<\\s*[.a-zA-Z0-9_:]+)))(?!.+\\bend\\b)","comment":"Uses lookahead to match classes with the Controller suffix; includes 'source.ruby' to avoid infinite recursion","end":"^\\1(?=end)\\b","name":"meta.rails.controller","patterns":[{"include":"source.ruby"},{"include":"$self"}]},{"begin":"(^\\s*)(?=module\\s+((([A-Z]\\w*::)*)[A-Z]\\w*)Helper)","comment":"Uses lookahead to match modules with the Helper suffix; includes 'source.ruby' to avoid infinite recursion","end":"^\\1(?=end)\\b","name":"meta.rails.helper","patterns":[{"include":"source.ruby"},{"include":"$self"}]},{"begin":"(^\\s*)(?=class\\s+(([.a-zA-Z0-9_:]+(\\s*<\\s*ActionMailer::Base))))","comment":"Uses lookahead to match classes that inherit from ActionMailer::Base; includes 'source.ruby' to avoid infinite recursion","end":"^\\1(?=end)\\b","name":"meta.rails.mailer","patterns":[{"include":"source.ruby"},{"include":"$self"}]},{"begin":"(^\\s*)(?=class\\s+.+ActiveRecord::Base)","comment":"Uses lookahead to match classes that (may) inherit from ActiveRecord::Base; includes 'source.ruby' to avoid infinite recursion","end":"^\\1(?=end)\\b","name":"meta.rails.model","patterns":[{"include":"source.ruby"},{"include":"$self"}]},{"begin":"(^\\s*)(?=class\\s+.+ActiveRecord::Migration)","comment":"Uses lookahead to match classes that (may) inherit from ActiveRecord::Migration; includes 'source.ruby' to avoid infinite recursion","end":"^\\1(?=end)\\b","name":"meta.rails.migration","patterns":[{"begin":"(^\\s*)(?=change_table)\\b","comment":"Uses lookahead to match methods change_table; includes 'source.ruby' to avoid infinite recursion","contentName":"meta.rails.migration.change_table","end":"^\\1(?=end)\\b","patterns":[{"include":"source.ruby"},{"include":"$self"}]},{"begin":"(^\\s*)(?=create_table)\\b","comment":"Uses lookahead to match methods create_table; includes 'source.ruby' to avoid infinite recursion","contentName":"meta.rails.migration.create_table","end":"^\\1(?=end)\\b","patterns":[{"include":"source.ruby"},{"include":"$self"}]},{"include":"source.ruby"},{"include":"$self"}]},{"begin":"(^\\s*)(?=ActiveRecord::Schema.define)","end":"^\\1(?=end)\\b","name":"meta.rails.schema","patterns":[{"begin":"(^\\s*)(?=create_table)\\b","comment":"Uses lookahead to match methods create_table; includes 'source.ruby' to avoid infinite recursion","contentName":"meta.rails.migration.create_table","end":"^\\1(?=end)\\b","patterns":[{"include":"source.ruby"},{"include":"$self"}]}]},{"begin":"(^\\s*)(?=class\\s+(?![.a-zA-Z0-9_:]+ControllerTest)(([.a-zA-Z0-9_:]+Test(\\s*<\\s*[.a-zA-Z0-9_:]+)?)|(<<\\s*[.a-zA-Z0-9_:]+)))","comment":"Uses lookahead to match classes with the Test suffix; includes 'source.ruby' to avoid infinite recursion","end":"^\\1(?=end)\\b","name":"meta.rails.unit_test","patterns":[{"include":"source.ruby"},{"include":"$self"}]},{"begin":"(^\\s*)\\w*::Application.routes.draw|(^\\s*)\\w*::Application.routes.draw|(^\\s*)ActionController::Routing::Routes","comment":"Uses ::Application.routes.draw to determine it is a routes file; includes 'source.ruby' to avoid infinite recursion","end":"^\\1(?=end)\\b","name":"meta.rails.routes","patterns":[{"include":"source.ruby"},{"include":"$self"}]},{"match":"\\b(before_filter|before_action|skip_before_filter|skip_after_filter|after_filter|around_filter|filter|filter_parameter_logging|layout|require_dependency|render|render_action|render_text|render_file|render_template|render_nothing|render_component|render_without_layout|rescue_from|url_for|redirect_to|redirect_to_path|redirect_to_url|respond_to|helper|helper_method|model|service|observer|serialize|scaffold|verify|hide_action)\\b","name":"support.function.actionpack.rails"},{"match":"\\b(check_box|content_for|error_messages_for|form_for|fields_for|file_field|hidden_field|image_submit_tag|label|link_to|password_field|radio_button|submit|text_field|text_area)\\b","name":"support.function.viewhelpers.rails"},{"match":"\\b(after_create|after_destroy|after_save|after_update|after_validation|after_validation_on_create|after_validation_on_update|before_create|before_destroy|before_save|before_update|before_validation|before_validation_on_create|before_validation_on_update|composed_of|belongs_to|has_one|has_many|has_and_belongs_to_many|store_accessor|validate|validates|validate_on_create|validates_numericality_of|validate_on_update|validates_acceptance_of|validates_associated|validates_confirmation_of|validates_each|validates_format_of|validates_inclusion_of|validates_exclusion_of|validates_length_of|validates_presence_of|validates_size_of|validates_uniqueness_of|enum|attr_protected|attr_accessible|attr_readonly|accepts_nested_attributes_for|default_scope|scope)\\b","name":"support.function.activerecord.rails"},{"match":"\\b(alias_method_chain|alias_attribute|delegate|cattr_accessor|mattr_accessor|returning|memoize)\\b","name":"support.function.activesupport.rails"},{"include":"source.ruby"}]},"/Users/sadick/github/highlights/deps/language-ruby-on-rails/grammars/sql (rails).cson":{"fileTypes":["erbsql","sql.erb"],"foldingStartMarker":"\\s*\\(\\s*$","foldingStopMarker":"^\\s*\\)","name":"SQL (Rails)","patterns":[{"begin":"<%+(?!>)=?","end":"%>","name":"source.ruby.rails.embedded.sql","patterns":[{"match":"#.*?(?=%>)","name":"comment.line.number-sign.ruby"},{"include":"source.ruby.rails"}]},{"include":"source.sql"}],"scopeName":"source.sql.ruby"},"/Users/sadick/github/highlights/deps/language-sass/grammars/sass.cson":{"scopeName":"source.sass","name":"Sass","fileTypes":["sass","sass.erb"],"foldingStartMarker":"^\\s*([-%#\\:\\.\\w\\=].*)\\s$","foldingStopMarker":"^\\s*$","patterns":[{"begin":"^(\\!|\\$)([a-zA-Z0-9_-]+)\\s*((?:\\|\\|)?=|:)","beginCaptures":{"1":{"name":"punctuation.definition.entity.sass"},"2":{"name":"variable.other.sass"},"3":{"name":"punctuation.definition.entity.sass"}},"end":"(;)?$","endCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"name":"meta.variable-declaration.sass","patterns":[{"include":"#property-value"}]},{"begin":"^(=|@mixin\\s+)([a-zA-Z0-9_-]+)","beginCaptures":{"1":{"name":"keyword.control.at-rule.mixin.sass"},"2":{"name":"variable.other.sass"},"3":{"name":"punctuation.definition.entity.sass"}},"end":"(;)?$","endCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"name":"meta.variable-declaration.sass.mixin","patterns":[{"include":"#property-value"}]},{"begin":"^\\s*(\\+|@include\\s+)([a-zA-Z0-9_-]+)","beginCaptures":{"1":{"name":"keyword.control.at-rule.import.sass"},"2":{"name":"variable.other.sass"},"3":{"name":"punctuation.definition.entity.sass"}},"end":"(;)?$","endCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"name":"meta.function.include.sass","patterns":[{"include":"#property-value"}]},{"captures":{"1":{"name":"keyword.control.at-rule.extend.sass"},"2":{"name":"variable.other.sass"},"3":{"name":"invalid.illegal.punctuation.sass"}},"match":"^\\s*(@extend)\\s+([.*&#%a-zA-Z][-_:.*&#a-zA-Z]*)\\s*(;)?\\s*$","name":"meta.function.extend.sass"},{"begin":"^\\s*(\\+)([a-zA-Z0-9_-]+)","beginCaptures":{"1":{"name":"punctuation.definition.entity.sass"},"2":{"name":"variable.other.sass"},"3":{"name":"punctuation.definition.entity.sass"}},"end":"(;)?$","endCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"name":"meta.variable-usage.sass","patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"name":"variable.other.sass"}},"match":"(\\!|\\$)([a-zA-Z0-9_-]+)","name":"meta.variable-usage.sass"},{"include":"#string-single"},{"include":"#string-double"}]},{"begin":"(?=[.*&#a-zA-Z][:.*&#a-zA-Z]*)","end":"(;)?$","endCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"name":"meta.selector.css","patterns":[{"include":"#comment-block"},{"match":"(&)","name":"keyword.other.parent-reference.sass"},{"match":"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|circle|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|g|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|image|input|ins|kbd|keygen|label|legend|li|line|link|main|map|mark|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|path|polygon|polyline|pre|progress|q|rb|rect|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|text|textarea|textpath|tfoot|th|thead|time|title|tr|track|tspan|tt|u|ul|var|video|wbr)\\b","name":"entity.name.tag.css.sass"},{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(\\.)[a-zA-Z0-9_-]+","name":"entity.other.attribute-name.class.sass"},{"captures":{"1":{"name":"punctuation.definition.entity.sass"}},"match":"(#)[a-zA-Z][a-zA-Z0-9_-]*","name":"entity.other.attribute-name.id.css.sass"},{"match":"\\*","name":"entity.name.tag.wildcard.sass"},{"captures":{"1":{"name":"punctuation.definition.entity.sass"}},"match":"(:+)\\b(after|before|first-child|first-letter|first-line|last-child|selection)\\b","name":"entity.other.attribute-name.pseudo-element.sass"},{"captures":{"1":{"name":"punctuation.definition.entity.sass"}},"match":"(:)\\b(active|hover|link|visited|focus)\\b","name":"entity.other.attribute-name.pseudo-class.css.sass"},{"captures":{"1":{"name":"punctuation.definition.entity.sass"},"2":{"name":"entity.other.attribute-name.attribute.sass"},"3":{"name":"punctuation.separator.operator.sass"},"4":{"name":"string.unquoted.attribute-value.sass"},"5":{"name":"string.quoted.double.attribute-value.sass"},"6":{"name":"punctuation.definition.string.begin.sass"},"7":{"name":"punctuation.definition.string.end.sass"}},"match":"(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])","name":"meta.attribute-selector.css.sass"},{"match":"(?<=&)[a-zA-Z0-9_-]+","name":"entity.other.attribute-name.parent-selector-suffix.css.sass"}]},{"include":"#comment-block"},{"begin":"^\\s*((@)import\\b)","beginCaptures":{"1":{"name":"keyword.control.at-rule.import.sass"},"2":{"name":"punctuation.definition.keyword.sass"}},"end":"(;)?$","endCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"name":"meta.at-rule.import.sass","patterns":[{"include":"#string-double"},{"begin":"(url)\\s*(\\()\\s*","beginCaptures":{"1":{"name":"support.function.url.sass"},"2":{"name":"punctuation.section.function.sass"}},"end":"\\s*(\\))\\s*","endCaptures":{"1":{"name":"punctuation.section.function.sass"}},"patterns":[{"match":"[^'\") \\t]+","name":"variable.parameter.url.sass"},{"include":"#string-single"},{"include":"#string-double"}]},{"match":"([^\"'\\n;]+)","name":"variable.parameter.url.sass"}]},{"begin":"^\\s*((@)media)\\s+(((all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)\\s*,?\\s*)+)\\s*{","captures":{"1":{"name":"keyword.control.at-rule.media.sass"},"2":{"name":"punctuation.definition.keyword.sass"},"3":{"name":"support.constant.media.sass"}},"end":"\\s*((?=;|\\}))","name":"meta.at-rule.media.sass","patterns":[{"include":"$self"}]},{"begin":"(?<!|\\$[-a-z])(:)(?=[-a-z])","beginCaptures":{"1":{"name":"punctuation.definition.entity.css.sass"}},"end":"(;)?$","endCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"name":"meta.property-name.sass","patterns":[{"match":"(azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background-size|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-radius|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|decoration|direction|display|elevation|empty-cells|family|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|image|indent|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker|marker-offset|margin|marks|max-height|max-width|min-height|min-width|-moz-border-radius|-moz-box-shadow|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow(-[xy])?|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|perspective|pitch-range|pitch|play-during|position|quotes|repeat|richness|right|shadow|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|src|stress|stroke|style|table-layout|text|text-align|text-decoration|text-indent|text-shadow|text-transform|top|transform|unicode-bidi|vertical-align|visibility|voice-family|volume|weight|white-space|widows|width|word-spacing|z-index)\\b","name":"support.type.property-name.css.sass"},{"include":"#property-value"}]},{"begin":"^[\\s\\t]+(align|azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background-size|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-radius|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|decoration|direction|display|elevation|empty-cells|family|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|image|indent|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker|marker-offset|margin|marks|max-height|max-width|min-height|min-width|-moz-border-radius|-moz-box-shadow|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow(-[xy])?|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|perspective|pitch-range|pitch|play-during|position|quotes|repeat|richness|right|shadow|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|src|stress|stroke|style|table-layout|text|text-align|text-decoration|text-indent|text-shadow|text-transform|top|transform|unicode-bidi|vertical-align|visibility|voice-family|volume|-webkit-border-radius|-webkit-box-shadow|weight|white-space|widows|width|word-spacing|z-index)\\b([\\s\\t]*:|\\s?=)","beginCaptures":{"1":{"name":"support.type.property-name.css.sass"},"2":{"name":"punctuation.definition.entity.css.sass"}},"end":"(;)?$","endCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"name":"meta.property-name.sass","patterns":[{"include":"#property-value"}]}],"repository":{"comment-block":{"begin":"^(\\s*)(\\/\\/|\\/\\*)","captures":{"0":{"name":"punctuation.definition.comment.sass"}},"end":"^(?!\\1\\s)","name":"comment.sass"},"property-value":{"begin":"(:)?\\s?+","beginCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"end":"(;)?$","endCaptures":{"1":{"name":"invalid.illegal.punctuation.sass"}},"name":"meta.property-value.sass","patterns":[{"match":"([-=+*/])","name":"punctuation.definition.entity.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"name":"variable.other.sass"}},"match":"(\\!|\\$)([a-zA-Z0-9_-]+)","name":"meta.variable-usage.sass"},{"match":"\\b(absolute|all-scroll|always|auto|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|butt|capitalize|center|char|circle|col-resize|collapse|crosshair|dashed|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|groove|hand|help|hidden|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|right|ridge|round|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace)\\b","name":"support.constant.property-value.css.sass"},{"match":"(\\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida(?: sans)?|symbol|system|tahoma|times(?: new roman)?|trebuchet|utopia|verdana|webdings|sans-serif|serif|mono|monospace)\\b)","name":"support.constant.font-name.css.sass"},{"match":"(\\b((?:x{1,2}-)?small|smaller|medium|(?:x{1,2}-)?large|larger)\\b)","name":"support.constant.font-size.css.sass"},{"comment":"http://www.w3schools.com/css/css_colors.asp","match":"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|red|silver|teal|white|yellow)\\b","name":"support.constant.color.w3c-standard-color-name.css.sass"},{"comment":"These colours are mostly recognised but will not validate. ref: http://www.w3schools.com/css/css_colornames.asp","match":"\\b(seagreen|hotpink|lawngreen|darkgreen|violet|darkred|crimson|green|sandybrown|navy|magenta|darkslategray|steelblue|silver|darkgrey|mistyrose|gray|aliceblue|blueviolet|lightpink|saddlebrown|chocolate|limegreen|lightslategray|yellowgreen|pink|lightskyblue|indigo|lightblue|floralwhite|navajowhite|mediumvioletred|honeydew|aquamarine|blue|olivedrab|palegreen|slategray|lavenderblush|wheat|moccasin|mediumturquoise|mediumspringgreen|lightcoral|mintcream|tomato|lightgrey|black|darkmagenta|dimgray|darkturquoise|midnightblue|plum|indianred|coral|lightcyan|mediumslateblue|darkcyan|darkslateblue|darkkhaki|ivory|azure|khaki|powderblue|darkgoldenrod|orangered|burlywood|turquoise|royalblue|maroon|cornsilk|antiquewhite|yellow|teal|orange|grey|darkslategrey|slateblue|seashell|darkorchid|snow|lightslategrey|cyan|greenyellow|palevioletred|goldenrod|deepskyblue|lightyellow|lightseagreen|sienna|lemonchiffon|darkviolet|paleturquoise|slategrey|skyblue|purple|mediumpurple|cadetblue|fuchsia|chartreuse|darksalmon|lightgoldenrodyellow|white|springgreen|olive|forestgreen|peachpuff|peru|dimgrey|mediumseagreen|thistle|firebrick|darkgray|mediumaquamarine|darkolivegreen|mediumblue|palegoldenrod|blanchedalmond|ghostwhite|gold|gainsboro|darkseagreen|cornflowerblue|lime|lavender|beige|orchid|mediumorchid|whitesmoke|bisque|lightgray|tan|salmon|rosybrown|red|dodgerblue|brown|aqua|oldlace|deeppink|papayawhip|lightsalmon|lightsteelblue|darkorange|darkblue|linen|lightgreen)\\b","name":"invalid.deprecated.color.w3c-non-standard-color-name.css.sass"},{"match":"(-|\\+)?\\s*[0-9]+(\\.[0-9]+)?","name":"constant.numeric.css"},{"match":"(?<=[\\d])(px|pt|cm|mm|in|em|ex|pc)\\b|%","name":"keyword.other.unit.css"},{"captures":{"1":{"name":"punctuation.definition.constant.css"}},"match":"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b","name":"constant.other.color.rgb-value.css"},{"include":"#string-double"},{"include":"#string-single"},{"begin":"(rgb|url|attr|counter|counters|local|format)\\s*(\\()","beginCaptures":{"1":{"name":"support.function.misc.sass"},"2":{"name":"punctuation.section.function.sass"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.function.sass"}},"patterns":[{"include":"#string-single"},{"include":"#string-double"},{"match":"(\\b0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\s*,\\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\s*,\\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\b)","name":"constant.other.color.rgb-value.sass"},{"match":"\\b([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%","name":"constant.other.color.rgb-percentage.sass"},{"match":"[^'\") \\t]+","name":"variable.parameter.misc.sass"}]},{"match":"\\!\\s*important","name":"keyword.other.important.sass"}]},"string-double":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sass"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.sass"}},"name":"string.quoted.double.sass","patterns":[{"match":"\\\\.","name":"constant.character.escape.sass"}]},"string-single":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sass"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.sass"}},"name":"string.quoted.single.sass","patterns":[{"match":"\\\\.","name":"constant.character.escape.sass"}]}}},"/Users/sadick/github/highlights/deps/language-sass/grammars/scss.cson":{"scopeName":"source.css.scss","name":"SCSS","fileTypes":["scss","css.scss","css.scss.erb","scss.erb"],"foldingStartMarker":"\\{\\s*$","foldingStopMarker":"^\\s*\\}","patterns":[{"include":"#variable_setting"},{"include":"#at_rule_include"},{"include":"#at_rule_import"},{"include":"#general"},{"include":"#flow_control"},{"include":"#rules"},{"include":"#property_list"},{"include":"#at_rule_mixin"},{"include":"#at_rule_media"},{"include":"#at_rule_function"},{"include":"#at_rule_charset"},{"include":"#at_rule_option"},{"include":"#at_rule_namespace"},{"include":"#at_rule_fontface"},{"include":"#at_rule_page"},{"include":"#at_rule_keyframes"},{"include":"#at_rule_at_root"}],"repository":{"at_rule__":{"comment":"Note how all @rules are prefixed."},"at_rule_charset":{"begin":"\\s*((@)charset\\b)\\s*","captures":{"1":{"name":"keyword.control.at-rule.charset.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"comment":"Charset","end":"\\s*((?=;|$))","name":"meta.at-rule.charset.scss","patterns":[{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"}]},"at_rule_content":{"begin":"\\s*((@)content\\b)\\s*","captures":{"1":{"name":"keyword.control.content.scss"}},"end":"\\s*((?=;))","name":"meta.content.scss","patterns":[{"include":"#variable"},{"include":"#selectors"},{"include":"#property_values"}]},"at_rule_each":{"begin":"\\s*((@)each\\b)\\s*","captures":{"1":{"name":"keyword.control.each.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*((?=\\}))","name":"meta.at-rule.each.scss","patterns":[{"match":"\\b(in|\\,)\\b","name":"keyword.control.operator"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"at_rule_else":{"begin":"\\s*((@)else(\\s*(if)?))\\s*","captures":{"1":{"name":"keyword.control.else.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*(?=\\{)","name":"meta.at-rule.else.scss","patterns":[{"include":"#logical_operators"},{"include":"#variable"},{"include":"#property_values"}]},"at_rule_extend":{"begin":"\\s*((@)extend\\b)\\s*","captures":{"1":{"name":"keyword.control.at-rule.import.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*(?=\\;)","name":"meta.at-rule.import.scss","patterns":[{"include":"#variable"},{"include":"#selectors"},{"include":"#property_values"}]},"at_rule_fontface":{"patterns":[{"begin":"^\\s*((@)font-face)\\s*(?=\\{)","beginCaptures":{"1":{"name":"keyword.control.at-rule.fontface.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*(?=\\{)","name":"meta.at-rule.fontface.scss","patterns":[{"include":"#function_attributes"}]}]},"at_rule_for":{"begin":"\\s*((@)for\\b)\\s*","captures":{"1":{"name":"keyword.control.for.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*(?=\\{)","name":"meta.at-rule.for.scss","patterns":[{"match":"(\\=\\=|\\!\\=|\\<\\=|\\>\\=|\\<|\\>|from|through)","name":"keyword.control.operator"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"at_rule_function":{"patterns":[{"begin":"\\s*((@)function\\b)\\s*","captures":{"1":{"name":"keyword.control.at-rule.function.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"comment":"Function with Attributes","end":"\\s*(?=\\{)","name":"meta.at-rule.function.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"1":{"name":"keyword.control.at-rule.function.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"comment":"Simple Function","match":"\\s*((@)function\\b)\\s*","name":"meta.at-rule.function.scss"}]},"at_rule_if":{"begin":"\\s*((@)if\\b)\\s*","captures":{"1":{"name":"keyword.control.if.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*(?=\\{)","name":"meta.at-rule.if.scss","patterns":[{"include":"#logical_operators"},{"include":"#variable"},{"include":"#property_values"}]},"at_rule_import":{"begin":"\\s*((@)import\\b)\\s*","captures":{"1":{"name":"keyword.control.at-rule.import.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*((?=;)|(?=\\}))","name":"meta.at-rule.import.scss","patterns":[{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"},{"include":"#functions"},{"include":"#comment_line"}]},"at_rule_include":{"patterns":[{"begin":"\\s*((@)include\\b)\\s*","captures":{"1":{"name":"keyword.control.at-rule.include.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"},"4":{"name":"entity.name.text.scss"}},"end":"\\s*[\\)|\\s\\;]","name":"meta.at-rule.include.scss","patterns":[{"include":"#function_attributes"},{"include":"#functions"}]}]},"at_rule_keyframes":{"patterns":[{"begin":"^\\s*((@)(\\-[\\w\\-]*\\-)?keyframes\\b)\\s*([\\w-]*)","captures":{"1":{"name":"keyword.control.at-rule.keyframes.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"punctuation.definition.keyword.scss"},"4":{"name":"entity.name.function.scss"}},"comment":"Keyframes with Attributes","end":"\\s*(?=\\{)","name":"meta.at-rule.keyframes.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"1":{"name":"keyword.control.at-rule.keyframes.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"punctuation.definition.keyword.scss"},"4":{"name":"entity.name.function.scss"}},"comment":"Simple Keyframe","match":"^\\s*((@)(\\-[\\w\\-]*\\-)?keyframes\\b)\\s*([\\w-]*)","name":"meta.at-rule.keyframes.scss"}]},"at_rule_media":{"patterns":[{"begin":"^\\s*((@)media)(\\s+|$)","end":"\\s*(?=\\{)","captures":{"1":{"name":"keyword.control.at-rule.media.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"name":"meta.at-rule.media.scss","patterns":[{"include":"#function_attributes"},{"include":"#functions"},{"include":"#logical_operators"}]}]},"at_rule_mixin":{"patterns":[{"begin":"\\s*((@)mixin) ([\\w-]*)\\s*\\(","captures":{"1":{"name":"keyword.control.at-rule.mixin.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"comment":"Mixin with Attributes","end":"\\)","name":"meta.at-rule.mixin.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"1":{"name":"keyword.control.at-rule.mixin.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"comment":"Simple Mixin","match":"^\\s*((@)mixin) ([\\w-]{1,})","name":"meta.at-rule.mixin.scss"}]},"at_rule_namespace":{"patterns":[{"begin":"\\s*((@)namespace)\\s+(?=url)","captures":{"1":{"name":"keyword.control.at-rule.namespace.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"support.function.misc.scss"}},"comment":"Namespace without prefix","end":"\\s*((?=;|$))","name":"meta.at-rule.namespace.scss","patterns":[{"include":"#property_values"},{"include":"#string_single"},{"include":"#string_double"}]},{"begin":"\\s*((@)namespace) ([\\w-]*)\\s*","captures":{"1":{"name":"keyword.control.at-rule.namespace.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"comment":"Namespace","end":"\\s*((?=;|$))","name":"meta.at-rule.namespace.scss","patterns":[{"include":"#variables"},{"include":"#property_values"},{"include":"#string_single"},{"include":"#string_double"}]}]},"at_rule_option":{"captures":{"1":{"name":"keyword.control.at-rule.charset.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"comment":"Option","match":"^\\s*((@)option\\b)\\s*","name":"meta.at-rule.option.scss"},"at_rule_page":{"patterns":[{"begin":"^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)","captures":{"1":{"name":"keyword.control.at-rule.page.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"comment":"Page with Attributes","end":"\\s*(?=\\{)","name":"meta.at-rule.page.scss"}]},"at_rule_return":{"begin":"\\s*((@)(return)\\b)","captures":{"1":{"name":"keyword.control.return.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*((?=;))","name":"meta.at-rule.return.scss","patterns":[{"include":"#variable"},{"include":"#property_values"}]},"at_rule_at_root":{"begin":"\\s*((@)(at-root))(\\s+|$)","end":"\\s*(?=\\{)","beginCaptures":{"1":{"name":"keyword.control.at-rule.at-root.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"name":"meta.at-rule.at-root.scss","patterns":[{"include":"#function_attributes"},{"include":"#functions"},{"include":"#selectors"}]},"at_rule_warn":{"begin":"\\s*((@)(warn|debug)\\b)\\s*","captures":{"1":{"name":"keyword.control.warn.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*(?=\\;)","name":"meta.at-rule.warn.scss","patterns":[{"include":"#variable"},{"include":"#string_double"},{"include":"#string_single"}]},"at_rule_while":{"begin":"\\s*((@)while\\b)\\s*","captures":{"1":{"name":"keyword.control.while.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\s*(?=\\})","name":"meta.at-rule.while.scss","patterns":[{"include":"#logical_operators"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"comment_block":{"begin":"\\s*/\\*\\s*","captures":{"0":{"name":"punctuation.whitespace.comment.trailing.scss"}},"comment":"Revamped Comment block.","end":"(\\*/)\\s*","name":"comment.block.scss"},"comment_line":{"begin":"(\\s*)//","comment":"Revamped","end":"$(\\s*)","name":"comment.line.scss"},"constant_color":{"comment":"http://www.w3.org/TR/CSS21/syndata.html#value-def-color","match":"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b","name":"support.constant.color.w3c-standard-color-name.scss"},"constant_default":{"match":"\\!default","name":"keyword.other.default.scss"},"constant_deprecated_color":{"comment":"These colours are mostly recognised but will not validate. ref: http://www.w3schools.com/css/css_colornames.asp","match":"\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b","name":"invalid.deprecated.color.w3c-non-standard-color-name.scss"},"constant_font":{"match":"(\\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\\b)","name":"support.constant.font-name.scss"},"constant_functions":{"begin":"([\\w-]+)\\s*(\\()","beginCaptures":{"1":{"name":"support.function.misc.scss"},"2":{"name":"punctuation.section.function.scss"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},"constant_hex":{"captures":{"1":{"name":"punctuation.definition.constant.scss"}},"match":"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b","name":"constant.other.color.rgb-value.scss"},"constant_important":{"match":"\\!important","name":"keyword.other.important.scss"},"constant_mathematical_symbols":{"match":"(\\b(\\+|\\-|\\*|/)\\b)","name":"support.constant.mathematical-symbols.scss"},"constant_number":{"match":"[\\+|\\-]?(\\s*)?([0-9]+(\\.[0-9]+)?|\\.[0-9]+)","name":"constant.numeric.scss"},"constant_optional":{"match":"\\!optional","name":"keyword.other.optional.scss"},"constant_property_value":{"match":"\\b(absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|butt|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|right|ridge|round|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero|true|false|vertical|horizontal)\\b","name":"support.constant.property-value.scss"},"constant_rgb":{"match":"(?<!scale3d\\(|translate3d\\(|rotate3d\\()(\\b0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\s*,\\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\s*,\\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\b)","name":"constant.other.color.rgb-value.scss"},"constant_rgb_percentage":{"match":"\\b([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%","name":"constant.other.color.rgb-percentage.scss"},"constant_sass_functions":{"begin":"(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|-o|-khtml|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))\\s*(\\()","beginCaptures":{"1":{"name":"support.function.misc.scss"},"2":{"name":"punctuation.section.function.scss"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},"constant_unit":{"match":"(?<=[\\d])(ch|cm|deg|dpi|dpcm|dppx|em|ex|grad|in|mm|ms|pc|pt|px|rad|rem|turn|s|vh|vmin|vw)\\b|%","name":"keyword.other.unit.scss"},"flow_control":{"patterns":[{"include":"#at_rule_if"},{"include":"#at_rule_else"},{"include":"#at_rule_warn"},{"include":"#at_rule_for"},{"include":"#at_rule_while"},{"include":"#at_rule_each"},{"include":"#at_rule_return"}]},"function_attributes":{"patterns":[{"match":":","name":"punctuation.definition"},{"include":"#general"},{"include":"#property_values"},{"comment":"We even have error highlighting <3","match":"[=\\{\\}\\?\\;\\@]","name":"invalid.illegal"}]},"functions":{"patterns":[{"begin":"([\\w-]{1,})(\\()\\s*","beginCaptures":{"1":{"name":"support.function.misc.scss"},"2":{"name":"punctuation.section.function.scss"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},{"match":"([\\w-]{1,})","name":"support.function.misc.scss"}]},"general":{"comment":"Stuff that should be everywhere","patterns":[{"include":"#variable"},{"include":"#comment_block"},{"include":"#comment_line"}]},"interpolation":{"begin":"#\\{","end":"\\}([A-Za-z/-]*)?","name":"variable.interpolation.scss","patterns":[{"include":"#property_values"},{"include":"#variable"}]},"logical_operators":{"match":"\\s(\\=\\=|\\!\\=|\\<\\=|\\>\\=|\\<|\\>|not|or|and)\\s","name":"keyword.control.operator"},"media_attributes":{"patterns":[{"match":":","name":"punctuation.definition"},{"include":"#general"},{"include":"#property_name"},{"include":"#property_values"},{"comment":"We even have error highlighting <3","match":"[=\\{\\}\\?\\@]","name":"invalid.illegal"}]},"parameters":{"patterns":[{"include":"#variable"},{"include":"#property_values"},{"include":"#comment_line"},{"include":"#comment_block"},{"match":"[^'\",) \\t]+","name":"variable.parameter.url.scss"},{"match":",","name":"punctuation.scss"}]},"properties":{"patterns":[{"begin":"(?<![-a-z])(?=[-a-z])","end":"$|(?![-a-z])","name":"meta.property-name.scss","patterns":[{"include":"#property_names"},{"include":"#at_rule_include"}]},{"begin":"(:)\\s*(?!(\\s*{))","beginCaptures":{"1":{"name":"punctuation.separator.key-value.scss"}},"comment":"Kuroir: fixed nested elements for sass.","end":"\\s*(;|(?=\\}))","endCaptures":{"1":{"name":"punctuation.terminator.rule.scss"}},"name":"meta.property-value.scss","patterns":[{"include":"#general"},{"include":"#property_values"}]}]},"property_list":{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.scss"}},"captures":{"0":{"name":"punctuation.section.property-list.scss"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.scss"}},"name":"meta.property-list.scss","patterns":[{"include":"#flow_control"},{"include":"#rules"},{"include":"#properties"},{"include":"$self"}]},"property_name":{"comment":"Reversal order is important; KEEP IT. Also when adding new properties add them to the error checker below!","match":"((?<=\\s|^)(-webkit-[A-Za-z-]+|-moz-[A-Za-z-]+|-o-[A-Za-z-]+|-ms-[A-Za-z-]+|-khtml-[A-Za-z-]+))|\\b([0-9]{1,3}\\%|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|stroke|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resolution|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|perspective|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|marker|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|grid-rows|grid-columns|grid|gap|font-weight|font-variant|font-variant-ligatures|font-style|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-group|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation|alignment-baseline|alignment-adjust|alignment|align-last|align|after|adjust)\\b","name":"support.type.property-name.scss"},"property_name_error":{"match":"(?<![a-z-])(?!-(top|right|left|bottom|color|radius|last|inside|width|before|after|value|size|type|position|style|image|strategy|shift|align|adjust)\\b|-webkit-[A-Za-z]+\\b|-moz-[A-Za-z]+\\b|-o-[A-Za-z]+\\b|-ms-[A-Za-z]+\\b|-khtml-[A-Za-z]+\\b|z-index\\b|[0-9]{1,3}\\%\\b|zoom\\b|y\\b|x\\b|wrap\\b|word-wrap\\b|word-spacing\\b|word-break\\b|word\\b|width\\b|widows\\b|white-space-collapse\\b|white-space\\b|white\\b|weight\\b|volume\\b|voice-volume\\b|voice-stress\\b|voice-rate\\b|voice-pitch-range\\b|voice-pitch\\b|voice-family\\b|voice-duration\\b|voice-balance\\b|voice\\b|visibility\\b|vertical-align\\b|variant\\b|user-select\\b|up\\b|unicode-bidi\\b|unicode\\b|u\\b|tt\\b|trim\\b|transition-timing-function\\b|transition-property\\b|transition-duration\\b|transition-delay\\b|transition\\b|transform\\b|top-width\\b|top-style\\b|top-right-radius\\b|top-left-radius\\b|top-color\\b|top\\b|timing-function\\b|text-wrap\\b|text-transform\\b|text-shadow\\b|text-replace\\b|text-outline\\b|text-justify\\b|text-indent\\b|text-height\\b|text-emphasis\\b|text-decoration\\b|text-align-last\\b|text-align\\b|text\\b|target-position\\b|target-new\\b|target-name\\b|target\\b|table-layout\\b|tab-size\\b|style-type\\b|style-position\\b|style-image\\b|style\\b|string-set\\b|stroke\\b|strike\\b|stretch\\b|stress\\b|stacking-strategy\\b|stacking-shift\\b|stacking-ruby\\b|stacking\\b|src\\b|speed\\b|speech-rate\\b|speech\\b|speak-punctuation\\b|speak-numeral\\b|speak-header\\b|speak\\b|span\\b|spacing\\b|space-collapse\\b|space\\b|sizing\\b|size-adjust\\b|size\\b|shadow\\b|s\\b|respond-to\\b|rule-width\\b|rule-style\\b|rule-color\\b|rule\\b|ruby-span\\b|ruby-position\\b|ruby-overhang\\b|ruby-align\\b|ruby\\b|rows\\b|rotation-point\\b|rotation\\b|role\\b|right-width\\b|right-style\\b|right-color\\b|right\\b|richness\\b|rest-before\\b|rest-after\\b|rest\\b|resource\\b|resolution\\b|resize\\b|reset\\b|replace\\b|repeat\\b|rendering-intent\\b|rate\\b|radius\\b|quotes\\b|punctuation-trim\\b|punctuation\\b|property\\b|profile\\b|presentation-level\\b|presentation\\b|position\\b|pointer-events\\b|point\\b|play-state\\b|play-during\\b|play-count\\b|pitch-range\\b|pitch\\b|phonemes\\b|pause-before\\b|pause-after\\b|pause\\b|page-policy\\b|page-break-inside\\b|page-break-before\\b|page-break-after\\b|page\\b|padding-top\\b|padding-right\\b|padding-left\\b|padding-bottom\\b|padding\\b|pack\\b|overhang\\b|overflow-y\\b|overflow-x\\b|overflow-style\\b|overflow\\b|outline-width\\b|outline-style\\b|outline-offset\\b|outline-color\\b|outline\\b|orphans\\b|origin\\b|orientation\\b|orient\\b|ordinal-group\\b|opacity\\b|offset\\b|numeral\\b|new\\b|nav-up\\b|nav-right\\b|nav-left\\b|nav-index\\b|nav-down\\b|nav\\b|name\\b|move-to\\b|model\\b|min-width\\b|min-height\\b|min\\b|max-width\\b|max-height\\b|max\\b|marquee-style\\b|marquee-speed\\b|marquee-play-count\\b|marquee-direction\\b|marquee\\b|marks\\b|mark-before\\b|mark-after\\b|marker\\b|mark\\b|margin-top\\b|margin-right\\b|margin-left\\b|margin-bottom\\b|margin\\b|mask-image\\b|list-style-type\\b|list-style-position\\b|list-style-image\\b|list-style\\b|list\\b|lines\\b|line-stacking-strategy\\b|line-stacking-shift\\b|line-stacking-ruby\\b|line-stacking\\b|line-height\\b|line\\b|level\\b|letter-spacing\\b|length\\b|left-width\\b|left-style\\b|left-color\\b|left\\b|label\\b|justify\\b|iteration-count\\b|inline-box-align\\b|initial-value\\b|initial-size\\b|initial-before-align\\b|initial-before-adjust\\b|initial-after-align\\b|initial-after-adjust\\b|index\\b|indent\\b|increment\\b|image-resolution\\b|image-orientation\\b|image\\b|icon\\b|hyphens\\b|hyphenate-resource\\b|hyphenate-lines\\b|hyphenate-character\\b|hyphenate-before\\b|hyphenate-after\\b|hyphenate\\b|height\\b|header\\b|hanging-punctuation\\b|grid-rows\\b|grid-columns\\b|grid\\b|gap\\b|font-weight\\b|font-variant\\b|font-variant-ligatures\\b|font-style\\b|font-stretch\\b|font-size-adjust\\b|font-size\\b|font-family\\b|font\\b|float-offset\\b|float\\b|flex-group\\b|flex\\b|fit-position\\b|fit\\b|fill\\b|filter\\b|family\\b|empty-cells\\b|emphasis\\b|elevation\\b|duration\\b|drop-initial-value\\b|drop-initial-size\\b|drop-initial-before-align\\b|drop-initial-before-adjust\\b|drop-initial-after-align\\b|drop-initial-after-adjust\\b|drop\\b|down\\b|dominant-baseline\\b|display-role\\b|display-model\\b|display\\b|direction\\b|delay\\b|decoration-break\\b|decoration\\b|cursor\\b|cue-before\\b|cue-after\\b|cue\\b|crop\\b|counter-reset\\b|counter-increment\\b|counter\\b|count\\b|content\\b|columns\\b|column-width\\b|column-span\\b|column-rule-width\\b|column-rule-style\\b|column-rule-color\\b|column-rule\\b|column-gap\\b|column-fill\\b|column-count\\b|column-break-before\\b|column-break-after\\b|column\\b|color-profile\\b|color\\b|collapse\\b|clip\\b|clear\\b|character\\b|center\\b|caption-side\\b|break-inside\\b|break-before\\b|break-after\\b|break\\b|box-sizing\\b|box-shadow\\b|box-pack\\b|box-orient\\b|box-ordinal-group\\b|box-lines\\b|box-flex-group\\b|box-flex\\b|box-direction\\b|box-decoration-break\\b|box-align\\b|box\\b|bottom-width\\b|bottom-style\\b|bottom-right-radius\\b|bottom-left-radius\\b|bottom-color\\b|bottom\\b|border-width\\b|border-top-width\\b|border-top-style\\b|border-top-right-radius\\b|border-top-left-radius\\b|border-top-color\\b|border-top\\b|border-style\\b|border-spacing\\b|border-right-width\\b|border-right-style\\b|border-right-color\\b|border-right\\b|border-radius\\b|border-length\\b|border-left-width\\b|border-left-style\\b|border-left-color\\b|border-left\\b|border-image\\b|border-color\\b|border-collapse\\b|border-bottom-width\\b|border-bottom-style\\b|border-bottom-right-radius\\b|border-bottom-left-radius\\b|border-bottom-color\\b|border-bottom\\b|border\\b|bookmark-target\\b|bookmark-level\\b|bookmark-label\\b|bookmark\\b|binding\\b|bidi\\b|big\\b|before\\b|baseline-shift\\b|baseline\\b|balance\\b|background-size\\b|background-repeat\\b|background-position\\b|background-origin\\b|background-image\\b|background-color\\b|background-clip\\b|background-break\\b|background-attachment\\b|background\\b|azimuth\\b|attachment\\b|applet\\b|appearance\\b|animation-timing-function\\b|animation-play-state\\b|animation-name\\b|animation-iteration-count\\b|animation-duration\\b|animation-direction\\b|animation-delay\\b|animation\\b|alignment-baseline\\b|alignment-adjust\\b|alignment\\b|align-last\\b|align\\b|after\\b|adjust\\b|acronym\\b)[a-z\\-\\_]+","name":"invalid.illegal"},"property_names":{"patterns":[{"include":"#property_name"},{"include":"#property_name_error"}]},"property_values":{"comment":"Stuff that should only be available on values.","patterns":[{"include":"#string_single"},{"include":"#string_double"},{"include":"#constant_functions"},{"include":"#constant_sass_functions"},{"include":"#constant_hex"},{"include":"#constant_rgb"},{"include":"#constant_rgb_percentage"},{"include":"#constant_important"},{"include":"#constant_default"},{"include":"#constant_optional"},{"include":"#constant_unit"},{"include":"#constant_property_value"},{"include":"#constant_number"},{"include":"#constant_font"},{"include":"#constant_color"},{"include":"#constant_deprecated_color"},{"include":"#constant_mathematical_symbols"}]},"rules":{"patterns":[{"include":"#general"},{"include":"#at_rule_extend"},{"include":"#at_rule_content"},{"include":"#at_rule_include"},{"include":"#at_rule_media"},{"include":"#selectors"}]},"selector_attribute":{"captures":{"1":{"name":"punctuation.definition.entity.scss"},"2":{"name":"entity.other.attribute-name.attribute.scss"},"3":{"name":"punctuation.separator.operator.scss"},"4":{"name":"string.unquoted.attribute-value.scss"},"5":{"name":"string.quoted.double.attribute-value.scss"},"6":{"name":"punctuation.definition.string.begin.scss"},"7":{"name":"punctuation.definition.string.end.scss"}},"match":"(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])","name":"meta.attribute-selector.scss"},"selector_class":{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(\\.)[a-zA-Z0-9_-]+","name":"entity.other.attribute-name.class.css"},"selector_entities":{"match":"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|circle|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|g|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|image|input|ins|kbd|keygen|label|legend|li|line(?!-)|link|main|map|mark|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|path|polygon|polyline|pre|progress|q|rb|rect|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table(?!-)|tbody|td|template|text(?!-)|textarea|textpath|tfoot|th|thead|time|title|tr|track|tspan|tt|u|ul|var|video|wbr)\\b","name":"entity.name.tag.scss"},"selector_custom":{"match":"\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-child()|nth-last-child()|nth-of-type()|nth-last-of-type()|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)","name":"entity.name.tag.custom.scss"},"selector_id":{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(#)[a-zA-Z][a-zA-Z0-9_-]*","name":"entity.other.attribute-name.id.css"},"selector_placeholder":{"captures":{"1":{"name":"punctuation.definition.entity.scss"}},"match":"(\\%)[a-zA-Z0-9_-]+","name":"entity.other.attribute-name.placeholder.scss"},"parent_selector_suffix":{"match":"(?<=&)[a-zA-Z0-9_-]+","name":"entity.other.attribute-name.parent-selector-suffix.scss"},"selector_pseudo_class":{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(:)\\b(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-child()|nth-last-child()|nth-of-type()|nth-last-of-type()|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([-+0-9A-Za-z]*\\))?","name":"entity.other.attribute-name.pseudo-class.css"},"selector_pseudo_element":{"captures":{"1":{"name":"punctuation.definition.entity.css"}},"match":"(:+)((-(moz|webkit|ms)-)?(after|before|first-letter|first-line|selection))\\b","name":"entity.other.attribute-name.pseudo-element.css"},"selectors":{"comment":"Stuff for Selectors.","patterns":[{"include":"#selector_entities"},{"include":"#selector_custom"},{"include":"#selector_class"},{"include":"#selector_id"},{"include":"#selector_pseudo_class"},{"include":"#tag_wildcard"},{"include":"#tag_parent_reference"},{"include":"#selector_pseudo_element"},{"include":"#selector_attribute"},{"include":"#selector_placeholder"},{"include":"#parent_selector_suffix"}]},"string_double":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scss"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.double.scss","patterns":[{"match":"\\\\.","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},"string_single":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scss"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.single.scss","patterns":[{"match":"\\\\.","name":"constant.character.escape.scss"}]},"tag_parent_reference":{"match":"\\&","name":"entity.name.tag.reference.scss"},"tag_wildcard":{"match":"\\*","name":"entity.name.tag.wildcard.scss"},"variable":{"patterns":[{"include":"#variables"},{"include":"#interpolation"}]},"variable_setting":{"begin":"\\s*(\\$[A-Za-z0-9_-]+\\b)\\s*(\\:)\\s*","captures":{"1":{"name":"variable"},"2":{"name":"punctuation"}},"end":"\\s*(?=\\;)","name":"meta.set.variable","patterns":[{"include":"#property_values"},{"include":"#variable"}]},"variables":{"captures":{"1":{"name":"variable.scss"}},"match":"\\s*(\\$[A-Za-z0-9_-]+\\b)\\s*","name":"variable.scss"}}},"/Users/sadick/github/highlights/deps/language-shellscript/grammars/shell-session.cson":{"scopeName":"text.shell-session","name":"Shell Session","fileTypes":["sh-session"],"patterns":[{"match":"^(>)(.*)$","captures":{"1":{"name":"punctuation.separator.prompt.shell-session"},"2":{"name":"source.shell","patterns":[{"include":"source.shell"}]}}},{"match":"(?x) ^ (?: ( (?:\\(\\S+\\))? (?: | sh\\S*? | \\w+\\S+[@:]\\S+(?:\\s+\\S+)? | \\[\\S+[@:][^\\n]+\\].+ ) ) \\s* ) ( [$#%] ) \\s+ (.*) $","captures":{"1":{"name":"entity.other.prompt-prefix.shell-session"},"2":{"name":"punctuation.separator.prompt.shell-session"},"3":{"name":"source.shell","patterns":[{"include":"source.shell"}]}}},{"match":"^.+$","name":"meta.output.shell-session"}]},"/Users/sadick/github/highlights/deps/language-shellscript/grammars/shell-unix-bash.cson":{"fileTypes":["sh","bash","ksh","zsh","zshenv","zshrc","bashrc","bash_profile","bash_login","profile","bash_logout",".textmate_init","npmrc","PKGBUILD"],"firstLineMatch":"^#!.*\\b(bash|zsh|sh|tcsh|ksh)|^#\\s*-\\*-[^*]*mode:\\s*shell-script[^*]*-\\*-","name":"Shell Script","patterns":[{"include":"#comment"},{"include":"#pipeline"},{"include":"#list"},{"include":"#compound-command"},{"include":"#loop"},{"include":"#function-definition"},{"include":"#string"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#heredoc"},{"include":"#herestring"},{"include":"#redirection"},{"include":"#pathname"},{"include":"#keyword"},{"include":"#support"}],"repository":{"case-clause":{"patterns":[{"begin":"(?=\\S)","end":";;","endCaptures":{"0":{"name":"punctuation.terminator.case-clause.shell"}},"name":"meta.scope.case-clause.shell","patterns":[{"begin":"(\\(|(?=\\S))","captures":{"0":{"name":"punctuation.definition.case-pattern.shell"}},"end":"\\)","name":"meta.scope.case-pattern.shell","patterns":[{"match":"\\|","name":"punctuation.separator.pipe-sign.shell"},{"include":"#string"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#pathname"}]},{"begin":"(?<=\\))","end":"(?=;;)","name":"meta.scope.case-clause-body.shell","patterns":[{"include":"$self"}]}]}]},"comment":{"begin":"(^[ \\t]+)?(?<!\\S)(?=#)(?!#\\{)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.shell"}},"end":"(?!\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.shell"}},"end":"\\n","name":"comment.line.number-sign.shell"}]},"compound-command":{"patterns":[{"begin":"(\\[{2})","captures":{"1":{"name":"punctuation.definition.logical-expression.shell"}},"end":"(\\]{2})","name":"meta.scope.logical-expression.shell","patterns":[{"include":"#logical-expression"},{"include":"$self"}]},{"begin":"(\\({2})","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"(\\){2})","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.other.math.shell","patterns":[{"include":"#math"}]},{"begin":"(\\()","captures":{"1":{"name":"punctuation.definition.subshell.shell"}},"end":"(\\))","name":"meta.scope.subshell.shell","patterns":[{"include":"$self"}]},{"begin":"(?<=\\s|^)(\\{)(?=\\s|$)","captures":{"1":{"name":"punctuation.definition.group.shell"}},"end":"(?<=^|;)\\s*(\\})","name":"meta.scope.group.shell","patterns":[{"include":"$self"}]}]},"function-definition":{"patterns":[{"begin":"\\b(function)\\s+([^\\s\\\\]+)(?:\\s*(\\(\\)))?","beginCaptures":{"1":{"name":"storage.type.function.shell"},"2":{"name":"entity.name.function.shell"},"3":{"name":"punctuation.definition.arguments.shell"}},"end":";|&|$","endCaptures":{"0":{"name":"punctuation.definition.function.shell"}},"name":"meta.function.shell","patterns":[{"include":"$self"}]},{"begin":"\\b([^\\s\\\\=]+)\\s*(\\(\\))","beginCaptures":{"1":{"name":"entity.name.function.shell"},"2":{"name":"punctuation.definition.arguments.shell"}},"end":";|&|$","endCaptures":{"0":{"name":"punctuation.definition.function.shell"}},"name":"meta.function.shell","patterns":[{"include":"$self"}]}]},"heredoc":{"patterns":[{"begin":"(<<)-(\"|'|)(RUBY)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"source.ruby.embedded.shell","end":"^\\t*(RUBY)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.no-indent.ruby.shell","patterns":[{"include":"source.ruby"}]},{"begin":"(<<)(\"|'|)(RUBY)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"source.ruby.embedded.shell","end":"^(RUBY)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.ruby.shell","patterns":[{"include":"source.ruby"}]},{"begin":"(<<)-(\"|'|)(PYTHON)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"source.python.embedded.shell","end":"^\\t*(PYTHON)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.no-indent.python.shell","patterns":[{"include":"source.python"}]},{"begin":"(<<)(\"|'|)(PYTHON)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"source.python.embedded.shell","end":"^(PYTHON)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.python.shell","patterns":[{"include":"source.python"}]},{"begin":"(<<)-(\"|'|)(APPLESCRIPT)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"source.applescript.embedded.shell","end":"^\\t*(APPLESCRIPT)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.no-indent.applescript.shell","patterns":[{"include":"source.applescript"}]},{"begin":"(<<)(\"|'|)(APPLESCRIPT)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"source.applescript.embedded.shell","end":"^(APPLESCRIPT)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.applescript.shell","patterns":[{"include":"source.applescript"}]},{"begin":"(<<)-(\"|'|)(HTML)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"text.html.embedded.shell","end":"^\\t*(HTML)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.no-indent.html.shell","patterns":[{"include":"text.html.basic"}]},{"begin":"(<<)(\"|'|)(HTML)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"text.html.embedded.shell","end":"^(HTML)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.html.shell","patterns":[{"include":"text.html.basic"}]},{"begin":"(<<)-(\"|'|)(MARKDOWN)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"text.html.markdown.embedded.shell","end":"^\\t*(MARKDOWN)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.no-indent.markdown.shell","patterns":[{"include":"text.html.markdown"}]},{"begin":"(<<)(\"|'|)(MARKDOWN)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"text.html.markdown.embedded.shell","end":"^(MARKDOWN)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.markdown.shell","patterns":[{"include":"text.html.markdown"}]},{"begin":"(<<)-(\"|'|)(TEXTILE)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"text.html.textile.embedded.shell","end":"^\\t*(TEXTILE)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.no-indent.textile.shell","patterns":[{"include":"text.html.textile"}]},{"begin":"(<<)(\"|'|)(TEXTILE)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"contentName":"text.html.textile.embedded.shell","end":"^(TEXTILE)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.textile.shell","patterns":[{"include":"text.html.textile"}]},{"begin":"(<<)-(\"|'|)\\\\?(\\w+)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"end":"^\\t*(\\3)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.no-indent.shell"},{"begin":"(<<)(\"|'|)\\\\?(\\w+)\\2","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"captures":{"0":{"name":"punctuation.definition.string.shell"}},"end":"^(\\3)\\b","endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}},"name":"string.unquoted.heredoc.shell"}]},"herestring":{"patterns":[{"captures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.quoted.single.herestring.shell"},"3":{"name":"punctuation.definition.string.begin.shell"},"4":{"name":"punctuation.definition.string.end.shell"}},"match":"(<<<)((')[^']*('))","name":"meta.herestring.shell"},{"captures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.quoted.double.herestring.shell"},"3":{"name":"punctuation.definition.string.begin.shell"},"6":{"name":"punctuation.definition.string.end.shell"}},"match":"(<<<)((\")(\\\\(\"|\\\\)|[^\"])*(\"))","name":"meta.herestring.shell"},{"captures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.unquoted.herestring.shell"}},"match":"(<<<)(([^\\s\\\\]|\\\\.)+)","name":"meta.herestring.shell"}]},"interpolation":{"patterns":[{"begin":"\\$\\({2}","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"\\){2}","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.other.math.shell","patterns":[{"include":"#math"}]},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.interpolated.backtick.shell","patterns":[{"match":"\\\\[`\\\\$]","name":"constant.character.escape.shell"},{"include":"$self"}]},{"begin":"\\$\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.interpolated.dollar.shell","patterns":[{"include":"$self"}]}]},"keyword":{"patterns":[{"match":"\\b(?:if|then|else|elif|fi|for|in|do|done|select|case|continue|esac|while|until|return)\\b","name":"keyword.control.shell"},{"match":"(?<![-/])\\b(?:export|declare|typeset|local|readonly)\\b","name":"storage.modifier.shell"}]},"list":{"patterns":[{"match":";|&&|&|\\|\\|","name":"keyword.operator.list.shell"}]},"logical-expression":{"patterns":[{"comment":"do we want a special rule for ( expr )?","match":"=[=~]?|!=?|<|>|&&|\\|\\|","name":"keyword.operator.logical.shell"},{"match":"(?<!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])","name":"keyword.operator.logical.shell"}]},"loop":{"patterns":[{"begin":"\\b(for)\\s+(?=\\({2})","captures":{"1":{"name":"keyword.control.shell"}},"end":"\\b(done)\\b","name":"meta.scope.for-loop.shell","patterns":[{"include":"$self"}]},{"begin":"\\b(for)\\s+((?:[^\\s\\\\]|\\\\.)+)\\b","beginCaptures":{"1":{"name":"keyword.control.shell"},"2":{"name":"variable.other.loop.shell"}},"end":"\\b(done)\\b","endCaptures":{"1":{"name":"keyword.control.shell"}},"name":"meta.scope.for-in-loop.shell","patterns":[{"include":"$self"}]},{"begin":"\\b(while|until)\\b","captures":{"1":{"name":"keyword.control.shell"}},"end":"\\b(done)\\b","name":"meta.scope.while-loop.shell","patterns":[{"include":"$self"}]},{"begin":"\\b(select)\\s+((?:[^\\s\\\\]|\\\\.)+)\\b","beginCaptures":{"1":{"name":"keyword.control.shell"},"2":{"name":"variable.other.loop.shell"}},"end":"\\b(done)\\b","endCaptures":{"1":{"name":"keyword.control.shell"}},"name":"meta.scope.select-block.shell","patterns":[{"include":"$self"}]},{"begin":"\\b(case)\\b","captures":{"1":{"name":"keyword.control.shell"}},"end":"\\b(esac)\\b","name":"meta.scope.case-block.shell","patterns":[{"begin":"\\b(?:in)\\b","beginCaptures":{"1":{"name":"keyword.control.shell"}},"end":"(?=\\b(?:esac)\\b)","name":"meta.scope.case-body.shell","patterns":[{"include":"#comment"},{"include":"#case-clause"},{"include":"$self"}]},{"include":"$self"}]},{"begin":"\\b(if)\\b","captures":{"1":{"name":"keyword.control.shell"}},"end":"\\b(fi)\\b","name":"meta.scope.if-block.shell","patterns":[{"include":"$self"}]}]},"math":{"patterns":[{"include":"#variable"},{"match":"\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=","name":"keyword.operator.arithmetic.shell"},{"match":"0[xX]\\h+","name":"constant.numeric.hex.shell"},{"match":"0\\d+","name":"constant.numeric.octal.shell"},{"match":"\\d{1,2}#[0-9a-zA-Z@_]+","name":"constant.numeric.other.shell"},{"match":"\\d+","name":"constant.numeric.integer.shell"}]},"pathname":{"patterns":[{"match":"(?<=\\s|:|=|^)~","name":"keyword.operator.tilde.shell"},{"match":"\\*|\\?","name":"keyword.operator.glob.shell"},{"begin":"([?*+@!])(\\()","beginCaptures":{"1":{"name":"keyword.operator.extglob.shell"},"2":{"name":"punctuation.definition.extglob.shell"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.extglob.shell"}},"name":"meta.structure.extglob.shell","patterns":[{"include":"$self"}]}]},"pipeline":{"patterns":[{"match":"\\b(time)\\b","name":"keyword.other.shell"},{"match":"[|!]","name":"keyword.operator.pipe.shell"}]},"redirection":{"patterns":[{"begin":"[><]\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.interpolated.process-substitution.shell","patterns":[{"include":"$self"}]},{"comment":"valid: &>word >&word >word [n]>&[n] [n]<word [n]>word [n]>>word [n]<&word (last one is duplicate)","match":"&>|\\d*>&\\d*|\\d*(>>|>|<)|\\d*<&|\\d*<>","name":"keyword.operator.redirect.shell"}]},"string":{"patterns":[{"match":"\\\\.","name":"constant.character.escape.shell"},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.quoted.single.shell"},{"begin":"\\$?\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.quoted.double.shell","patterns":[{"match":"\\\\[\\$`\"\\\\\\n]","name":"constant.character.escape.shell"},{"include":"#variable"},{"include":"#interpolation"}]},{"begin":"\\$'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.quoted.single.dollar.shell","patterns":[{"match":"\\\\(a|b|e|f|n|r|t|v|\\\\|')","name":"constant.character.escape.ansi-c.shell"},{"match":"\\\\[0-9]{3}","name":"constant.character.escape.octal.shell"},{"match":"\\\\x[0-9a-fA-F]{2}","name":"constant.character.escape.hex.shell"},{"match":"\\\\c.","name":"constant.character.escape.control-char.shell"}]}]},"support":{"patterns":[{"match":"(?<=^|\\s)(?::|\\.)(?=\\s|;|&|$)","name":"support.function.builtin.shell"},{"match":"(?<![-/])\\b(?:alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|dirs|disown|echo|enable|eval|exec|exit|false|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|times|trap|true|type|ulimit|umask|unalias|unset|wait)\\b","name":"support.function.builtin.shell"}]},"variable":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.shell"}},"match":"(\\$)[a-zA-Z_][a-zA-Z0-9_]*","name":"variable.other.normal.shell"},{"captures":{"1":{"name":"punctuation.definition.variable.shell"}},"match":"(\\$)[-*@#?$!0_]","name":"variable.other.special.shell"},{"captures":{"1":{"name":"punctuation.definition.variable.shell"}},"match":"(\\$)[1-9]","name":"variable.other.positional.shell"},{"begin":"\\$\\{","captures":{"0":{"name":"punctuation.definition.variable.shell"}},"end":"\\}","name":"variable.other.bracket.shell","patterns":[{"match":"!|:[-=?]?|\\*|@|#{1,2}|%{1,2}|/","name":"keyword.operator.expansion.shell"},{"captures":{"1":{"name":"punctuation.section.array.shell"},"3":{"name":"punctuation.section.array.shell"}},"match":"(\\[)([^\\]]+)(\\])"}]}]}},"scopeName":"source.shell"},"/Users/sadick/github/highlights/deps/language-sql/grammars/sql.cson":{"scopeName":"source.sql","name":"SQL","fileTypes":["ddl","dml","pgsql","sql"],"patterns":[{"include":"#comments"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.sql"},"5":{"name":"entity.name.function.sql"}},"match":"(?i:^\\s*(create(?:\\s+or\\s+replace)?)\\s+(aggregate|conversion|database|domain|function|group|(unique\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)(['\"`]?)(\\w+)\\4","name":"meta.create.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.sql"}},"match":"(?i:^\\s*(drop)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))","name":"meta.drop.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.table.sql"},"3":{"name":"entity.name.function.sql"},"4":{"name":"keyword.other.cascade.sql"}},"match":"(?i:\\s*(drop)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)","name":"meta.drop.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.table.sql"},"3":{"name":"entity.name.function.sql"},"4":{"name":"keyword.other.cascade.sql"}},"match":"(?i:\\s*(truncate)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)","name":"meta.truncate.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.table.sql"}},"match":"(?i:^\\s*(alter)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)","name":"meta.alter.sql"},{"captures":{"1":{"name":"storage.type.sql"},"2":{"name":"storage.type.sql"},"3":{"name":"constant.numeric.sql"},"4":{"name":"storage.type.sql"},"5":{"name":"constant.numeric.sql"},"6":{"name":"storage.type.sql"},"7":{"name":"constant.numeric.sql"},"8":{"name":"constant.numeric.sql"},"9":{"name":"storage.type.sql"},"10":{"name":"constant.numeric.sql"},"11":{"name":"storage.type.sql"},"12":{"name":"storage.type.sql"},"13":{"name":"storage.type.sql"},"14":{"name":"constant.numeric.sql"},"15":{"name":"storage.type.sql"}},"match":"(?xi)\n\n\t\t\t\t# normal stuff, capture 1\n\t\t\t\t \\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\b\n\n\t\t\t\t# numeric suffix, capture 2 + 3i\n\t\t\t\t|\\b(bit\\svarying|character\\s(?:varying)?|tinyint|var\\schar|float|interval)\\((\\d+)\\)\n\n\t\t\t\t# optional numeric suffix, capture 4 + 5i\n\t\t\t\t|\\b(char|number|varchar\\d?)\\b(?:\\((\\d+)\\))?\n\n\t\t\t\t# special case, capture 6 + 7i + 8i\n\t\t\t\t|\\b(numeric|decimal)\\b(?:\\((\\d+),(\\d+)\\))?\n\n\t\t\t\t# special case, captures 9, 10i, 11\n\t\t\t\t|\\b(times)(?:\\((\\d+)\\))(\\swithoutstimeszone\\b)?\n\n\t\t\t\t# special case, captures 12, 13, 14i, 15\n\t\t\t\t|\\b(timestamp)(?:(s)\\((\\d+)\\)(\\swithoutstimeszone\\b)?)?\n\n\t\t\t"},{"match":"(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|check|constraint)\\b)","name":"storage.modifier.sql"},{"match":"\\b\\d+\\b","name":"constant.numeric.sql"},{"match":"(?i:\\b(select(\\s+distinct)?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\sby|or|like|and|union(\\s+all)?|having|order\\sby|limit|offset|(inner|cross)\\s+join|join|straight_join|(left|right)(\\s+outer)?\\s+join|natural(\\s+(left|right)(\\s+outer)?)?\\s+join)\\b)","name":"keyword.other.DML.sql"},{"match":"(?i:\\b(on|((is\\s+)?not\\s+)?null)\\b)","name":"keyword.other.DDL.create.II.sql"},{"match":"(?i:\\bvalues\\b)","name":"keyword.other.DML.II.sql"},{"match":"(?i:\\b(begin(\\s+work)?|start\\s+transaction|commit(\\s+work)?|rollback(\\s+work)?)\\b)","name":"keyword.other.LUW.sql"},{"match":"(?i:\\b(grant(\\swith\\sgrant\\soption)?|revoke)\\b)","name":"keyword.other.authorization.sql"},{"match":"(?i:(\\bnot\\s+)?\\bin\\b)","name":"keyword.other.data-integrity.sql"},{"match":"(?i:^\\s*(comment\\s+on\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\s+.*?\\s+(is)\\s+)","name":"keyword.other.object-comments.sql"},{"match":"(?i)\\bAS\\b","name":"keyword.other.alias.sql"},{"match":"(?i)\\b(DESC|ASC)\\b","name":"keyword.other.order.sql"},{"match":"(?i)\\b(case|when|then|else|end)\\b","name":"keyword.other.case.sql"},{"match":"\\*","name":"keyword.operator.star.sql"},{"match":"[!<>]?=|<>|<|>","name":"keyword.operator.comparison.sql"},{"match":"-|\\+|/","name":"keyword.operator.math.sql"},{"match":"\\|\\|","name":"keyword.operator.concatenator.sql"},{"comment":"List of SQL99 built-in functions from http://www.oreilly.com/catalog/sqlnut/chapter/ch04.html","match":"(?i)\\b(CURRENT_(DATE|TIME(STAMP)?|USER)|(SESSION|SYSTEM)_USER)\\b","name":"support.function.scalar.sql"},{"comment":"List of SQL99 built-in functions from http://www.oreilly.com/catalog/sqlnut/chapter/ch04.html","match":"(?i)\\b(AVG|COUNT|MIN|MAX|SUM)(?=\\s*\\()","name":"support.function.aggregate.sql"},{"match":"(?i)\\b(CONCATENATE|CONVERT|LOWER|SUBSTRING|TRANSLATE|TRIM|UPPER)\\b","name":"support.function.string.sql"},{"captures":{"1":{"name":"constant.other.database-name.sql"},"2":{"name":"constant.other.table-name.sql"}},"match":"(\\w+?)\\.(\\w+)"},{"include":"#strings"},{"include":"#regexps"}],"repository":{"comments":{"patterns":[{"begin":"(^[ \\t]+)?(?=--)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.sql"}},"end":"(?!\\G)","patterns":[{"begin":"--","beginCaptures":{"0":{"name":"punctuation.definition.comment.sql"}},"end":"\\n","name":"comment.line.double-dash.sql"}]},{"begin":"(^[ \\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.sql"}},"end":"(?!\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.sql"}},"end":"\\n","name":"comment.line.number-sign.sql"}]},{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.sql"}},"end":"\\*/","name":"comment.block.c"}]},"regexps":{"patterns":[{"begin":"/(?=\\S.*/)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"/","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.regexp.sql","patterns":[{"include":"#string_interpolation"},{"match":"\\\\/","name":"constant.character.escape.slash.sql"}]},{"begin":"%r\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"comment":"We should probably handle nested bracket pairs!?! -- Allan","end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.regexp.modr.sql","patterns":[{"include":"#string_interpolation"}]}]},"string_escape":{"match":"\\\\.","name":"constant.character.escape.sql"},"string_interpolation":{"captures":{"1":{"name":"punctuation.definition.string.end.sql"}},"match":"(#\\{)([^\\}]*)(\\})","name":"string.interpolated.sql"},"strings":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.string.begin.sql"},"3":{"name":"punctuation.definition.string.end.sql"}},"comment":"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.","match":"(')[^'\\\\]*(')","name":"string.quoted.single.sql"},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.quoted.single.sql","patterns":[{"include":"#string_escape"}]},{"captures":{"1":{"name":"punctuation.definition.string.begin.sql"},"3":{"name":"punctuation.definition.string.end.sql"}},"comment":"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.","match":"(`)[^`\\\\]*(`)","name":"string.quoted.other.backtick.sql"},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.quoted.other.backtick.sql","patterns":[{"include":"#string_escape"}]},{"captures":{"1":{"name":"punctuation.definition.string.begin.sql"},"3":{"name":"punctuation.definition.string.end.sql"}},"comment":"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.","match":"(\")[^\"#]*(\")","name":"string.quoted.double.sql"},{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.quoted.double.sql","patterns":[{"include":"#string_interpolation"}]},{"begin":"%\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.other.quoted.brackets.sql","patterns":[{"include":"#string_interpolation"}]}]}}},"/Users/sadick/github/highlights/deps/language-text/grammars/plain text.cson":{"fileTypes":["txt"],"name":"Plain Text","patterns":[{"captures":{"1":{"name":"punctuation.definition.item.text"}},"match":"^\\s*(•).*$\\n?","name":"meta.bullet-point.strong.text"},{"captures":{"1":{"name":"punctuation.definition.item.text"}},"match":"^\\s*(·).*$\\n?","name":"meta.bullet-point.light.text"},{"captures":{"1":{"name":"punctuation.definition.item.text"}},"match":"^\\s*(\\*).*$\\n?","name":"meta.bullet-point.star.text"},{"begin":"^([ \\t]*)(?=\\S)","contentName":"meta.paragraph.text","end":"^(?!\\1(?=\\S))"}],"scopeName":"text.plain"},"/Users/sadick/github/highlights/deps/language-todo/grammars/todo.cson":{"scopeName":"text.todo","name":"TODO","injectionSelector":"comment, text.plain","patterns":[{"match":"(?<!\\w)@?(TODO|FIXME|CHANGED|XXX|IDEA)\\b","name":"storage.type.class.${1:/downcase}"},{"captures":{"1":{"name":"markup.underline.link.radar"}},"match":"<(ra?dar:/(?:/problems?|)/(?:[&0-9]+))>","name":"storage.type.class.radar"}]},"/Users/sadick/github/highlights/deps/language-toml/grammars/toml.cson":{"name":"TOML","scopeName":"source.toml","fileTypes":["toml"],"patterns":[{"match":"(?:^\\s*)(\\[\\[([^\\]]+)\\]\\])","captures":{"2":{"name":"variable.keygroup.array.toml"}},"name":"keygroup.toml"},{"match":"(?:^\\s*)(\\[([^\\]]+)\\])","captures":{"2":{"name":"variable.keygroup.toml"}},"name":"keygroup.toml"},{"match":"(?:^\\s*)(\\S+)\\s*=","captures":{"1":{"name":"entity.key.toml"}},"name":"key.toml"},{"begin":"\"","beginCaptures":{"0":{"name":"string.begin.toml"}},"end":"\"","endCaptures":{"0":{"name":"string.end.toml"}},"name":"string.toml","patterns":[{"match":"\\\\[nt0r\"\\\\]","name":"constant.character.escape.toml"}]},{"match":"#.*$","name":"comment.toml"},{"match":"true","name":"constant.language.boolean.true.toml"},{"match":"false","name":"constant.language.boolean.false.toml"},{"match":"\\d{4}-\\d{2}-\\d{2}(T)\\d{2}:\\d{2}:\\d{2}(Z)","name":"support.date.toml"},{"match":"-?\\d+(\\.?\\d+)?","name":"constant.numeric.toml"}]},"/Users/sadick/github/highlights/deps/language-typescript/grammars/TypeScript.json":{"information_for_contributors":["This file has been converted from https://github.com/Microsoft/TypeScript-TmLanguage/blob/master/TypeScript.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],"version":"https://github.com/Microsoft/TypeScript-TmLanguage/commit/f3a2069b99f45c34ac5cc7dc5f1dcb4e81486ab9","name":"TypeScript","scopeName":"source.ts","fileTypes":["ts"],"uuid":"ef98eb90-bf9b-11e4-bb52-0800200c9a66","patterns":[{"include":"#directives"},{"include":"#statements"},{"name":"comment.line.shebang.ts","match":"\\A(#!).*(?=$)","captures":{"1":{"name":"punctuation.definition.comment.ts"}}}],"repository":{"statements":{"patterns":[{"include":"#string"},{"include":"#template"},{"include":"#comment"},{"include":"#declaration"},{"include":"#control-statement"},{"include":"#after-operator-block-as-object-literal"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-semicolon"}]},"declaration":{"patterns":[{"include":"#decorator"},{"include":"#var-expr"},{"include":"#function-declaration"},{"include":"#class-declaration"},{"include":"#interface-declaration"},{"include":"#enum-declaration"},{"include":"#namespace-declaration"},{"include":"#type-alias-declaration"},{"include":"#import-equals-declaration"},{"include":"#import-declaration"},{"include":"#export-declaration"}]},"control-statement":{"patterns":[{"include":"#switch-statement"},{"include":"#for-loop"},{"name":"keyword.control.trycatch.ts","match":"(?<!\\.|\\$)\\b(catch|finally|throw|try)\\b(?!\\$|\\.)"},{"name":"keyword.control.loop.ts","match":"(?<!\\.|\\$)\\b(break|continue|do|goto|while)\\b(?!\\$|\\.)"},{"name":"keyword.control.flow.ts","match":"(?<!\\.|\\$)\\b(return)\\b(?!\\$|\\.)"},{"name":"keyword.control.switch.ts","match":"(?<!\\.|\\$)\\b(case|default|switch)\\b(?!\\$|\\.)"},{"name":"keyword.control.conditional.ts","match":"(?<!\\.|\\$)\\b(else|if)\\b(?!\\$|\\.)"},{"name":"keyword.control.with.ts","match":"(?<!\\.|\\$)\\b(with)\\b(?!\\$|\\.)"},{"name":"keyword.other.debugger.ts","match":"(?<!\\.|\\$)\\b(debugger)\\b(?!\\$|\\.)"},{"name":"storage.modifier.ts","match":"(?<!\\.|\\$)\\b(declare)\\b(?!\\$|\\.)"}]},"expression":{"patterns":[{"include":"#string"},{"include":"#regex"},{"include":"#template"},{"include":"#comment"},{"include":"#function-expression"},{"include":"#class-expression"},{"include":"#arrow-function"},{"include":"#cast"},{"include":"#ternary-expression"},{"include":"#new-expr"},{"include":"#object-literal"},{"include":"#expression-operators"},{"include":"#function-call"},{"include":"#literal"},{"include":"#support-objects"},{"include":"#identifiers"},{"include":"#paren-expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-accessor"}]},"decorator":{"name":"meta.decorator.ts","begin":"(?<!\\.|\\$)\\@","beginCaptures":{"0":{"name":"punctuation.decorator.ts"}},"end":"(?=\\s)","patterns":[{"include":"#expression"}]},"var-expr":{"name":"meta.var.expr.ts","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(var|let|const(?!\\s+enum\\b))\\b(?!\\$|\\.)","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"storage.type.ts"}},"end":"(?=$|^|;|}|(\\s+(of|in)\\s+))","patterns":[{"include":"#destructuring-variable"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#comment"},{"begin":"(,)\\s*(?!\\S)","beginCaptures":{"1":{"name":"punctuation.separator.comma.ts"}},"end":"(?<!,)((?==|;|}|(\\s+(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$))","patterns":[{"include":"#comment"},{"include":"#destructuring-variable"},{"include":"#var-single-variable"},{"include":"#punctuation-comma"}]},{"include":"#punctuation-comma"}]},"var-single-variable":{"patterns":[{"name":"meta.var-single-variable.expr.ts","begin":"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n  (<) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=>)\n    ))\n  ))\n)))","beginCaptures":{"1":{"name":"meta.definition.variable.ts entity.name.function.ts"}},"end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#var-single-variable-type-annotation"}]},{"name":"meta.var-single-variable.expr.ts","begin":"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])","beginCaptures":{"1":{"name":"meta.definition.variable.ts variable.other.constant.ts"}},"end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#var-single-variable-type-annotation"}]},{"name":"meta.var-single-variable.expr.ts","begin":"([_$[:alpha:]][_$[:alnum:]]*)","beginCaptures":{"1":{"name":"meta.definition.variable.ts variable.other.readwrite.ts"}},"end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{"patterns":[{"include":"#type-annotation"},{"include":"#string"},{"include":"#comment"}]},"destructuring-variable":{"patterns":[{"name":"meta.object-binding-pattern-variable.ts","begin":"(?<!=|:|of|in)\\s*(?=\\{)","end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#object-binding-pattern"},{"include":"#type-annotation"},{"include":"#comment"}]},{"name":"meta.array-binding-pattern-variable.ts","begin":"(?<!=|:|of|in)\\s*(?=\\[)","end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#array-binding-pattern"},{"include":"#type-annotation"},{"include":"#comment"}]}]},"object-binding-element":{"patterns":[{"include":"#comment"},{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))","end":"(?=,|\\})","patterns":[{"include":"#object-binding-element-propertyName"},{"include":"#binding-element"}]},{"include":"#object-binding-pattern"},{"include":"#destructuring-variable-rest"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"}]},"object-binding-element-propertyName":{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))","end":"(:)","endCaptures":{"0":{"name":"punctuation.destructuring.ts"}},"patterns":[{"include":"#string"},{"include":"#array-literal"},{"name":"variable.object.property.ts","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},"binding-element":{"patterns":[{"include":"#comment"},{"include":"#object-binding-pattern"},{"include":"#array-binding-pattern"},{"include":"#destructuring-variable-rest"},{"include":"#variable-initializer"}]},"destructuring-variable-rest":{"match":"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"keyword.operator.rest.ts"},"2":{"name":"meta.definition.variable.ts variable.other.readwrite.ts"}}},"object-binding-pattern":{"begin":"(?:(\\.\\.\\.)\\s*)?(\\{)","beginCaptures":{"1":{"name":"keyword.operator.rest.ts"},"2":{"name":"punctuation.definition.binding-pattern.object.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.object.ts"}},"patterns":[{"include":"#object-binding-element"}]},"array-binding-pattern":{"begin":"(?:(\\.\\.\\.)\\s*)?(\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.ts"},"2":{"name":"punctuation.definition.binding-pattern.array.ts"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.ts"}},"patterns":[{"include":"#binding-element"},{"include":"#punctuation-comma"}]},"parameter-name":{"patterns":[{"match":"\\s*\\b(public|protected|private|readonly)(?=\\s+(public|protected|private|readonly)\\s+)","captures":{"1":{"name":"storage.modifier.ts"}}},{"match":"(?x)(?:\\s*\\b(public|private|protected|readonly)\\s+)?(\\.\\.\\.)?\\s*(?<!=|:)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n  (<) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=>)\n    ))\n  ))\n)))","captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"keyword.operator.rest.ts"},"3":{"name":"entity.name.function.ts variable.language.this.ts"},"4":{"name":"entity.name.function.ts"},"5":{"name":"keyword.operator.optional.ts"}}},{"match":"(?:\\s*\\b(public|private|protected|readonly)\\s+)?(\\.\\.\\.)?\\s*(?<!=|:)(?:((?<!\\.|\\$)\\bthis\\b(?!\\.|\\$))|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)","captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"keyword.operator.rest.ts"},"3":{"name":"variable.parameter.ts variable.language.this.ts"},"4":{"name":"variable.parameter.ts"},"5":{"name":"keyword.operator.optional.ts"}}}]},"destructuring-parameter":{"patterns":[{"name":"meta.parameter.object-binding-pattern.ts","begin":"(?<!=|:)\\s*(\\{)","beginCaptures":{"1":{"name":"punctuation.definition.binding-pattern.object.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.object.ts"}},"patterns":[{"include":"#parameter-object-binding-element"}]},{"name":"meta.paramter.array-binding-pattern.ts","begin":"(?<!=|:)\\s*(\\[)","beginCaptures":{"1":{"name":"punctuation.definition.binding-pattern.array.ts"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.ts"}},"patterns":[{"include":"#parameter-binding-element"},{"include":"#punctuation-comma"}]}]},"parameter-object-binding-element":{"patterns":[{"include":"#comment"},{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))","end":"(?=,|\\})","patterns":[{"include":"#object-binding-element-propertyName"},{"include":"#parameter-binding-element"}]},{"include":"#parameter-object-binding-pattern"},{"include":"#destructuring-parameter-rest"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"}]},"parameter-binding-element":{"patterns":[{"include":"#comment"},{"include":"#parameter-object-binding-pattern"},{"include":"#parameter-array-binding-pattern"},{"include":"#destructuring-parameter-rest"},{"include":"#variable-initializer"}]},"destructuring-parameter-rest":{"match":"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"keyword.operator.rest.ts"},"2":{"name":"variable.parameter.ts"}}},"parameter-object-binding-pattern":{"begin":"(?:(\\.\\.\\.)\\s*)?(\\{)","beginCaptures":{"1":{"name":"keyword.operator.rest.ts"},"2":{"name":"punctuation.definition.binding-pattern.object.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.object.ts"}},"patterns":[{"include":"#parameter-object-binding-element"}]},"parameter-array-binding-pattern":{"begin":"(?:(\\.\\.\\.)\\s*)?(\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.ts"},"2":{"name":"punctuation.definition.binding-pattern.array.ts"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.ts"}},"patterns":[{"include":"#parameter-binding-element"},{"include":"#punctuation-comma"}]},"field-declaration":{"name":"meta.field.declaration.ts","begin":"(?<!\\()(?:(?<!\\.|\\$)\\b(readonly)\\s+)?(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\?\\s*)?(=|:))","beginCaptures":{"1":{"name":"storage.modifier.ts"}},"end":"(?=\\}|;|,|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\?\\s*)?(=|:))))|(?<=\\})","patterns":[{"include":"#variable-initializer"},{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\?\\s*)?(=|:))","end":"(?=[};,=]|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\?\\s*)?(=|:))))|(?<=\\})","patterns":[{"include":"#type-annotation"},{"include":"#string"},{"include":"#array-literal"},{"include":"#comment"},{"name":"meta.definition.property.ts entity.name.function.ts","match":"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=(\\?\\s*)?\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n  (<) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=>)\n    ))\n  ))\n)))"},{"name":"meta.definition.property.ts variable.object.property.ts","match":"[_$[:alpha:]][_$[:alnum:]]*"},{"name":"keyword.operator.optional.ts","match":"\\?"}]}]},"variable-initializer":{"patterns":[{"begin":"(?<!=|!)(=)(?!=)(?=\\s*\\S)","beginCaptures":{"1":{"name":"keyword.operator.assignment.ts"}},"end":"(?=$|^|[,);}\\]])","patterns":[{"include":"#expression"}]},{"begin":"(?<!=|!)(=)(?!=)","beginCaptures":{"1":{"name":"keyword.operator.assignment.ts"}},"end":"(?=[,);}\\]])|(?=^\\s*$)|(?<=\\S)(?<!=)(?=\\s*$)","patterns":[{"include":"#expression"}]}]},"function-declaration":{"name":"meta.function.ts","begin":"(?<!\\.|\\$)\\b(?:(export)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"storage.modifier.async.ts"},"3":{"name":"storage.type.function.ts"},"4":{"name":"keyword.generator.asterisk.ts"},"5":{"name":"meta.definition.function.ts entity.name.function.ts"}},"end":"(?=$|^|;)|(?<=\\})","patterns":[{"include":"#function-body"}]},"function-expression":{"name":"meta.function.expression.ts","begin":"(?<!\\.|\\$)\\b(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*","beginCaptures":{"1":{"name":"storage.modifier.async.ts"},"2":{"name":"storage.type.function.ts"},"3":{"name":"keyword.generator.asterisk.ts"},"4":{"name":"meta.definition.function.ts entity.name.function.ts"}},"end":"(?<=\\})","patterns":[{"include":"#function-body"}]},"function-body":{"patterns":[{"include":"#comment"},{"include":"#type-parameters"},{"include":"#function-parameters"},{"include":"#return-type"},{"include":"#decl-block"}]},"method-declaration":{"patterns":[{"name":"meta.method.declaration.ts","begin":"(?<!\\.|\\$)(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)(?:(\\*)\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*[\\(\\<])","beginCaptures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"storage.modifier.async.ts"},"4":{"name":"storage.type.property.ts"},"5":{"name":"keyword.generator.asterisk.ts"}},"end":"(?=\\}|;|,|$)|(?<=\\})","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]},{"name":"meta.method.declaration.ts","begin":"(?<!\\.|\\$)(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\b(?:(new)|(constructor))\\b(?!\\$|\\.|:))|(?:(\\*)\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))?\\s*[\\(\\<]))","beginCaptures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"storage.modifier.async.ts"},"4":{"name":"keyword.operator.new.ts"},"5":{"name":"storage.type.ts"},"6":{"name":"keyword.generator.asterisk.ts"}},"end":"(?=\\}|;|,|$)|(?<=\\})","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]}]},"object-literal-method-declaration":{"name":"meta.method.declaration.ts","begin":"(?<!\\.|\\$)(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*[\\(\\<])","beginCaptures":{"1":{"name":"storage.modifier.async.ts"},"2":{"name":"storage.type.property.ts"},"3":{"name":"keyword.generator.asterisk.ts"}},"end":"(?=\\}|;|,)|(?<=\\})","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"},{"begin":"(?<!\\.|\\$)(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*[\\(\\<])","beginCaptures":{"1":{"name":"storage.modifier.async.ts"},"2":{"name":"storage.type.property.ts"},"3":{"name":"keyword.generator.asterisk.ts"}},"end":"(?=\\(|\\<)","patterns":[{"include":"#method-declaration-name"}]}]},"method-declaration-name":{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])","end":"(?=\\(|\\<)","patterns":[{"include":"#string"},{"include":"#array-literal"},{"name":"meta.definition.method.ts entity.name.function.ts","match":"[_$[:alpha:]][_$[:alnum:]]*"},{"name":"keyword.operator.optional.ts","match":"\\?"}]},"arrow-function":{"patterns":[{"name":"meta.arrow.ts","match":"(?:(?<!\\.|\\$)(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)","captures":{"1":{"name":"storage.modifier.async.ts"},"2":{"name":"variable.parameter.ts"}}},{"name":"meta.arrow.ts","begin":"(?x) (?:\n  (?<!\\.|\\$)(\\basync)\n)? ((?<![})!\\]])\\s*\n  (?=\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  )\n)","beginCaptures":{"1":{"name":"storage.modifier.async.ts"}},"end":"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))","patterns":[{"include":"#comment"},{"include":"#type-parameters"},{"include":"#function-parameters"},{"include":"#arrow-return-type"}]},{"name":"meta.arrow.ts","begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.ts"}},"end":"(?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S))","patterns":[{"include":"#decl-block"},{"include":"#expression"}]}]},"indexer-declaration":{"name":"meta.indexer.declaration.ts","begin":"(?:(?<!\\.|\\$)\\b(readonly)\\s*)?(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)","beginCaptures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"meta.brace.square.ts"},"3":{"name":"variable.parameter.ts"}},"end":"(\\])\\s*(\\?\\s*)?|$","endCaptures":{"1":{"name":"meta.brace.square.ts"},"2":{"name":"keyword.operator.optional.ts"}},"patterns":[{"include":"#type-annotation"}]},"indexer-mapped-type-declaration":{"name":"meta.indexer.mappedtype.declaration.ts","begin":"(?:(?<!\\.|\\$)\\b(readonly)\\s*)?(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+","beginCaptures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"meta.brace.square.ts"},"3":{"name":"entity.name.type.ts"},"4":{"name":"keyword.operator.expression.in.ts"}},"end":"(\\])\\s*(\\?\\s*)?|$","endCaptures":{"1":{"name":"meta.brace.square.ts"},"2":{"name":"keyword.operator.optional.ts"}},"patterns":[{"include":"#type"}]},"function-parameters":{"name":"meta.parameters.ts","begin":"\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ts"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ts"}},"patterns":[{"include":"#comment"},{"include":"#decorator"},{"include":"#destructuring-parameter"},{"include":"#parameter-name"},{"include":"#type-annotation"},{"include":"#variable-initializer"},{"name":"punctuation.separator.parameter.ts","match":","}]},"class-declaration":{"name":"meta.class.ts","begin":"(?<!\\.|\\$)\\b(?:(export)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"storage.type.class.ts"}},"end":"(?<=\\})","patterns":[{"include":"#class-declaration-or-expression-patterns"}]},"class-expression":{"name":"meta.class.ts","begin":"(?<!\\.|\\$)\\b(class)\\b(?=\\s+|[<{]|/[/*])","beginCaptures":{"1":{"name":"storage.type.class.ts"}},"end":"(?<=\\})","patterns":[{"include":"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{"patterns":[{"include":"#comment"},{"include":"#class-or-interface-heritage"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","captures":{"0":{"name":"entity.name.type.class.ts"}}},{"include":"#type-parameters"},{"include":"#class-or-interface-body"}]},"interface-declaration":{"name":"meta.interface.ts","begin":"(?<!\\.|\\$)\\b(?:(export)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"storage.type.interface.ts"}},"end":"(?<=\\})","patterns":[{"include":"#comment"},{"include":"#class-or-interface-heritage"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","captures":{"0":{"name":"entity.name.type.interface.ts"}}},{"include":"#type-parameters"},{"include":"#class-or-interface-body"}]},"class-or-interface-heritage":{"begin":"(?<!\\.|\\$)(?:\\b(extends|implements)\\b)(?!\\$|\\.)","beginCaptures":{"1":{"name":"storage.modifier.ts"}},"end":"(?=\\{)","endCaptures":{"1":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"#comment"},{"include":"#class-or-interface-heritage"},{"include":"#type-parameters"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\.)(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*([,<{]|extends|implements|//|/\\*))","captures":{"1":{"name":"entity.name.type.module.ts"},"2":{"name":"punctuation.accessor.ts"}}},{"match":"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*([,<{]|extends|implements|//|/\\*))","captures":{"1":{"name":"entity.other.inherited-class.ts"}}},{"include":"#expression"}]},"class-or-interface-body":{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"#string"},{"include":"#comment"},{"include":"#decorator"},{"include":"#method-declaration"},{"include":"#indexer-declaration"},{"include":"#field-declaration"},{"include":"#type-annotation"},{"include":"#variable-initializer"},{"include":"#access-modifier"},{"include":"#property-accessor"},{"include":"#after-operator-block-as-object-literal"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"}]},"access-modifier":{"name":"storage.modifier.ts","match":"(?<!\\.|\\$)\\b(abstract|public|protected|private|readonly|static)\\b(?!\\$|\\.)"},"property-accessor":{"name":"storage.type.property.ts","match":"(?<!\\.|\\$)\\b(get|set)\\b(?!\\$|\\.)"},"enum-declaration":{"name":"meta.enum.declaration.ts","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"storage.type.enum.ts"},"4":{"name":"entity.name.type.enum.ts"}},"end":"(?<=\\})","patterns":[{"include":"#comment"},{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"#comment"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","beginCaptures":{"0":{"name":"variable.other.enummember.ts"}},"end":"(?=,|\\}|$)","patterns":[{"include":"#comment"},{"include":"#variable-initializer"}]},{"begin":"(?=((\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))","end":"(?=,|\\}|$)","patterns":[{"include":"#string"},{"include":"#array-literal"},{"include":"#comment"},{"include":"#variable-initializer"}]},{"include":"#punctuation-comma"}]}]},"namespace-declaration":{"name":"meta.namespace.declaration.ts","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`])","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"storage.type.namespace.ts"}},"end":"(?<=\\})|(?=;|\\babstract\\b|\\basync\\b|\\bclass\\b|\\bconst\\b|\\bdeclare\\b|\\benum\\b|\\bexport\\b|\\bfunction\\b|\\bimport\\b|\\binterface\\b|\\blet\\b|\\bmodule\\b|\\bnamespace\\b|\\btype\\b|\\bvar\\b)","patterns":[{"include":"#comment"},{"include":"#string"},{"name":"entity.name.type.module.ts","match":"([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#punctuation-accessor"},{"include":"#decl-block"}]},"type-alias-declaration":{"name":"meta.type.declaration.ts","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"storage.type.type.ts"},"3":{"name":"entity.name.type.alias.ts"}},"end":"(?=[};]|\\babstract\\b|\\basync\\b|\\bclass\\b|\\bconst\\b|\\bdeclare\\b|\\benum\\b|\\bexport\\b|\\bfunction\\b|\\bimport\\b|\\binterface\\b|\\blet\\b|\\bmodule\\b|\\bnamespace\\b|\\btype\\b|\\bvar\\b)","patterns":[{"include":"#comment"},{"include":"#type-parameters"},{"include":"#type"},{"match":"(=)\\s*","captures":{"1":{"name":"keyword.operator.assignment.ts"}}}]},"import-equals-declaration":{"patterns":[{"name":"meta.import-equals.external.ts","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(import)\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"keyword.control.import.ts"},"3":{"name":"variable.other.readwrite.alias.ts"},"4":{"name":"keyword.operator.assignment.ts"},"5":{"name":"keyword.control.require.ts"},"6":{"name":"meta.brace.round.ts"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#comment"},{"include":"#string"}]},{"name":"meta.import-equals.internal.ts","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(import)\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"keyword.control.import.ts"},"3":{"name":"variable.other.readwrite.alias.ts"},"4":{"name":"keyword.operator.assignment.ts"}},"end":"(?=;|$|^)","patterns":[{"include":"#comment"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\.)","captures":{"1":{"name":"entity.name.type.module.ts"},"2":{"name":"punctuation.accessor.ts"}}},{"name":"variable.other.readwrite.ts","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]}]},"import-declaration":{"name":"meta.import.ts","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(import)(?!(\\s*[:\\(])|(\\$|\\.))\\b","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"keyword.control.import.ts"}},"end":"(?=;|$|^)","patterns":[{"include":"#import-export-declaration"}]},"export-declaration":{"patterns":[{"match":"(?<!\\.|\\$)\\b(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"keyword.control.as.ts"},"3":{"name":"storage.type.namespace.ts"},"4":{"name":"entity.name.type.module.ts"}}},{"name":"meta.export.default.ts","begin":"(?<!\\.|\\$)\\b(export)(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))","beginCaptures":{"1":{"name":"keyword.control.export.ts"},"2":{"name":"keyword.operator.assignment.ts"},"3":{"name":"keyword.control.default.ts"}},"end":"(?=;|$|\\babstract\\b|\\basync\\b|\\bclass\\b|\\bconst\\b|\\bdeclare\\b|\\benum\\b|\\bexport\\b|\\bfunction\\b|\\bimport\\b|\\binterface\\b|\\blet\\b|\\bmodule\\b|\\bnamespace\\b|\\btype\\b|\\bvar\\b)","patterns":[{"include":"#expression"}]},{"name":"meta.export.ts","begin":"(?<!\\.|\\$)\\b(export)(?!(\\s*:)|(\\$))\\b","beginCaptures":{"0":{"name":"keyword.control.export.ts"}},"end":"(?=;|$|\\babstract\\b|\\basync\\b|\\bclass\\b|\\bconst\\b|\\bdeclare\\b|\\benum\\b|\\bexport\\b|\\bfunction\\b|\\bimport\\b|\\binterface\\b|\\blet\\b|\\bmodule\\b|\\bnamespace\\b|\\btype\\b|\\bvar\\b)","patterns":[{"include":"#import-export-declaration"}]}]},"import-export-declaration":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#import-export-block"},{"name":"keyword.control.from.ts","match":"\\bfrom\\b"},{"include":"#import-export-clause"}]},"import-export-block":{"name":"meta.block.ts","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"#import-export-clause"}]},"import-export-clause":{"patterns":[{"include":"#comment"},{"match":"(?<!\\.|\\$)(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*))\\s+(as)\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"keyword.control.default.ts"},"2":{"name":"constant.language.import-export-all.ts"},"3":{"name":"variable.other.readwrite.ts"},"4":{"name":"keyword.control.as.ts"},"5":{"name":"variable.other.readwrite.alias.ts"}}},{"include":"#punctuation-comma"},{"name":"constant.language.import-export-all.ts","match":"\\*"},{"name":"keyword.control.default.ts","match":"\\b(default)\\b"},{"name":"variable.other.readwrite.alias.ts","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},"switch-statement":{"name":"switch-statement.expr.ts","begin":"(?<!\\.|\\$)(?=\\bswitch\\s*\\()","end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"name":"switch-expression.expr.ts","begin":"(?<!\\.|\\$)\\b(switch)\\s*(\\()","beginCaptures":{"1":{"name":"keyword.control.switch.ts"},"2":{"name":"meta.brace.round.ts"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#expression"}]},{"name":"switch-block.expr.ts","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"(?=\\})","patterns":[{"name":"case-clause.expr.ts","begin":"(?<!\\.|\\$)\\b(case|default(?=:))\\b(?!\\$|\\.)","beginCaptures":{"1":{"name":"keyword.control.switch.ts"}},"end":":","endCaptures":{"0":{"name":"punctuation.definition.section.case-statement.ts"}},"patterns":[{"include":"#expression"}]},{"include":"#statements"}]}]},"for-loop":{"begin":"(?<!\\.|\\$)\\b(for)(?:\\s+(await))?\\s*(\\()","beginCaptures":{"1":{"name":"keyword.control.loop.ts"},"2":{"name":"keyword.control.loop.ts"},"3":{"name":"meta.brace.round.ts"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#var-expr"},{"include":"#expression"},{"include":"#punctuation-semicolon"}]},"decl-block":{"name":"meta.block.ts","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"#statements"}]},"after-operator-block-as-object-literal":{"name":"meta.objectliteral.ts","begin":"(?<=[=(,\\[?+!]|await|return|yield|throw|in|of|typeof|&&|\\|\\||\\*)\\s*(\\{)","beginCaptures":{"1":{"name":"punctuation.definition.block.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"#object-member"}]},"object-literal":{"name":"meta.objectliteral.ts","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"#object-member"}]},"object-member":{"patterns":[{"include":"#comment"},{"include":"#object-literal-method-declaration"},{"name":"meta.object.member.ts meta.object-literal.key.ts","begin":"(?=\\[)","end":"(?=:)","patterns":[{"include":"#array-literal"}]},{"name":"meta.object.member.ts meta.object-literal.key.ts","begin":"(?=[\\'\\\"])","end":"(?=:)","patterns":[{"include":"#string"}]},{"name":"meta.object.member.ts","match":"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=:)","captures":{"0":{"name":"meta.object-literal.key.ts"},"1":{"name":"constant.numeric.decimal.ts"}}},{"name":"meta.object.member.ts","match":"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n)))","captures":{"0":{"name":"meta.object-literal.key.ts"},"1":{"name":"entity.name.function.ts"}}},{"name":"meta.object.member.ts","match":"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)","captures":{"0":{"name":"meta.object-literal.key.ts"}}},{"name":"meta.object.member.ts","begin":"\\.\\.\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.ts"}},"end":"(?=,|\\})","patterns":[{"include":"#expression"}]},{"name":"meta.object.member.ts","match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$)","captures":{"1":{"name":"variable.other.readwrite.ts"}}},{"name":"meta.object.member.ts","begin":"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)","end":"(?=,|\\}|$)","patterns":[{"include":"#expression"}]},{"name":"meta.object.member.ts","begin":":","beginCaptures":{"0":{"name":"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},"end":"(?=,|\\})","patterns":[{"include":"#expression"}]},{"include":"#punctuation-comma"}]},"ternary-expression":{"begin":"(\\?)","beginCaptures":{"0":{"name":"keyword.operator.ternary.ts"}},"end":"(:)","endCaptures":{"0":{"name":"keyword.operator.ternary.ts"}},"patterns":[{"include":"#expression"}]},"function-call":{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\.\\s*)*|(\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\\s*(<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?\\()","end":"(?<=\\))(?!(([_$[:alpha:]][_$[:alnum:]]*\\s*\\.\\s*)*|(\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\\s*(<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?\\()","patterns":[{"name":"meta.function-call.ts","begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\.\\s*)*|(\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))","end":"(?=\\s*(<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?\\()","patterns":[{"include":"#literal"},{"include":"#support-objects"},{"include":"#object-identifiers"},{"include":"#punctuation-accessor"},{"name":"keyword.operator.expression.import.ts","match":"(?![\\.\\$])\\bimport(?=\\s*[\\(]\\s*[\\\"\\'\\`])"},{"name":"entity.name.function.ts","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},{"include":"#comment"},{"name":"meta.type.parameters.ts","begin":"\\<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.ts"}},"end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.ts"}},"patterns":[{"include":"#type"},{"include":"#punctuation-comma"}]},{"include":"#paren-expression"}]},"new-expr":{"name":"new.expr.ts","begin":"(?<!\\.|\\$)\\b(new)\\b(?!\\$|\\.)","beginCaptures":{"1":{"name":"keyword.operator.new.ts"}},"end":"(?<=\\))|(?=[;),}\\]]|$|((?<!\\.|\\$)\\bnew\\b(?!\\$|\\.))|((?<!\\.|\\$)\\bfunction((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))","patterns":[{"include":"#paren-expression"},{"include":"#class-declaration"},{"include":"#type"}]},"paren-expression":{"begin":"\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}]},"cast":{"patterns":[{"name":"cast.expr.ts","begin":"(?:(?<=return|throw|yield|await|default|[=(,:>*?]|[^+]\\+))\\s*(<)(?!<?\\=)","beginCaptures":{"1":{"name":"meta.brace.angle.ts"}},"end":"(\\>)\\s*","endCaptures":{"1":{"name":"meta.brace.angle.ts"}},"patterns":[{"include":"#type"}]},{"name":"cast.expr.ts","begin":"(?:(?<=^))\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*>)","beginCaptures":{"1":{"name":"meta.brace.angle.ts"}},"end":"(\\>)\\s*","endCaptures":{"1":{"name":"meta.brace.angle.ts"}},"patterns":[{"include":"#type"}]}]},"expression-operators":{"patterns":[{"name":"keyword.control.flow.ts","match":"(?<!\\.|\\$)\\b(await)\\b(?!\\$|\\.)"},{"match":"(?<!\\.|\\$)\\b(yield)\\b(?!\\$|\\.)(?:\\s*(\\*))?","captures":{"1":{"name":"keyword.control.flow.ts"},"2":{"name":"keyword.generator.asterisk.ts"}}},{"name":"keyword.operator.expression.delete.ts","match":"(?<!\\.|\\$)\\bdelete\\b(?!\\$|\\.)"},{"name":"keyword.operator.expression.in.ts","match":"(?<!\\.|\\$)\\bin\\b(?!\\$|\\.)"},{"name":"keyword.operator.expression.of.ts","match":"(?<!\\.|\\$)\\bof\\b(?!\\$|\\.)"},{"name":"keyword.operator.expression.instanceof.ts","match":"(?<!\\.|\\$)\\binstanceof\\b(?!\\$|\\.)"},{"name":"keyword.operator.new.ts","match":"(?<!\\.|\\$)\\bnew\\b(?!\\$|\\.)"},{"include":"#typeof-operator"},{"name":"keyword.operator.expression.void.ts","match":"(?<!\\.|\\$)\\bvoid\\b(?!\\$|\\.)"},{"begin":"(?<!\\.|\\$)\\b(as)\\s+","beginCaptures":{"1":{"name":"keyword.control.as.ts"}},"end":"(?=$|^|[;,:})\\]]|((?<!\\.|\\$)\\b(as)\\s+))","patterns":[{"include":"#type"}]},{"name":"keyword.operator.spread.ts","match":"\\.\\.\\."},{"name":"keyword.operator.assignment.compound.ts","match":"\\*=|(?<!\\()/=|%=|\\+=|\\-="},{"name":"keyword.operator.assignment.compound.bitwise.ts","match":"\\&=|\\^=|<<=|>>=|>>>=|\\|="},{"name":"keyword.operator.bitwise.shift.ts","match":"<<|>>>|>>"},{"name":"keyword.operator.comparison.ts","match":"===|!==|==|!="},{"name":"keyword.operator.relational.ts","match":"<=|>=|<>|<|>"},{"name":"keyword.operator.logical.ts","match":"\\!|&&|\\|\\|"},{"name":"keyword.operator.bitwise.ts","match":"\\&|~|\\^|\\|"},{"name":"keyword.operator.assignment.ts","match":"\\="},{"name":"keyword.operator.decrement.ts","match":"--"},{"name":"keyword.operator.increment.ts","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.ts","match":"%|\\*|/|-|\\+"},{"match":"(?<=[_$[:alnum:])])\\s*(/)(?![/*])","captures":{"1":{"name":"keyword.operator.arithmetic.ts"}}}]},"typeof-operator":{"name":"keyword.operator.expression.typeof.ts","match":"(?<!\\.|\\$)\\btypeof\\b(?!\\$|\\.)"},"literal":{"patterns":[{"include":"#numeric-literal"},{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#undefined-literal"},{"include":"#numericConstant-literal"},{"include":"#array-literal"},{"include":"#this-literal"},{"include":"#super-literal"}]},"array-literal":{"name":"meta.array.literal.ts","begin":"\\[","beginCaptures":{"0":{"name":"meta.brace.square.ts"}},"end":"\\]","endCaptures":{"0":{"name":"meta.brace.square.ts"}},"patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}]},"numeric-literal":{"patterns":[{"name":"constant.numeric.hex.ts","match":"\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)"},{"name":"constant.numeric.binary.ts","match":"\\b(?<!\\$)0(b|B)[01]+\\b(?!\\$)"},{"name":"constant.numeric.octal.ts","match":"\\b(?<!\\$)0(o|O)?[0-7]+\\b(?!\\$)"},{"match":"(?x)\n(?<!\\$)(?:\n  (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n  (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)|       # 1.E+3\n  (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)|       # .1E+3\n  (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)|           # 1E+3\n  (?:\\b[0-9]+(\\.)[0-9]+\\b)|                # 1.1\n  (?:\\b[0-9]+(\\.)\\B)|                      # 1.\n  (?:\\B(\\.)[0-9]+\\b)|                      # .1\n  (?:\\b[0-9]+\\b(?!\\.))                     # 1\n)(?!\\$)","captures":{"0":{"name":"constant.numeric.decimal.ts"},"1":{"name":"meta.delimiter.decimal.period.ts"},"2":{"name":"meta.delimiter.decimal.period.ts"},"3":{"name":"meta.delimiter.decimal.period.ts"},"4":{"name":"meta.delimiter.decimal.period.ts"},"5":{"name":"meta.delimiter.decimal.period.ts"},"6":{"name":"meta.delimiter.decimal.period.ts"}}}]},"boolean-literal":{"patterns":[{"name":"constant.language.boolean.true.ts","match":"(?<!\\.|\\$)\\btrue\\b(?!\\$)"},{"name":"constant.language.boolean.false.ts","match":"(?<!\\.|\\$)\\bfalse\\b(?!\\$)"}]},"null-literal":{"name":"constant.language.null.ts","match":"(?<!\\.|\\$)\\bnull\\b(?!\\$)"},"this-literal":{"name":"variable.language.this.ts","match":"(?<!\\$)((?<=\\.\\.\\.)|(?<!\\.))\\bthis\\b(?!\\$)"},"super-literal":{"name":"variable.language.super.ts","match":"(?<!\\.|\\$)\\bsuper\\b(?!\\$)"},"undefined-literal":{"name":"constant.language.undefined.ts","match":"(?<!\\.|\\$)\\bundefined\\b(?!\\$)"},"numericConstant-literal":{"patterns":[{"name":"constant.language.nan.ts","match":"(?<!\\.|\\$)\\bNaN\\b(?!\\$)"},{"name":"constant.language.infinity.ts","match":"(?<!\\.|\\$)\\bInfinity\\b(?!\\$)"}]},"support-objects":{"patterns":[{"name":"variable.language.arguments.ts","match":"(?<!\\.|\\$)\\b(arguments)\\b(?!\\$)"},{"name":"support.class.builtin.ts","match":"(?x)(?<!\\.|\\$)\\b(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Float32Array|Float64Array|Function|Generator\n  |GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Promise|Proxy\n  |Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray\n  |Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\\b(?!\\$)"},{"name":"support.class.error.ts","match":"(?<!\\.|\\$)\\b((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\\b(?!\\$)"},{"name":"support.function.ts","match":"(?x)(?<!\\.|\\$)\\b(clear(Interval|Timeout)|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval|\n  isFinite|isNaN|parseFloat|parseInt|require|set(Interval|Timeout)|super|unescape|uneval)(?=\\s*\\()"},{"match":"(?x)(?<!\\.|\\$)\\b(Math)(?:\\s*(\\.)\\s*(?:\n  (abs|acos|acosh|asin|asinh|atan|atan2|atanh|cbrt|ceil|clz32|cos|cosh|exp|\n  expm1|floor|fround|hypot|imul|log|log10|log1p|log2|max|min|pow|random|\n  round|sign|sin|sinh|sqrt|tan|tanh|trunc)\n  |\n  (E|LN10|LN2|LOG10E|LOG2E|PI|SQRT1_2|SQRT2)))?\\b(?!\\$)","captures":{"1":{"name":"support.constant.math.ts"},"2":{"name":"punctuation.accessor.ts"},"3":{"name":"support.function.math.ts"},"4":{"name":"support.constant.property.math.ts"}}},{"match":"(?x)(?<!\\.|\\$)\\b(console)(?:\\s*(\\.)\\s*(\n  assert|clear|count|debug|dir|error|group|groupCollapsed|groupEnd|info|log\n  |profile|profileEnd|table|time|timeEnd|timeStamp|trace|warn))?\\b(?!\\$)","captures":{"1":{"name":"support.class.console.ts"},"2":{"name":"punctuation.accessor.ts"},"3":{"name":"support.function.console.ts"}}},{"match":"(?<!\\.|\\$)\\b(JSON)(?:\\s*(\\.)\\s*(parse|stringify))?\\b(?!\\$)","captures":{"1":{"name":"support.constant.json.ts"},"2":{"name":"punctuation.accessor.ts"},"3":{"name":"support.function.json.ts"}}},{"match":"(?x) (\\.) \\s* (?:\n  (constructor|length|prototype|__proto__)\n  |\n  (EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY))\\b(?!\\$)","captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"support.variable.property.ts"},"3":{"name":"support.constant.ts"}}},{"match":"(?x) (?<!\\.|\\$) \\b (?:\n  (document|event|navigator|performance|screen|window)\n  |\n  (AnalyserNode|ArrayBufferView|Attr|AudioBuffer|AudioBufferSourceNode|AudioContext|AudioDestinationNode|AudioListener\n  |AudioNode|AudioParam|BatteryManager|BeforeUnloadEvent|BiquadFilterNode|Blob|BufferSource|ByteString|CSS|CSSConditionRule\n  |CSSCounterStyleRule|CSSGroupingRule|CSSMatrix|CSSMediaRule|CSSPageRule|CSSPrimitiveValue|CSSRule|CSSRuleList|CSSStyleDeclaration\n  |CSSStyleRule|CSSStyleSheet|CSSSupportsRule|CSSValue|CSSValueList|CanvasGradient|CanvasImageSource|CanvasPattern\n  |CanvasRenderingContext2D|ChannelMergerNode|ChannelSplitterNode|CharacterData|ChromeWorker|CloseEvent|Comment|CompositionEvent\n  |Console|ConvolverNode|Coordinates|Credential|CredentialsContainer|Crypto|CryptoKey|CustomEvent|DOMError|DOMException\n  |DOMHighResTimeStamp|DOMImplementation|DOMString|DOMStringList|DOMStringMap|DOMTimeStamp|DOMTokenList|DataTransfer\n  |DataTransferItem|DataTransferItemList|DedicatedWorkerGlobalScope|DelayNode|DeviceProximityEvent|DirectoryEntry\n  |DirectoryEntrySync|DirectoryReader|DirectoryReaderSync|Document|DocumentFragment|DocumentTouch|DocumentType|DragEvent\n  |DynamicsCompressorNode|Element|Entry|EntrySync|ErrorEvent|Event|EventListener|EventSource|EventTarget|FederatedCredential\n  |FetchEvent|File|FileEntry|FileEntrySync|FileException|FileList|FileReader|FileReaderSync|FileSystem|FileSystemSync\n  |FontFace|FormData|GainNode|Gamepad|GamepadButton|GamepadEvent|Geolocation|GlobalEventHandlers|HTMLAnchorElement\n  |HTMLAreaElement|HTMLAudioElement|HTMLBRElement|HTMLBaseElement|HTMLBodyElement|HTMLButtonElement|HTMLCanvasElement\n  |HTMLCollection|HTMLContentElement|HTMLDListElement|HTMLDataElement|HTMLDataListElement|HTMLDialogElement|HTMLDivElement\n  |HTMLDocument|HTMLElement|HTMLEmbedElement|HTMLFieldSetElement|HTMLFontElement|HTMLFormControlsCollection|HTMLFormElement\n  |HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLIFrameElement|HTMLImageElement|HTMLInputElement\n  |HTMLKeygenElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLLinkElement|HTMLMapElement|HTMLMediaElement\n  |HTMLMetaElement|HTMLMeterElement|HTMLModElement|HTMLOListElement|HTMLObjectElement|HTMLOptGroupElement|HTMLOptionElement\n  |HTMLOptionsCollection|HTMLOutputElement|HTMLParagraphElement|HTMLParamElement|HTMLPreElement|HTMLProgressElement\n  |HTMLQuoteElement|HTMLScriptElement|HTMLSelectElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElement\n  |HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement\n  |HTMLTableRowElement|HTMLTableSectionElement|HTMLTextAreaElement|HTMLTimeElement|HTMLTitleElement|HTMLTrackElement\n  |HTMLUListElement|HTMLUnknownElement|HTMLVideoElement|HashChangeEvent|History|IDBCursor|IDBCursorWithValue|IDBDatabase\n  |IDBEnvironment|IDBFactory|IDBIndex|IDBKeyRange|IDBMutableFile|IDBObjectStore|IDBOpenDBRequest|IDBRequest|IDBTransaction\n  |IDBVersionChangeEvent|IIRFilterNode|IdentityManager|ImageBitmap|ImageBitmapFactories|ImageData|Index|InputDeviceCapabilities\n  |InputEvent|InstallEvent|InstallTrigger|KeyboardEvent|LinkStyle|LocalFileSystem|LocalFileSystemSync|Location|MIDIAccess\n  |MIDIConnectionEvent|MIDIInput|MIDIInputMap|MIDIOutputMap|MediaElementAudioSourceNode|MediaError|MediaKeyMessageEvent\n  |MediaKeySession|MediaKeyStatusMap|MediaKeySystemAccess|MediaKeySystemConfiguration|MediaKeys|MediaRecorder|MediaStream\n  |MediaStreamAudioDestinationNode|MediaStreamAudioSourceNode|MessageChannel|MessageEvent|MessagePort|MouseEvent\n  |MutationObserver|MutationRecord|NamedNodeMap|Navigator|NavigatorConcurrentHardware|NavigatorGeolocation|NavigatorID\n  |NavigatorLanguage|NavigatorOnLine|Node|NodeFilter|NodeIterator|NodeList|NonDocumentTypeChildNode|Notification\n  |OfflineAudioCompletionEvent|OfflineAudioContext|OscillatorNode|PageTransitionEvent|PannerNode|ParentNode|PasswordCredential\n  |Path2D|PaymentAddress|PaymentRequest|PaymentResponse|Performance|PerformanceEntry|PerformanceFrameTiming|PerformanceMark\n  |PerformanceMeasure|PerformanceNavigation|PerformanceNavigationTiming|PerformanceObserver|PerformanceObserverEntryList\n  |PerformanceResourceTiming|PerformanceTiming|PeriodicSyncEvent|PeriodicWave|Plugin|Point|PointerEvent|PopStateEvent\n  |PortCollection|Position|PositionError|PositionOptions|PresentationConnectionClosedEvent|PresentationConnectionList\n  |PresentationReceiver|ProcessingInstruction|ProgressEvent|PromiseRejectionEvent|PushEvent|PushRegistrationManager\n  |RTCCertificate|RTCConfiguration|RTCPeerConnection|RTCSessionDescriptionCallback|RTCStatsReport|RadioNodeList|RandomSource\n  |Range|ReadableByteStream|RenderingContext|SVGAElement|SVGAngle|SVGAnimateColorElement|SVGAnimateElement|SVGAnimateMotionElement\n  |SVGAnimateTransformElement|SVGAnimatedAngle|SVGAnimatedBoolean|SVGAnimatedEnumeration|SVGAnimatedInteger|SVGAnimatedLength\n  |SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedPoints|SVGAnimatedPreserveAspectRatio\n  |SVGAnimatedRect|SVGAnimatedString|SVGAnimatedTransformList|SVGAnimationElement|SVGCircleElement|SVGClipPathElement\n  |SVGCursorElement|SVGDefsElement|SVGDescElement|SVGElement|SVGEllipseElement|SVGEvent|SVGFilterElement|SVGFontElement\n  |SVGFontFaceElement|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFontFaceUriElement\n  |SVGForeignObjectElement|SVGGElement|SVGGlyphElement|SVGGradientElement|SVGHKernElement|SVGImageElement|SVGLength\n  |SVGLengthList|SVGLineElement|SVGLinearGradientElement|SVGMPathElement|SVGMaskElement|SVGMatrix|SVGMissingGlyphElement\n  |SVGNumber|SVGNumberList|SVGPathElement|SVGPatternElement|SVGPoint|SVGPolygonElement|SVGPolylineElement|SVGPreserveAspectRatio\n  |SVGRadialGradientElement|SVGRect|SVGRectElement|SVGSVGElement|SVGScriptElement|SVGSetElement|SVGStopElement|SVGStringList\n  |SVGStylable|SVGStyleElement|SVGSwitchElement|SVGSymbolElement|SVGTRefElement|SVGTSpanElement|SVGTests|SVGTextElement\n  |SVGTextPositioningElement|SVGTitleElement|SVGTransform|SVGTransformList|SVGTransformable|SVGUseElement|SVGVKernElement\n  |SVGViewElement|ServiceWorker|ServiceWorkerContainer|ServiceWorkerGlobalScope|ServiceWorkerRegistration|ServiceWorkerState\n  |ShadowRoot|SharedWorker|SharedWorkerGlobalScope|SourceBufferList|StereoPannerNode|Storage|StorageEvent|StyleSheet\n  |StyleSheetList|SubtleCrypto|SyncEvent|Text|TextMetrics|TimeEvent|TimeRanges|Touch|TouchEvent|TouchList|Transferable\n  |TreeWalker|UIEvent|USVString|VRDisplayCapabilities|ValidityState|WaveShaperNode|WebGL|WebGLActiveInfo|WebGLBuffer\n  |WebGLContextEvent|WebGLFramebuffer|WebGLProgram|WebGLRenderbuffer|WebGLRenderingContext|WebGLShader|WebGLShaderPrecisionFormat\n  |WebGLTexture|WebGLTimerQueryEXT|WebGLTransformFeedback|WebGLUniformLocation|WebGLVertexArrayObject|WebGLVertexArrayObjectOES\n  |WebSocket|WebSockets|WebVTT|WheelEvent|Window|WindowBase64|WindowEventHandlers|WindowTimers|Worker|WorkerGlobalScope\n  |WorkerLocation|WorkerNavigator|XMLHttpRequest|XMLHttpRequestEventTarget|XMLSerializer|XPathExpression|XPathResult\n  |XSLTProcessor))\\b(?!\\$)","captures":{"1":{"name":"support.variable.dom.ts"},"2":{"name":"support.class.dom.ts"}}},{"match":"(?x) (\\.) \\s* (?:\n  (ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE\n  |DOMSTRING_SIZE_ERR|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|HIERARCHY_REQUEST_ERR|INDEX_SIZE_ERR\n  |INUSE_ATTRIBUTE_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR\n  |NOT_SUPPORTED_ERR|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|WRONG_DOCUMENT_ERR)\n  |\n  (_content|[xyz]|abbr|above|accept|acceptCharset|accessKey|action|align|[av]Link(?:color)?|all|alt|anchors|appCodeName\n  |appCore|applets|appMinorVersion|appName|appVersion|archive|areas|arguments|attributes|availHeight|availLeft|availTop\n  |availWidth|axis|background|backgroundColor|backgroundImage|below|bgColor|body|border|borderBottomWidth|borderColor\n  |borderLeftWidth|borderRightWidth|borderStyle|borderTopWidth|borderWidth|bottom|bufferDepth|callee|caller|caption\n  |cellPadding|cells|cellSpacing|ch|characterSet|charset|checked|childNodes|chOff|cite|classes|className|clear\n  |clientInformation|clip|clipBoardData|closed|code|codeBase|codeType|color|colorDepth|cols|colSpan|compact|complete\n  |components|content|controllers|cookie|cookieEnabled|cords|cpuClass|crypto|current|data|dateTime|declare|defaultCharset\n  |defaultChecked|defaultSelected|defaultStatus|defaultValue|defaultView|defer|description|dialogArguments|dialogHeight\n  |dialogLeft|dialogTop|dialogWidth|dir|directories|disabled|display|docmain|doctype|documentElement|elements|embeds\n  |enabledPlugin|encoding|enctype|entities|event|expando|external|face|fgColor|filename|firstChild|fontFamily|fontSize\n  |fontWeight|form|formName|forms|frame|frameBorder|frameElement|frames|hasFocus|hash|headers|height|history|host\n  |hostname|href|hreflang|hspace|htmlFor|httpEquiv|id|ids|ignoreCase|images|implementation|index|innerHeight|innerWidth\n  |input|isMap|label|lang|language|lastChild|lastIndex|lastMatch|lastModified|lastParen|layer[sXY]|left|leftContext\n  |lineHeight|link|linkColor|links|listStyleType|localName|location|locationbar|longDesc|lowsrc|lowSrc|marginBottom\n  |marginHeight|marginLeft|marginRight|marginTop|marginWidth|maxLength|media|menubar|method|mimeTypes|multiline|multiple\n  |name|nameProp|namespaces|namespaceURI|next|nextSibling|nodeName|nodeType|nodeValue|noHref|noResize|noShade|notationName\n  |notations|noWrap|object|offscreenBuffering|onLine|onreadystatechange|opener|opsProfile|options|oscpu|outerHeight\n  |outerWidth|ownerDocument|paddingBottom|paddingLeft|paddingRight|paddingTop|page[XY]|page[XY]Offset|parent|parentLayer\n  |parentNode|parentWindow|pathname|personalbar|pixelDepth|pkcs11|platform|plugins|port|prefix|previous|previousDibling\n  |product|productSub|profile|profileend|prompt|prompter|protocol|publicId|readOnly|readyState|referrer|rel|responseText\n  |responseXML|rev|right|rightContext|rowIndex|rows|rowSpan|rules|scheme|scope|screen[XY]|screenLeft|screenTop|scripts\n  |scrollbars|scrolling|sectionRowIndex|security|securityPolicy|selected|selectedIndex|selection|self|shape|siblingAbove\n  |siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary\n  |systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead\n  |title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile\n  |vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\\b(?!\\$|\\s*(<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?\\()","captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"support.constant.dom.ts"},"3":{"name":"support.variable.property.dom.ts"}}},{"name":"support.class.node.ts","match":"(?x)(?<!\\.|\\$)\\b(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream\n  |Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\\b(?!\\$)"},{"match":"(?x)(?<!\\.|\\$)\\b(process)(?:(\\.)(?:\n  (arch|argv|config|connected|env|execArgv|execPath|exitCode|mainModule|pid|platform|release|stderr|stdin|stdout|title|version|versions)\n  |\n  (abort|chdir|cwd|disconnect|exit|[sg]ete?[gu]id|send|[sg]etgroups|initgroups|kill|memoryUsage|nextTick|umask|uptime|hrtime)\n))?\\b(?!\\$)","captures":{"1":{"name":"support.variable.object.process.ts"},"2":{"name":"punctuation.accessor.ts"},"3":{"name":"support.variable.property.process.ts"},"4":{"name":"support.function.process.ts"}}},{"match":"(?<!\\.|\\$)\\b(?:(exports)|(module)(?:(\\.)(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)","captures":{"1":{"name":"support.type.object.module.ts"},"2":{"name":"support.type.object.module.ts"},"3":{"name":"punctuation.accessor.ts"},"4":{"name":"support.type.object.module.ts"}}},{"name":"support.variable.object.node.ts","match":"(?<!\\.|\\$)\\b(global|GLOBAL|root|__dirname|__filename)\\b(?!\\$)"},{"match":"(?x) (\\.) \\s*\n(?:\n (on(?:Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\n   Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\n   Before(?:cut|deactivate|unload|update|paste|print|editfocus|activate)|\n   Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\n   Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\n   Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\n   Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\n   Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\n ) |\n (shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\n   scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\n   sup|sub|substr|substring|splice|split|send|set(?:Milliseconds|Seconds|Minutes|Hours|\n   Month|Year|FullYear|Date|UTC(?:Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\n   Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\n   savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\n   contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\n   createEventObject|to(?:GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\n   test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\n   untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\n   print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\n   fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\n   forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\n   abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\n   releaseCapture|releaseEvents|go|get(?:Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\n   Time|Date|TimezoneOffset|UTC(?:Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\n   Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\n   moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back\n ) |\n (acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\n   appendChild|appendData|before|blur|canPlayType|captureStream|\n   caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\n   cloneContents|cloneNode|cloneRange|close|closest|collapse|\n   compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\n   convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\n   createAttributeNS|createCaption|createCDATASection|createComment|\n   createContextualFragment|createDocument|createDocumentFragment|\n   createDocumentType|createElement|createElementNS|createEntityReference|\n   createEvent|createExpression|createHTMLDocument|createNodeIterator|\n   createNSResolver|createProcessingInstruction|createRange|createShadowRoot|\n   createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\n   deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\n   deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\n   enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\n   exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\n   getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\n   getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\n   getClientRects|getContext|getDestinationInsertionPoints|getElementById|\n   getElementsByClassName|getElementsByName|getElementsByTagName|\n   getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\n   getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\n   hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\n   insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\n   insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\n   isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\n   lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\n   moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\n   parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\n   previousSibling|probablySupportsContext|queryCommandEnabled|\n   queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\n   querySelector|querySelectorAll|registerContentHandler|registerElement|\n   registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\n   removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|\n   removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\n   requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\n   scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\n   setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\n   setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\n   setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\n   slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\n   submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\n   toDataURL|toggle|toString|values|write|writeln\n )\n)(?=\\s*\\()","captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"support.function.event-handler.ts"},"3":{"name":"support.function.ts"},"4":{"name":"support.function.dom.ts"}}}]},"identifiers":{"patterns":[{"include":"#object-identifiers"},{"match":"(?x)(?:(\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n))","captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"entity.name.function.ts"}}},{"match":"(\\.)\\s*([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])","captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"variable.other.constant.property.ts"}}},{"match":"(\\.)\\s*([_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"variable.other.property.ts"}}},{"name":"variable.other.constant.ts","match":"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{"name":"variable.other.readwrite.ts","match":"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{"patterns":[{"name":"support.class.ts","match":"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\.\\s*prototype\\b(?!\\$))"},{"match":"(?x)(\\.)\\s*(?:\n  ([[:upper:]][_$[:digit:][:upper:]]*) |\n  ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"variable.other.constant.object.property.ts"},"3":{"name":"variable.other.object.property.ts"}}},{"match":"(?x)(?:\n  ([[:upper:]][_$[:digit:][:upper:]]*) |\n  ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"variable.other.constant.object.ts"},"2":{"name":"variable.other.object.ts"}}}]},"type-annotation":{"patterns":[{"name":"meta.type.annotation.ts","begin":"(:)(?=\\s*\\S)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?<![:|&])((?=$|^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))","patterns":[{"include":"#type"}]},{"name":"meta.type.annotation.ts","begin":"(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?<![:|&])((?=[,);\\}\\]]|//)|(?==[^>])|(?=^\\s*$)|((?<=\\S)(?=\\s*$))|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))","patterns":[{"include":"#type"}]}]},"return-type":{"patterns":[{"name":"meta.return.type.ts","begin":"(?<=\\))\\s*(:)(?=\\s*\\S)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?<![:|&])(?=$|^|[{};,]|//)","patterns":[{"include":"#return-type-core"}]},{"name":"meta.return.type.ts","begin":"(?<=\\))\\s*(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))","patterns":[{"include":"#return-type-core"}]}]},"return-type-core":{"patterns":[{"include":"#comment"},{"begin":"(?<=[:|&])(?=\\s*\\{)","end":"(?<=\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"arrow-return-type":{"name":"meta.return.type.arrow.ts","begin":"(?<=\\))\\s*(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))","patterns":[{"begin":"(?<=[:])(?=\\s*\\{)","end":"(?<=\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"type-parameters":{"name":"meta.type.parameters.ts","begin":"(<)","beginCaptures":{"1":{"name":"punctuation.definition.typeparameters.begin.ts"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.typeparameters.end.ts"}},"patterns":[{"include":"#comment"},{"name":"storage.modifier.ts","match":"(?<!\\.|\\$)\\b(extends)\\b(?!\\$)"},{"name":"keyword.operator.assignment.ts","match":"\\=(?!>)"},{"include":"#type"},{"include":"#punctuation-comma"}]},"type":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numeric-literal"},{"include":"#type-primitive"},{"include":"#type-builtin-literals"},{"include":"#type-parameters"},{"include":"#type-tuple"},{"include":"#type-object"},{"include":"#type-operators"},{"include":"#type-fn-type-parameters"},{"include":"#type-paren-or-function-parameters"},{"include":"#type-function-return-type"},{"include":"#type-name"}]},"type-primitive":{"name":"support.type.primitive.ts","match":"(?<!\\.|\\$)\\b(string|number|boolean|symbol|any|void|never)\\b(?!\\$|\\.)"},"type-builtin-literals":{"name":"support.type.builtin.ts","match":"(?<!\\.|\\$)\\b(this|true|false|undefined|null|object)\\b(?!\\$|\\.)"},"type-tuple":{"name":"meta.type.tuple.ts","begin":"\\[","beginCaptures":{"0":{"name":"meta.brace.square.ts"}},"end":"\\]","endCaptures":{"0":{"name":"meta.brace.square.ts"}},"patterns":[{"include":"#type"},{"include":"#punctuation-comma"}]},"type-object":{"name":"meta.object.type.ts","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"#comment"},{"include":"#method-declaration"},{"include":"#indexer-declaration"},{"include":"#indexer-mapped-type-declaration"},{"include":"#field-declaration"},{"include":"#type-annotation"},{"begin":"\\.\\.\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.ts"}},"end":"(?=\\}|;|,|$)|(?<=\\})","patterns":[{"include":"#type"}]},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"},{"include":"#type"}]},"type-paren-or-function-parameters":{"name":"meta.type.paren.cover.ts","begin":"\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#type"},{"include":"#function-parameters"}]},"type-fn-type-parameters":{"patterns":[{"name":"meta.type.constructor.ts","match":"(?<!\\.|\\$)\\b(new)\\b(?=\\s*\\<)","captures":{"1":{"name":"keyword.control.new.ts"}}},{"name":"meta.type.constructor.ts","begin":"(?<!\\.|\\$)\\b(new)\\b\\s*(?=\\()","beginCaptures":{"1":{"name":"keyword.control.new.ts"}},"end":"(?<=\\))","patterns":[{"include":"#function-parameters"}]},{"name":"meta.type.function.ts","begin":"(?x)(\n  (?=\n    [(]\\s*(\n      ([)]) |\n      (\\.\\.\\.) |\n      ([_$[:alnum:]]+\\s*(\n        ([:,?=])|\n        ([)]\\s*=>)\n      ))\n    )\n  )\n)","end":"(?<=\\))","patterns":[{"include":"#function-parameters"}]}]},"type-function-return-type":{"patterns":[{"name":"meta.type.function.return.ts","begin":"(=>)(?=\\s*\\S)","beginCaptures":{"1":{"name":"storage.type.function.arrow.ts"}},"end":"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>]|//|$)","patterns":[{"include":"#type-function-return-type-core"}]},{"name":"meta.type.function.return.ts","begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.ts"}},"end":"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))","patterns":[{"include":"#type-function-return-type-core"}]}]},"type-function-return-type-core":{"patterns":[{"include":"#comment"},{"begin":"(?<==>)(?=\\s*\\{)","end":"(?<=\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"type-operators":{"patterns":[{"include":"#typeof-operator"},{"begin":"([&|])(?=\\s*\\{)","beginCaptures":{"0":{"name":"keyword.operator.type.ts"}},"end":"(?<=\\})","patterns":[{"include":"#type-object"}]},{"begin":"[&|]","beginCaptures":{"0":{"name":"keyword.operator.type.ts"}},"end":"(?=\\S)"},{"name":"keyword.operator.expression.keyof.ts","match":"(?<!\\.|\\$)\\bkeyof\\b(?!\\$|\\.)"}]},"type-predicate-operator":{"name":"keyword.operator.expression.is.ts","match":"(?<!\\.|\\$)\\bis\\b(?!\\$|\\.)"},"type-name":{"patterns":[{"match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\.)","captures":{"1":{"name":"entity.name.type.module.ts"},"2":{"name":"punctuation.accessor.ts"}}},{"name":"entity.name.type.ts","match":"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{"name":"punctuation.separator.comma.ts","match":","},"punctuation-semicolon":{"name":"punctuation.terminator.statement.ts","match":";"},"punctuation-accessor":{"name":"punctuation.accessor.ts","match":"\\."},"string":{"patterns":[{"include":"#qstring-single"},{"include":"#qstring-double"}]},"qstring-double":{"name":"string.quoted.double.ts","begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ts"}},"end":"(\")|((?:[^\\\\\\n])$)","endCaptures":{"1":{"name":"punctuation.definition.string.end.ts"},"2":{"name":"invalid.illegal.newline.ts"}},"patterns":[{"include":"#string-character-escape"}]},"qstring-single":{"name":"string.quoted.single.ts","begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ts"}},"end":"(\\')|((?:[^\\\\\\n])$)","endCaptures":{"1":{"name":"punctuation.definition.string.end.ts"},"2":{"name":"invalid.illegal.newline.ts"}},"patterns":[{"include":"#string-character-escape"}]},"string-character-escape":{"name":"constant.character.escape.ts","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},"template":{"name":"string.template.ts","begin":"([_$[:alpha:]][_$[:alnum:]]*)?(`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ts"},"2":{"name":"punctuation.definition.string.template.begin.ts"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.template.end.ts"}},"patterns":[{"include":"#template-substitution-element"},{"include":"#string-character-escape"}]},"template-substitution-element":{"name":"meta.template.expression.ts","begin":"\\$\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.ts"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.ts"}},"patterns":[{"include":"#expression"}],"contentName":"meta.embedded.line.ts"},"regex":{"patterns":[{"name":"string.regexp.ts","begin":"(?<=[=(:,\\[?+!]|return|case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/(?![\\/*])[gimuy]*(?!\\s*[a-zA-Z0-9_$]))","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.ts"}},"end":"(/)([gimuy]*)","endCaptures":{"1":{"name":"punctuation.definition.string.end.ts"},"2":{"name":"keyword.other.ts"}},"patterns":[{"include":"#regexp"}]},{"name":"string.regexp.ts","begin":"(?<![_$[:alnum:])])\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/(?![\\/*])[gimuy]*(?!\\s*[a-zA-Z0-9_$]))","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ts"}},"end":"(/)([gimuy]*)","endCaptures":{"1":{"name":"punctuation.definition.string.end.ts"},"2":{"name":"keyword.other.ts"}},"patterns":[{"include":"#regexp"}]}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"name":"keyword.other.back-reference.regexp","match":"\\\\[1-9]\\d*"},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!))","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}},"patterns":[{"include":"#regexp"}]},{"name":"meta.group.regexp","begin":"\\((\\?:)?","beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"patterns":[{"include":"#regexp"}]},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"end":"(\\])","endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}},"patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}]},{"include":"#regex-character-class"}]},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"comment":{"patterns":[{"name":"comment.block.documentation.ts","begin":"/\\*\\*(?!/)","beginCaptures":{"0":{"name":"punctuation.definition.comment.ts"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.ts"}},"patterns":[{"include":"#docblock"}]},{"name":"comment.block.ts","begin":"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?","beginCaptures":{"1":{"name":"punctuation.definition.comment.ts"},"2":{"name":"storage.type.internaldeclaration.ts"},"3":{"name":"punctuation.decorator.internaldeclaration.ts"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.ts"}}},{"begin":"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.ts"},"2":{"name":"comment.line.double-slash.ts"},"3":{"name":"punctuation.definition.comment.ts"},"4":{"name":"storage.type.internaldeclaration.ts"},"5":{"name":"punctuation.decorator.internaldeclaration.ts"}},"end":"(?=^)","contentName":"comment.line.double-slash.ts"}]},"directives":{"name":"comment.line.triple-slash.directive.ts","begin":"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")))+\\s*/>\\s*$)","beginCaptures":{"1":{"name":"punctuation.definition.comment.ts"}},"end":"(?=^)","patterns":[{"name":"meta.tag.ts","begin":"(<)(reference|amd-dependency|amd-module)","beginCaptures":{"1":{"name":"punctuation.definition.tag.directive.ts"},"2":{"name":"entity.name.tag.directive.ts"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.directive.ts"}},"patterns":[{"name":"entity.other.attribute-name.directive.ts","match":"path|types|no-default-lib|name"},{"name":"keyword.operator.assignment.ts","match":"="},{"include":"#string"}]}]},"docblock":{"patterns":[{"match":"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.access-type.jsdoc"}}},{"match":"(?x)\n((@)author)\n\\s+\n(\n  [^@\\s<>*/]\n  (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n  \\s*\n  (<)\n  ([^>\\s]+)\n  (>)\n)?","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{"name":"constant.other.email.link.underline.jsdoc"},"6":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}}},{"match":"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)    # <that namepath>\n\\s+ (as) \\s+              # as\n((?:[^@\\s*/]|\\*[^/])+)    # <this namepath>","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"keyword.operator.control.jsdoc"},"5":{"name":"entity.name.type.instance.jsdoc"}}},{"name":"meta.example.jsdoc","begin":"((@)example)\\s+","end":"(?=@|\\*/)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"patterns":[{"match":"^\\s\\*\\s+"},{"contentName":"constant.other.description.jsdoc","begin":"\\G(<)caption(>)","beginCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}},"end":"(</)caption(>)|(?=\\*/)","endCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}}},{"match":"[^\\s@*](?:[^*]|\\*[^/])*","captures":{"0":{"name":"source.embedded.ts"}}}]},{"match":"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.symbol-type.jsdoc"}}},{"match":"(?x)\n((@)see)\n\\s+\n(?:\n  # URL\n  (\n    (?=https?://)\n    (?:[^\\s*]|\\*[^/])+\n  )\n  |\n  # JSDoc namepath\n  (\n    (?!\n      # Avoid matching bare URIs (also acceptable as links)\n      https?://\n      |\n      # Avoid matching {@inline tags}; we match those below\n      (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n      {@(?:link|linkcode|linkplain|tutorial)\\b\n    )\n    # Matched namepath\n    (?:[^@\\s*/]|\\*[^/])+\n  )\n)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.link.underline.jsdoc"},"4":{"name":"entity.name.type.instance.jsdoc"}}},{"match":"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n  [A-Za-z_$]         # First character: non-numeric word character\n  [\\w$.\\[\\]]*        # Rest of identifier\n  (?:                # Possible list of additional identifiers\n    \\s* , \\s*\n    [A-Za-z_$]\n    [\\w$.\\[\\]]*\n  )*\n)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}}},{"match":"(?x)\n(\n  (@)\n  (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n  [A-Za-z_$]\n  [\\w$.\\[\\]]*\n)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}}},{"begin":"((@)typedef)\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"name":"entity.name.type.instance.jsdoc","match":"(?:[^@\\s*/]|\\*[^/])+"}]},{"begin":"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"name":"variable.other.jsdoc","match":"([A-Za-z_$][\\w$.\\[\\]]*)"},{"name":"variable.other.jsdoc","match":"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n  (?:\\[\\])?                                        # Foo[ ].bar properties within an array\n  \\.                                                # Foo.Bar namespaced parameter\n  [\\w$]+\n)*\n(?:\n  \\s*\n  (=)                                                # [foo=bar] Default parameter value\n  \\s*\n  (\n    # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n    (?>\n      \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |                      # [foo=\"bar\"] Double-quoted\n      '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |                      # [foo='bar'] Single-quoted\n      \\[ (?:(?:\\*(?!/))|[^*])*? \\] |                                # [foo=[1,2]] Array literal\n      (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*   # Everything else\n    )*\n  )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))","captures":{"1":{"name":"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{"name":"keyword.operator.assignment.jsdoc"},"3":{"name":"source.embedded.ts"},"4":{"name":"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{"name":"invalid.illegal.syntax.jsdoc"}}}]},{"begin":"(?x)\n(\n  (@)\n  (?:define|enum|exception|export|extends|lends|implements|modifies\n  |namespace|private|protected|returns?|suppress|this|throws|type\n  |yields?)\n)\n\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"}]},{"match":"(?x)\n(\n  (@)\n  (?:alias|augments|callback|constructs|emits|event|fires|exports?\n  |extends|external|function|func|host|lends|listens|interface|memberof!?\n  |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n  (?:\n    [^{}@\\s*] | \\*[^/]\n  )+\n)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"}}},{"contentName":"variable.other.jsdoc","begin":"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"},"4":{"name":"punctuation.definition.string.begin.jsdoc"}},"end":"(\\3)|(?=$|\\*/)","endCaptures":{"0":{"name":"variable.other.jsdoc"},"1":{"name":"punctuation.definition.string.end.jsdoc"}}},{"match":"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}}},{"name":"storage.type.class.jsdoc","match":"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b","captures":{"1":{"name":"punctuation.definition.block.tag.jsdoc"}}},{"include":"#inline-tags"}]},"brackets":{"patterns":[{"begin":"{","end":"}|(?=\\*/)","patterns":[{"include":"#brackets"}]},{"begin":"\\[","end":"\\]|(?=\\*/)","patterns":[{"include":"#brackets"}]}]},"inline-tags":{"patterns":[{"name":"constant.other.description.jsdoc","match":"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))","captures":{"1":{"name":"punctuation.definition.bracket.square.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.square.end.jsdoc"}}},{"name":"entity.name.type.instance.jsdoc","begin":"({)((@)(?:link(?:code|plain)?|tutorial))\\s*","beginCaptures":{"1":{"name":"punctuation.definition.bracket.curly.begin.jsdoc"},"2":{"name":"storage.type.class.jsdoc"},"3":{"name":"punctuation.definition.inline.tag.jsdoc"}},"end":"}|(?=\\*/)","endCaptures":{"0":{"name":"punctuation.definition.bracket.curly.end.jsdoc"}},"patterns":[{"match":"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?","captures":{"1":{"name":"variable.other.link.underline.jsdoc"},"2":{"name":"punctuation.separator.pipe.jsdoc"}}},{"match":"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?","captures":{"1":{"name":"variable.other.description.jsdoc"},"2":{"name":"punctuation.separator.pipe.jsdoc"}}}]}]},"jsdoctype":{"patterns":[{"name":"invalid.illegal.type.jsdoc","match":"\\G{(?:[^}*]|\\*[^/}])+$"},{"contentName":"entity.name.type.instance.jsdoc","begin":"\\G({)","beginCaptures":{"0":{"name":"entity.name.type.instance.jsdoc"},"1":{"name":"punctuation.definition.bracket.curly.begin.jsdoc"}},"end":"((}))\\s*|(?=\\*/)","endCaptures":{"1":{"name":"entity.name.type.instance.jsdoc"},"2":{"name":"punctuation.definition.bracket.curly.end.jsdoc"}},"patterns":[{"include":"#brackets"}]}]}}},"/Users/sadick/github/highlights/deps/language-typescript/grammars/TypeScriptReact.json":{"information_for_contributors":["This file has been converted from https://github.com/Microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],"version":"https://github.com/Microsoft/TypeScript-TmLanguage/commit/824f47ea6e98590ac2e75db5bebdf6eff71421ad","name":"TypeScriptReact","scopeName":"source.tsx","fileTypes":["tsx"],"uuid":"805375ec-d614-41f5-8993-5843fe63ea82","patterns":[{"include":"#directives"},{"include":"#statements"},{"name":"comment.line.shebang.ts","match":"\\A(#!).*(?=$)","captures":{"1":{"name":"punctuation.definition.comment.ts"}}}],"repository":{"statements":{"patterns":[{"include":"#string"},{"include":"#template"},{"include":"#comment"},{"include":"#declaration"},{"include":"#control-statement"},{"include":"#after-operator-block-as-object-literal"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-semicolon"}]},"declaration":{"patterns":[{"include":"#decorator"},{"include":"#var-expr"},{"include":"#function-declaration"},{"include":"#class-declaration"},{"include":"#interface-declaration"},{"include":"#enum-declaration"},{"include":"#namespace-declaration"},{"include":"#type-alias-declaration"},{"include":"#import-equals-declaration"},{"include":"#import-declaration"},{"include":"#export-declaration"}]},"control-statement":{"patterns":[{"include":"#switch-statement"},{"include":"#for-loop"},{"name":"keyword.control.trycatch.tsx","match":"(?<!\\.|\\$)\\b(catch|finally|throw|try)\\b(?!\\$|\\.)"},{"name":"keyword.control.loop.tsx","match":"(?<!\\.|\\$)\\b(break|continue|do|goto|while)\\b(?!\\$|\\.)"},{"name":"keyword.control.flow.tsx","match":"(?<!\\.|\\$)\\b(return)\\b(?!\\$|\\.)"},{"name":"keyword.control.switch.tsx","match":"(?<!\\.|\\$)\\b(case|default|switch)\\b(?!\\$|\\.)"},{"name":"keyword.control.conditional.tsx","match":"(?<!\\.|\\$)\\b(else|if)\\b(?!\\$|\\.)"},{"name":"keyword.control.with.tsx","match":"(?<!\\.|\\$)\\b(with)\\b(?!\\$|\\.)"},{"name":"keyword.other.debugger.tsx","match":"(?<!\\.|\\$)\\b(debugger)\\b(?!\\$|\\.)"},{"name":"storage.modifier.tsx","match":"(?<!\\.|\\$)\\b(declare)\\b(?!\\$|\\.)"}]},"expression":{"patterns":[{"include":"#jsx"},{"include":"#string"},{"include":"#regex"},{"include":"#template"},{"include":"#comment"},{"include":"#function-expression"},{"include":"#class-expression"},{"include":"#arrow-function"},{"include":"#cast"},{"include":"#ternary-expression"},{"include":"#new-expr"},{"include":"#object-literal"},{"include":"#expression-operators"},{"include":"#function-call"},{"include":"#literal"},{"include":"#support-objects"},{"include":"#identifiers"},{"include":"#paren-expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-accessor"}]},"decorator":{"name":"meta.decorator.tsx","begin":"(?<!\\.|\\$)\\@","beginCaptures":{"0":{"name":"punctuation.decorator.tsx"}},"end":"(?=\\s)","patterns":[{"include":"#expression"}]},"var-expr":{"name":"meta.var.expr.tsx","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(var|let|const(?!\\s+enum\\b))\\b(?!\\$|\\.)","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"storage.type.tsx"}},"end":"(?=$|^|;|}|(\\s+(of|in)\\s+))","patterns":[{"include":"#destructuring-variable"},{"include":"#var-single-variable"},{"include":"#variable-initializer"},{"include":"#comment"},{"begin":"(,)\\s*(?!\\S)","beginCaptures":{"1":{"name":"punctuation.separator.comma.tsx"}},"end":"(?<!,)((?==|;|}|(\\s+(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$))","patterns":[{"include":"#comment"},{"include":"#destructuring-variable"},{"include":"#var-single-variable"},{"include":"#punctuation-comma"}]},{"include":"#punctuation-comma"}]},"var-single-variable":{"patterns":[{"name":"meta.var-single-variable.expr.tsx","begin":"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n  (<) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=>)\n    ))\n  ))\n)))","beginCaptures":{"1":{"name":"meta.definition.variable.tsx entity.name.function.tsx"}},"end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#var-single-variable-type-annotation"}]},{"name":"meta.var-single-variable.expr.tsx","begin":"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])","beginCaptures":{"1":{"name":"meta.definition.variable.tsx variable.other.constant.tsx"}},"end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#var-single-variable-type-annotation"}]},{"name":"meta.var-single-variable.expr.tsx","begin":"([_$[:alpha:]][_$[:alnum:]]*)","beginCaptures":{"1":{"name":"meta.definition.variable.tsx variable.other.readwrite.tsx"}},"end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{"patterns":[{"include":"#type-annotation"},{"include":"#string"},{"include":"#comment"}]},"destructuring-variable":{"patterns":[{"name":"meta.object-binding-pattern-variable.tsx","begin":"(?<!=|:|of|in)\\s*(?=\\{)","end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#object-binding-pattern"},{"include":"#type-annotation"},{"include":"#comment"}]},{"name":"meta.array-binding-pattern-variable.tsx","begin":"(?<!=|:|of|in)\\s*(?=\\[)","end":"(?=$|^|[;,=}]|(\\s+(of|in)\\s+))","patterns":[{"include":"#array-binding-pattern"},{"include":"#type-annotation"},{"include":"#comment"}]}]},"object-binding-element":{"patterns":[{"include":"#comment"},{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))","end":"(?=,|\\})","patterns":[{"include":"#object-binding-element-propertyName"},{"include":"#binding-element"}]},{"include":"#object-binding-pattern"},{"include":"#destructuring-variable-rest"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"}]},"object-binding-element-propertyName":{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))","end":"(:)","endCaptures":{"0":{"name":"punctuation.destructuring.tsx"}},"patterns":[{"include":"#string"},{"include":"#array-literal"},{"name":"variable.object.property.tsx","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},"binding-element":{"patterns":[{"include":"#comment"},{"include":"#object-binding-pattern"},{"include":"#array-binding-pattern"},{"include":"#destructuring-variable-rest"},{"include":"#variable-initializer"}]},"destructuring-variable-rest":{"match":"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"keyword.operator.rest.tsx"},"2":{"name":"meta.definition.variable.tsx variable.other.readwrite.tsx"}}},"object-binding-pattern":{"begin":"(?:(\\.\\.\\.)\\s*)?(\\{)","beginCaptures":{"1":{"name":"keyword.operator.rest.tsx"},"2":{"name":"punctuation.definition.binding-pattern.object.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.object.tsx"}},"patterns":[{"include":"#object-binding-element"}]},"array-binding-pattern":{"begin":"(?:(\\.\\.\\.)\\s*)?(\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.tsx"},"2":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"patterns":[{"include":"#binding-element"},{"include":"#punctuation-comma"}]},"parameter-name":{"patterns":[{"match":"\\s*\\b(public|protected|private|readonly)(?=\\s+(public|protected|private|readonly)\\s+)","captures":{"1":{"name":"storage.modifier.tsx"}}},{"match":"(?x)(?:\\s*\\b(public|private|protected|readonly)\\s+)?(\\.\\.\\.)?\\s*(?<!=|:)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n  (<) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=>)\n    ))\n  ))\n)))","captures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"keyword.operator.rest.tsx"},"3":{"name":"entity.name.function.tsx variable.language.this.tsx"},"4":{"name":"entity.name.function.tsx"},"5":{"name":"keyword.operator.optional.tsx"}}},{"match":"(?:\\s*\\b(public|private|protected|readonly)\\s+)?(\\.\\.\\.)?\\s*(?<!=|:)(?:((?<!\\.|\\$)\\bthis\\b(?!\\.|\\$))|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)","captures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"keyword.operator.rest.tsx"},"3":{"name":"variable.parameter.tsx variable.language.this.tsx"},"4":{"name":"variable.parameter.tsx"},"5":{"name":"keyword.operator.optional.tsx"}}}]},"destructuring-parameter":{"patterns":[{"name":"meta.parameter.object-binding-pattern.tsx","begin":"(?<!=|:)\\s*(\\{)","beginCaptures":{"1":{"name":"punctuation.definition.binding-pattern.object.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.object.tsx"}},"patterns":[{"include":"#parameter-object-binding-element"}]},{"name":"meta.paramter.array-binding-pattern.tsx","begin":"(?<!=|:)\\s*(\\[)","beginCaptures":{"1":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"patterns":[{"include":"#parameter-binding-element"},{"include":"#punctuation-comma"}]}]},"parameter-object-binding-element":{"patterns":[{"include":"#comment"},{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))","end":"(?=,|\\})","patterns":[{"include":"#object-binding-element-propertyName"},{"include":"#parameter-binding-element"}]},{"include":"#parameter-object-binding-pattern"},{"include":"#destructuring-parameter-rest"},{"include":"#variable-initializer"},{"include":"#punctuation-comma"}]},"parameter-binding-element":{"patterns":[{"include":"#comment"},{"include":"#parameter-object-binding-pattern"},{"include":"#parameter-array-binding-pattern"},{"include":"#destructuring-parameter-rest"},{"include":"#variable-initializer"}]},"destructuring-parameter-rest":{"match":"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"keyword.operator.rest.tsx"},"2":{"name":"variable.parameter.tsx"}}},"parameter-object-binding-pattern":{"begin":"(?:(\\.\\.\\.)\\s*)?(\\{)","beginCaptures":{"1":{"name":"keyword.operator.rest.tsx"},"2":{"name":"punctuation.definition.binding-pattern.object.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.object.tsx"}},"patterns":[{"include":"#parameter-object-binding-element"}]},"parameter-array-binding-pattern":{"begin":"(?:(\\.\\.\\.)\\s*)?(\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.tsx"},"2":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"end":"\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"patterns":[{"include":"#parameter-binding-element"},{"include":"#punctuation-comma"}]},"field-declaration":{"name":"meta.field.declaration.tsx","begin":"(?<!\\()(?:(?<!\\.|\\$)\\b(readonly)\\s+)?(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\?\\s*)?(=|:))","beginCaptures":{"1":{"name":"storage.modifier.tsx"}},"end":"(?=\\}|;|,|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\?\\s*)?(=|:))))|(?<=\\})","patterns":[{"include":"#variable-initializer"},{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\?\\s*)?(=|:))","end":"(?=[};,=]|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\?\\s*)?(=|:))))|(?<=\\})","patterns":[{"include":"#type-annotation"},{"include":"#string"},{"include":"#array-literal"},{"include":"#comment"},{"name":"meta.definition.property.tsx entity.name.function.tsx","match":"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=(\\?\\s*)?\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n  (<) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=>)\n    ))\n  ))\n)))"},{"name":"meta.definition.property.tsx variable.object.property.tsx","match":"[_$[:alpha:]][_$[:alnum:]]*"},{"name":"keyword.operator.optional.tsx","match":"\\?"}]}]},"variable-initializer":{"patterns":[{"begin":"(?<!=|!)(=)(?!=)(?=\\s*\\S)","beginCaptures":{"1":{"name":"keyword.operator.assignment.tsx"}},"end":"(?=$|^|[,);}\\]])","patterns":[{"include":"#expression"}]},{"begin":"(?<!=|!)(=)(?!=)","beginCaptures":{"1":{"name":"keyword.operator.assignment.tsx"}},"end":"(?=[,);}\\]])|(?=^\\s*$)|(?<=\\S)(?<!=)(?=\\s*$)","patterns":[{"include":"#expression"}]}]},"function-declaration":{"name":"meta.function.tsx","begin":"(?<!\\.|\\$)\\b(?:(export)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"storage.modifier.async.tsx"},"3":{"name":"storage.type.function.tsx"},"4":{"name":"keyword.generator.asterisk.tsx"},"5":{"name":"meta.definition.function.tsx entity.name.function.tsx"}},"end":"(?=$|^|;)|(?<=\\})","patterns":[{"include":"#function-body"}]},"function-expression":{"name":"meta.function.expression.tsx","begin":"(?<!\\.|\\$)\\b(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"},"2":{"name":"storage.type.function.tsx"},"3":{"name":"keyword.generator.asterisk.tsx"},"4":{"name":"meta.definition.function.tsx entity.name.function.tsx"}},"end":"(?<=\\})","patterns":[{"include":"#function-body"}]},"function-body":{"patterns":[{"include":"#comment"},{"include":"#type-parameters"},{"include":"#function-parameters"},{"include":"#return-type"},{"include":"#decl-block"}]},"method-declaration":{"patterns":[{"name":"meta.method.declaration.tsx","begin":"(?<!\\.|\\$)(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)(?:(\\*)\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*[\\(\\<])","beginCaptures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"storage.modifier.tsx"},"3":{"name":"storage.modifier.async.tsx"},"4":{"name":"storage.type.property.tsx"},"5":{"name":"keyword.generator.asterisk.tsx"}},"end":"(?=\\}|;|,|$)|(?<=\\})","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]},{"name":"meta.method.declaration.tsx","begin":"(?<!\\.|\\$)(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\b(?:(new)|(constructor))\\b(?!\\$|\\.|:))|(?:(\\*)\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))?\\s*[\\(\\<]))","beginCaptures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"storage.modifier.tsx"},"3":{"name":"storage.modifier.async.tsx"},"4":{"name":"keyword.operator.new.tsx"},"5":{"name":"storage.type.tsx"},"6":{"name":"keyword.generator.asterisk.tsx"}},"end":"(?=\\}|;|,|$)|(?<=\\})","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]}]},"object-literal-method-declaration":{"name":"meta.method.declaration.tsx","begin":"(?<!\\.|\\$)(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*[\\(\\<])","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"},"2":{"name":"storage.type.property.tsx"},"3":{"name":"keyword.generator.asterisk.tsx"}},"end":"(?=\\}|;|,)|(?<=\\})","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"},{"begin":"(?<!\\.|\\$)(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*[\\(\\<])","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"},"2":{"name":"storage.type.property.tsx"},"3":{"name":"keyword.generator.asterisk.tsx"}},"end":"(?=\\(|\\<)","patterns":[{"include":"#method-declaration-name"}]}]},"method-declaration-name":{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])","end":"(?=\\(|\\<)","patterns":[{"include":"#string"},{"include":"#array-literal"},{"name":"meta.definition.method.tsx entity.name.function.tsx","match":"[_$[:alpha:]][_$[:alnum:]]*"},{"name":"keyword.operator.optional.tsx","match":"\\?"}]},"arrow-function":{"patterns":[{"name":"meta.arrow.tsx","match":"(?:(?<!\\.|\\$)(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)","captures":{"1":{"name":"storage.modifier.async.tsx"},"2":{"name":"variable.parameter.tsx"}}},{"name":"meta.arrow.tsx","begin":"(?x) (?:\n  (?<!\\.|\\$)(\\basync)\n)? ((?<![})!\\]])\\s*\n  (?=\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  )\n)","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"}},"end":"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))","patterns":[{"include":"#comment"},{"include":"#type-parameters"},{"include":"#function-parameters"},{"include":"#arrow-return-type"}]},{"name":"meta.arrow.tsx","begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.tsx"}},"end":"(?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S))","patterns":[{"include":"#decl-block"},{"include":"#expression"}]}]},"indexer-declaration":{"name":"meta.indexer.declaration.tsx","begin":"(?:(?<!\\.|\\$)\\b(readonly)\\s*)?(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)","beginCaptures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"meta.brace.square.tsx"},"3":{"name":"variable.parameter.tsx"}},"end":"(\\])\\s*(\\?\\s*)?|$","endCaptures":{"1":{"name":"meta.brace.square.tsx"},"2":{"name":"keyword.operator.optional.tsx"}},"patterns":[{"include":"#type-annotation"}]},"indexer-mapped-type-declaration":{"name":"meta.indexer.mappedtype.declaration.tsx","begin":"(?:(?<!\\.|\\$)\\b(readonly)\\s*)?(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+","beginCaptures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"meta.brace.square.tsx"},"3":{"name":"entity.name.type.tsx"},"4":{"name":"keyword.operator.expression.in.tsx"}},"end":"(\\])\\s*(\\?\\s*)?|$","endCaptures":{"1":{"name":"meta.brace.square.tsx"},"2":{"name":"keyword.operator.optional.tsx"}},"patterns":[{"include":"#type"}]},"function-parameters":{"name":"meta.parameters.tsx","begin":"\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.tsx"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.tsx"}},"patterns":[{"include":"#comment"},{"include":"#decorator"},{"include":"#destructuring-parameter"},{"include":"#parameter-name"},{"include":"#type-annotation"},{"include":"#variable-initializer"},{"name":"punctuation.separator.parameter.tsx","match":","}]},"class-declaration":{"name":"meta.class.tsx","begin":"(?<!\\.|\\$)\\b(?:(export)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"storage.modifier.tsx"},"3":{"name":"storage.type.class.tsx"}},"end":"(?<=\\})","patterns":[{"include":"#class-declaration-or-expression-patterns"}]},"class-expression":{"name":"meta.class.tsx","begin":"(?<!\\.|\\$)\\b(class)\\b(?=\\s+|[<{]|/[/*])","beginCaptures":{"1":{"name":"storage.type.class.tsx"}},"end":"(?<=\\})","patterns":[{"include":"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{"patterns":[{"include":"#comment"},{"include":"#class-or-interface-heritage"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","captures":{"0":{"name":"entity.name.type.class.tsx"}}},{"include":"#type-parameters"},{"include":"#class-or-interface-body"}]},"interface-declaration":{"name":"meta.interface.tsx","begin":"(?<!\\.|\\$)\\b(?:(export)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"storage.modifier.tsx"},"3":{"name":"storage.type.interface.tsx"}},"end":"(?<=\\})","patterns":[{"include":"#comment"},{"include":"#class-or-interface-heritage"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","captures":{"0":{"name":"entity.name.type.interface.tsx"}}},{"include":"#type-parameters"},{"include":"#class-or-interface-body"}]},"class-or-interface-heritage":{"begin":"(?<!\\.|\\$)(?:\\b(extends|implements)\\b)(?!\\$|\\.)","beginCaptures":{"1":{"name":"storage.modifier.tsx"}},"end":"(?=\\{)","endCaptures":{"1":{"name":"punctuation.definition.block.tsx"}},"patterns":[{"include":"#comment"},{"include":"#class-or-interface-heritage"},{"include":"#type-parameters"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\.)(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*([,<{]|extends|implements|//|/\\*))","captures":{"1":{"name":"entity.name.type.module.tsx"},"2":{"name":"punctuation.accessor.tsx"}}},{"match":"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*([,<{]|extends|implements|//|/\\*))","captures":{"1":{"name":"entity.other.inherited-class.tsx"}}},{"include":"#expression"}]},"class-or-interface-body":{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"patterns":[{"include":"#string"},{"include":"#comment"},{"include":"#decorator"},{"include":"#method-declaration"},{"include":"#indexer-declaration"},{"include":"#field-declaration"},{"include":"#type-annotation"},{"include":"#variable-initializer"},{"include":"#access-modifier"},{"include":"#property-accessor"},{"include":"#after-operator-block-as-object-literal"},{"include":"#decl-block"},{"include":"#expression"},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"}]},"access-modifier":{"name":"storage.modifier.tsx","match":"(?<!\\.|\\$)\\b(abstract|public|protected|private|readonly|static)\\b(?!\\$|\\.)"},"property-accessor":{"name":"storage.type.property.tsx","match":"(?<!\\.|\\$)\\b(get|set)\\b(?!\\$|\\.)"},"enum-declaration":{"name":"meta.enum.declaration.tsx","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"storage.modifier.tsx"},"3":{"name":"storage.type.enum.tsx"},"4":{"name":"entity.name.type.enum.tsx"}},"end":"(?<=\\})","patterns":[{"include":"#comment"},{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"patterns":[{"include":"#comment"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)","beginCaptures":{"0":{"name":"variable.other.enummember.tsx"}},"end":"(?=,|\\}|$)","patterns":[{"include":"#comment"},{"include":"#variable-initializer"}]},{"begin":"(?=((\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))","end":"(?=,|\\}|$)","patterns":[{"include":"#string"},{"include":"#array-literal"},{"include":"#comment"},{"include":"#variable-initializer"}]},{"include":"#punctuation-comma"}]}]},"namespace-declaration":{"name":"meta.namespace.declaration.tsx","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`])","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"storage.type.namespace.tsx"}},"end":"(?<=\\})|(?=;|\\babstract\\b|\\basync\\b|\\bclass\\b|\\bconst\\b|\\bdeclare\\b|\\benum\\b|\\bexport\\b|\\bfunction\\b|\\bimport\\b|\\binterface\\b|\\blet\\b|\\bmodule\\b|\\bnamespace\\b|\\btype\\b|\\bvar\\b)","patterns":[{"include":"#comment"},{"include":"#string"},{"name":"entity.name.type.module.tsx","match":"([_$[:alpha:]][_$[:alnum:]]*)"},{"include":"#punctuation-accessor"},{"include":"#decl-block"}]},"type-alias-declaration":{"name":"meta.type.declaration.tsx","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"storage.type.type.tsx"},"3":{"name":"entity.name.type.alias.tsx"}},"end":"(?=[};]|\\babstract\\b|\\basync\\b|\\bclass\\b|\\bconst\\b|\\bdeclare\\b|\\benum\\b|\\bexport\\b|\\bfunction\\b|\\bimport\\b|\\binterface\\b|\\blet\\b|\\bmodule\\b|\\bnamespace\\b|\\btype\\b|\\bvar\\b)","patterns":[{"include":"#comment"},{"include":"#type-parameters"},{"include":"#type"},{"match":"(=)\\s*","captures":{"1":{"name":"keyword.operator.assignment.tsx"}}}]},"import-equals-declaration":{"patterns":[{"name":"meta.import-equals.external.tsx","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(import)\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"keyword.control.import.tsx"},"3":{"name":"variable.other.readwrite.alias.tsx"},"4":{"name":"keyword.operator.assignment.tsx"},"5":{"name":"keyword.control.require.tsx"},"6":{"name":"meta.brace.round.tsx"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#comment"},{"include":"#string"}]},{"name":"meta.import-equals.internal.tsx","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(import)\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"keyword.control.import.tsx"},"3":{"name":"variable.other.readwrite.alias.tsx"},"4":{"name":"keyword.operator.assignment.tsx"}},"end":"(?=;|$|^)","patterns":[{"include":"#comment"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\.)","captures":{"1":{"name":"entity.name.type.module.tsx"},"2":{"name":"punctuation.accessor.tsx"}}},{"name":"variable.other.readwrite.tsx","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]}]},"import-declaration":{"name":"meta.import.tsx","begin":"(?<!\\.|\\$)(?:(\\bexport)\\s+)?\\b(import)(?!(\\s*[:\\(])|(\\$|\\.))\\b","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"keyword.control.import.tsx"}},"end":"(?=;|$|^)","patterns":[{"include":"#import-export-declaration"}]},"export-declaration":{"patterns":[{"match":"(?<!\\.|\\$)\\b(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"keyword.control.as.tsx"},"3":{"name":"storage.type.namespace.tsx"},"4":{"name":"entity.name.type.module.tsx"}}},{"name":"meta.export.default.tsx","begin":"(?<!\\.|\\$)\\b(export)(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))","beginCaptures":{"1":{"name":"keyword.control.export.tsx"},"2":{"name":"keyword.operator.assignment.tsx"},"3":{"name":"keyword.control.default.tsx"}},"end":"(?=;|$|\\babstract\\b|\\basync\\b|\\bclass\\b|\\bconst\\b|\\bdeclare\\b|\\benum\\b|\\bexport\\b|\\bfunction\\b|\\bimport\\b|\\binterface\\b|\\blet\\b|\\bmodule\\b|\\bnamespace\\b|\\btype\\b|\\bvar\\b)","patterns":[{"include":"#expression"}]},{"name":"meta.export.tsx","begin":"(?<!\\.|\\$)\\b(export)(?!(\\s*:)|(\\$))\\b","beginCaptures":{"0":{"name":"keyword.control.export.tsx"}},"end":"(?=;|$|\\babstract\\b|\\basync\\b|\\bclass\\b|\\bconst\\b|\\bdeclare\\b|\\benum\\b|\\bexport\\b|\\bfunction\\b|\\bimport\\b|\\binterface\\b|\\blet\\b|\\bmodule\\b|\\bnamespace\\b|\\btype\\b|\\bvar\\b)","patterns":[{"include":"#import-export-declaration"}]}]},"import-export-declaration":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#import-export-block"},{"name":"keyword.control.from.tsx","match":"\\bfrom\\b"},{"include":"#import-export-clause"}]},"import-export-block":{"name":"meta.block.tsx","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"patterns":[{"include":"#import-export-clause"}]},"import-export-clause":{"patterns":[{"include":"#comment"},{"match":"(?<!\\.|\\$)(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*))\\s+(as)\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"keyword.control.default.tsx"},"2":{"name":"constant.language.import-export-all.tsx"},"3":{"name":"variable.other.readwrite.tsx"},"4":{"name":"keyword.control.as.tsx"},"5":{"name":"variable.other.readwrite.alias.tsx"}}},{"include":"#punctuation-comma"},{"name":"constant.language.import-export-all.tsx","match":"\\*"},{"name":"keyword.control.default.tsx","match":"\\b(default)\\b"},{"name":"variable.other.readwrite.alias.tsx","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},"switch-statement":{"name":"switch-statement.expr.tsx","begin":"(?<!\\.|\\$)(?=\\bswitch\\s*\\()","end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"patterns":[{"name":"switch-expression.expr.tsx","begin":"(?<!\\.|\\$)\\b(switch)\\s*(\\()","beginCaptures":{"1":{"name":"keyword.control.switch.tsx"},"2":{"name":"meta.brace.round.tsx"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#expression"}]},{"name":"switch-block.expr.tsx","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"end":"(?=\\})","patterns":[{"name":"case-clause.expr.tsx","begin":"(?<!\\.|\\$)\\b(case|default(?=:))\\b(?!\\$|\\.)","beginCaptures":{"1":{"name":"keyword.control.switch.tsx"}},"end":":","endCaptures":{"0":{"name":"punctuation.definition.section.case-statement.tsx"}},"patterns":[{"include":"#expression"}]},{"include":"#statements"}]}]},"for-loop":{"begin":"(?<!\\.|\\$)\\b(for)(?:\\s+(await))?\\s*(\\()","beginCaptures":{"1":{"name":"keyword.control.loop.tsx"},"2":{"name":"keyword.control.loop.tsx"},"3":{"name":"meta.brace.round.tsx"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#var-expr"},{"include":"#expression"},{"include":"#punctuation-semicolon"}]},"decl-block":{"name":"meta.block.tsx","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"patterns":[{"include":"#statements"}]},"after-operator-block-as-object-literal":{"name":"meta.objectliteral.tsx","begin":"(?<=[=(,\\[?+!]|await|return|yield|throw|in|of|typeof|&&|\\|\\||\\*)\\s*(\\{)","beginCaptures":{"1":{"name":"punctuation.definition.block.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"patterns":[{"include":"#object-member"}]},"object-literal":{"name":"meta.objectliteral.tsx","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"patterns":[{"include":"#object-member"}]},"object-member":{"patterns":[{"include":"#comment"},{"include":"#object-literal-method-declaration"},{"name":"meta.object.member.tsx meta.object-literal.key.tsx","begin":"(?=\\[)","end":"(?=:)","patterns":[{"include":"#array-literal"}]},{"name":"meta.object.member.tsx meta.object-literal.key.tsx","begin":"(?=[\\'\\\"])","end":"(?=:)","patterns":[{"include":"#string"}]},{"name":"meta.object.member.tsx","match":"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=:)","captures":{"0":{"name":"meta.object-literal.key.tsx"},"1":{"name":"constant.numeric.decimal.tsx"}}},{"name":"meta.object.member.tsx","match":"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n)))","captures":{"0":{"name":"meta.object-literal.key.tsx"},"1":{"name":"entity.name.function.tsx"}}},{"name":"meta.object.member.tsx","match":"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)","captures":{"0":{"name":"meta.object-literal.key.tsx"}}},{"name":"meta.object.member.tsx","begin":"\\.\\.\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.tsx"}},"end":"(?=,|\\})","patterns":[{"include":"#expression"}]},{"name":"meta.object.member.tsx","match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$)","captures":{"1":{"name":"variable.other.readwrite.tsx"}}},{"name":"meta.object.member.tsx","begin":"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)","end":"(?=,|\\}|$)","patterns":[{"include":"#expression"}]},{"name":"meta.object.member.tsx","begin":":","beginCaptures":{"0":{"name":"meta.object-literal.key.tsx punctuation.separator.key-value.tsx"}},"end":"(?=,|\\})","patterns":[{"include":"#expression"}]},{"include":"#punctuation-comma"}]},"ternary-expression":{"begin":"(\\?)","beginCaptures":{"0":{"name":"keyword.operator.ternary.tsx"}},"end":"(:)","endCaptures":{"0":{"name":"keyword.operator.ternary.tsx"}},"patterns":[{"include":"#expression"}]},"function-call":{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\.\\s*)*|(\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\\s*(<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?\\()","end":"(?<=\\))(?!(([_$[:alpha:]][_$[:alnum:]]*\\s*\\.\\s*)*|(\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)\\s*(<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?\\()","patterns":[{"name":"meta.function-call.tsx","begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\.\\s*)*|(\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))","end":"(?=\\s*(<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?\\()","patterns":[{"include":"#literal"},{"include":"#support-objects"},{"include":"#object-identifiers"},{"include":"#punctuation-accessor"},{"name":"keyword.operator.expression.import.tsx","match":"(?![\\.\\$])\\bimport(?=\\s*[\\(]\\s*[\\\"\\'\\`])"},{"name":"entity.name.function.tsx","match":"([_$[:alpha:]][_$[:alnum:]]*)"}]},{"include":"#comment"},{"name":"meta.type.parameters.tsx","begin":"\\<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.tsx"}},"end":"\\>","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.tsx"}},"patterns":[{"include":"#type"},{"include":"#punctuation-comma"}]},{"include":"#paren-expression"}]},"new-expr":{"name":"new.expr.tsx","begin":"(?<!\\.|\\$)\\b(new)\\b(?!\\$|\\.)","beginCaptures":{"1":{"name":"keyword.operator.new.tsx"}},"end":"(?<=\\))|(?=[;),}\\]]|$|((?<!\\.|\\$)\\bnew\\b(?!\\$|\\.))|((?<!\\.|\\$)\\bfunction((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))","patterns":[{"include":"#paren-expression"},{"include":"#class-declaration"},{"include":"#type"}]},"paren-expression":{"begin":"\\(","beginCaptures":{"0":{"name":"meta.brace.round.tsx"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}]},"cast":{"patterns":[{"include":"#jsx"}]},"expression-operators":{"patterns":[{"name":"keyword.control.flow.tsx","match":"(?<!\\.|\\$)\\b(await)\\b(?!\\$|\\.)"},{"match":"(?<!\\.|\\$)\\b(yield)\\b(?!\\$|\\.)(?:\\s*(\\*))?","captures":{"1":{"name":"keyword.control.flow.tsx"},"2":{"name":"keyword.generator.asterisk.tsx"}}},{"name":"keyword.operator.expression.delete.tsx","match":"(?<!\\.|\\$)\\bdelete\\b(?!\\$|\\.)"},{"name":"keyword.operator.expression.in.tsx","match":"(?<!\\.|\\$)\\bin\\b(?!\\$|\\.)"},{"name":"keyword.operator.expression.of.tsx","match":"(?<!\\.|\\$)\\bof\\b(?!\\$|\\.)"},{"name":"keyword.operator.expression.instanceof.tsx","match":"(?<!\\.|\\$)\\binstanceof\\b(?!\\$|\\.)"},{"name":"keyword.operator.new.tsx","match":"(?<!\\.|\\$)\\bnew\\b(?!\\$|\\.)"},{"include":"#typeof-operator"},{"name":"keyword.operator.expression.void.tsx","match":"(?<!\\.|\\$)\\bvoid\\b(?!\\$|\\.)"},{"begin":"(?<!\\.|\\$)\\b(as)\\s+","beginCaptures":{"1":{"name":"keyword.control.as.tsx"}},"end":"(?=$|^|[;,:})\\]]|((?<!\\.|\\$)\\b(as)\\s+))","patterns":[{"include":"#type"}]},{"name":"keyword.operator.spread.tsx","match":"\\.\\.\\."},{"name":"keyword.operator.assignment.compound.tsx","match":"\\*=|(?<!\\()/=|%=|\\+=|\\-="},{"name":"keyword.operator.assignment.compound.bitwise.tsx","match":"\\&=|\\^=|<<=|>>=|>>>=|\\|="},{"name":"keyword.operator.bitwise.shift.tsx","match":"<<|>>>|>>"},{"name":"keyword.operator.comparison.tsx","match":"===|!==|==|!="},{"name":"keyword.operator.relational.tsx","match":"<=|>=|<>|<|>"},{"name":"keyword.operator.logical.tsx","match":"\\!|&&|\\|\\|"},{"name":"keyword.operator.bitwise.tsx","match":"\\&|~|\\^|\\|"},{"name":"keyword.operator.assignment.tsx","match":"\\="},{"name":"keyword.operator.decrement.tsx","match":"--"},{"name":"keyword.operator.increment.tsx","match":"\\+\\+"},{"name":"keyword.operator.arithmetic.tsx","match":"%|\\*|/|-|\\+"},{"match":"(?<=[_$[:alnum:])])\\s*(/)(?![/*])","captures":{"1":{"name":"keyword.operator.arithmetic.tsx"}}}]},"typeof-operator":{"name":"keyword.operator.expression.typeof.tsx","match":"(?<!\\.|\\$)\\btypeof\\b(?!\\$|\\.)"},"literal":{"patterns":[{"include":"#numeric-literal"},{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#undefined-literal"},{"include":"#numericConstant-literal"},{"include":"#array-literal"},{"include":"#this-literal"},{"include":"#super-literal"}]},"array-literal":{"name":"meta.array.literal.tsx","begin":"\\[","beginCaptures":{"0":{"name":"meta.brace.square.tsx"}},"end":"\\]","endCaptures":{"0":{"name":"meta.brace.square.tsx"}},"patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}]},"numeric-literal":{"patterns":[{"name":"constant.numeric.hex.tsx","match":"\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)"},{"name":"constant.numeric.binary.tsx","match":"\\b(?<!\\$)0(b|B)[01]+\\b(?!\\$)"},{"name":"constant.numeric.octal.tsx","match":"\\b(?<!\\$)0(o|O)?[0-7]+\\b(?!\\$)"},{"match":"(?x)\n(?<!\\$)(?:\n  (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n  (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)|       # 1.E+3\n  (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)|       # .1E+3\n  (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)|           # 1E+3\n  (?:\\b[0-9]+(\\.)[0-9]+\\b)|                # 1.1\n  (?:\\b[0-9]+(\\.)\\B)|                      # 1.\n  (?:\\B(\\.)[0-9]+\\b)|                      # .1\n  (?:\\b[0-9]+\\b(?!\\.))                     # 1\n)(?!\\$)","captures":{"0":{"name":"constant.numeric.decimal.tsx"},"1":{"name":"meta.delimiter.decimal.period.tsx"},"2":{"name":"meta.delimiter.decimal.period.tsx"},"3":{"name":"meta.delimiter.decimal.period.tsx"},"4":{"name":"meta.delimiter.decimal.period.tsx"},"5":{"name":"meta.delimiter.decimal.period.tsx"},"6":{"name":"meta.delimiter.decimal.period.tsx"}}}]},"boolean-literal":{"patterns":[{"name":"constant.language.boolean.true.tsx","match":"(?<!\\.|\\$)\\btrue\\b(?!\\$)"},{"name":"constant.language.boolean.false.tsx","match":"(?<!\\.|\\$)\\bfalse\\b(?!\\$)"}]},"null-literal":{"name":"constant.language.null.tsx","match":"(?<!\\.|\\$)\\bnull\\b(?!\\$)"},"this-literal":{"name":"variable.language.this.tsx","match":"(?<!\\$)((?<=\\.\\.\\.)|(?<!\\.))\\bthis\\b(?!\\$)"},"super-literal":{"name":"variable.language.super.tsx","match":"(?<!\\.|\\$)\\bsuper\\b(?!\\$)"},"undefined-literal":{"name":"constant.language.undefined.tsx","match":"(?<!\\.|\\$)\\bundefined\\b(?!\\$)"},"numericConstant-literal":{"patterns":[{"name":"constant.language.nan.tsx","match":"(?<!\\.|\\$)\\bNaN\\b(?!\\$)"},{"name":"constant.language.infinity.tsx","match":"(?<!\\.|\\$)\\bInfinity\\b(?!\\$)"}]},"support-objects":{"patterns":[{"name":"variable.language.arguments.tsx","match":"(?<!\\.|\\$)\\b(arguments)\\b(?!\\$)"},{"name":"support.class.builtin.tsx","match":"(?x)(?<!\\.|\\$)\\b(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Float32Array|Float64Array|Function|Generator\n  |GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Promise|Proxy\n  |Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray\n  |Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\\b(?!\\$)"},{"name":"support.class.error.tsx","match":"(?<!\\.|\\$)\\b((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\\b(?!\\$)"},{"name":"support.function.tsx","match":"(?x)(?<!\\.|\\$)\\b(clear(Interval|Timeout)|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval|\n  isFinite|isNaN|parseFloat|parseInt|require|set(Interval|Timeout)|super|unescape|uneval)(?=\\s*\\()"},{"match":"(?x)(?<!\\.|\\$)\\b(Math)(?:\\s*(\\.)\\s*(?:\n  (abs|acos|acosh|asin|asinh|atan|atan2|atanh|cbrt|ceil|clz32|cos|cosh|exp|\n  expm1|floor|fround|hypot|imul|log|log10|log1p|log2|max|min|pow|random|\n  round|sign|sin|sinh|sqrt|tan|tanh|trunc)\n  |\n  (E|LN10|LN2|LOG10E|LOG2E|PI|SQRT1_2|SQRT2)))?\\b(?!\\$)","captures":{"1":{"name":"support.constant.math.tsx"},"2":{"name":"punctuation.accessor.tsx"},"3":{"name":"support.function.math.tsx"},"4":{"name":"support.constant.property.math.tsx"}}},{"match":"(?x)(?<!\\.|\\$)\\b(console)(?:\\s*(\\.)\\s*(\n  assert|clear|count|debug|dir|error|group|groupCollapsed|groupEnd|info|log\n  |profile|profileEnd|table|time|timeEnd|timeStamp|trace|warn))?\\b(?!\\$)","captures":{"1":{"name":"support.class.console.tsx"},"2":{"name":"punctuation.accessor.tsx"},"3":{"name":"support.function.console.tsx"}}},{"match":"(?<!\\.|\\$)\\b(JSON)(?:\\s*(\\.)\\s*(parse|stringify))?\\b(?!\\$)","captures":{"1":{"name":"support.constant.json.tsx"},"2":{"name":"punctuation.accessor.tsx"},"3":{"name":"support.function.json.tsx"}}},{"match":"(?x) (\\.) \\s* (?:\n  (constructor|length|prototype|__proto__)\n  |\n  (EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY))\\b(?!\\$)","captures":{"1":{"name":"punctuation.accessor.tsx"},"2":{"name":"support.variable.property.tsx"},"3":{"name":"support.constant.tsx"}}},{"match":"(?x) (?<!\\.|\\$) \\b (?:\n  (document|event|navigator|performance|screen|window)\n  |\n  (AnalyserNode|ArrayBufferView|Attr|AudioBuffer|AudioBufferSourceNode|AudioContext|AudioDestinationNode|AudioListener\n  |AudioNode|AudioParam|BatteryManager|BeforeUnloadEvent|BiquadFilterNode|Blob|BufferSource|ByteString|CSS|CSSConditionRule\n  |CSSCounterStyleRule|CSSGroupingRule|CSSMatrix|CSSMediaRule|CSSPageRule|CSSPrimitiveValue|CSSRule|CSSRuleList|CSSStyleDeclaration\n  |CSSStyleRule|CSSStyleSheet|CSSSupportsRule|CSSValue|CSSValueList|CanvasGradient|CanvasImageSource|CanvasPattern\n  |CanvasRenderingContext2D|ChannelMergerNode|ChannelSplitterNode|CharacterData|ChromeWorker|CloseEvent|Comment|CompositionEvent\n  |Console|ConvolverNode|Coordinates|Credential|CredentialsContainer|Crypto|CryptoKey|CustomEvent|DOMError|DOMException\n  |DOMHighResTimeStamp|DOMImplementation|DOMString|DOMStringList|DOMStringMap|DOMTimeStamp|DOMTokenList|DataTransfer\n  |DataTransferItem|DataTransferItemList|DedicatedWorkerGlobalScope|DelayNode|DeviceProximityEvent|DirectoryEntry\n  |DirectoryEntrySync|DirectoryReader|DirectoryReaderSync|Document|DocumentFragment|DocumentTouch|DocumentType|DragEvent\n  |DynamicsCompressorNode|Element|Entry|EntrySync|ErrorEvent|Event|EventListener|EventSource|EventTarget|FederatedCredential\n  |FetchEvent|File|FileEntry|FileEntrySync|FileException|FileList|FileReader|FileReaderSync|FileSystem|FileSystemSync\n  |FontFace|FormData|GainNode|Gamepad|GamepadButton|GamepadEvent|Geolocation|GlobalEventHandlers|HTMLAnchorElement\n  |HTMLAreaElement|HTMLAudioElement|HTMLBRElement|HTMLBaseElement|HTMLBodyElement|HTMLButtonElement|HTMLCanvasElement\n  |HTMLCollection|HTMLContentElement|HTMLDListElement|HTMLDataElement|HTMLDataListElement|HTMLDialogElement|HTMLDivElement\n  |HTMLDocument|HTMLElement|HTMLEmbedElement|HTMLFieldSetElement|HTMLFontElement|HTMLFormControlsCollection|HTMLFormElement\n  |HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLIFrameElement|HTMLImageElement|HTMLInputElement\n  |HTMLKeygenElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLLinkElement|HTMLMapElement|HTMLMediaElement\n  |HTMLMetaElement|HTMLMeterElement|HTMLModElement|HTMLOListElement|HTMLObjectElement|HTMLOptGroupElement|HTMLOptionElement\n  |HTMLOptionsCollection|HTMLOutputElement|HTMLParagraphElement|HTMLParamElement|HTMLPreElement|HTMLProgressElement\n  |HTMLQuoteElement|HTMLScriptElement|HTMLSelectElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElement\n  |HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement\n  |HTMLTableRowElement|HTMLTableSectionElement|HTMLTextAreaElement|HTMLTimeElement|HTMLTitleElement|HTMLTrackElement\n  |HTMLUListElement|HTMLUnknownElement|HTMLVideoElement|HashChangeEvent|History|IDBCursor|IDBCursorWithValue|IDBDatabase\n  |IDBEnvironment|IDBFactory|IDBIndex|IDBKeyRange|IDBMutableFile|IDBObjectStore|IDBOpenDBRequest|IDBRequest|IDBTransaction\n  |IDBVersionChangeEvent|IIRFilterNode|IdentityManager|ImageBitmap|ImageBitmapFactories|ImageData|Index|InputDeviceCapabilities\n  |InputEvent|InstallEvent|InstallTrigger|KeyboardEvent|LinkStyle|LocalFileSystem|LocalFileSystemSync|Location|MIDIAccess\n  |MIDIConnectionEvent|MIDIInput|MIDIInputMap|MIDIOutputMap|MediaElementAudioSourceNode|MediaError|MediaKeyMessageEvent\n  |MediaKeySession|MediaKeyStatusMap|MediaKeySystemAccess|MediaKeySystemConfiguration|MediaKeys|MediaRecorder|MediaStream\n  |MediaStreamAudioDestinationNode|MediaStreamAudioSourceNode|MessageChannel|MessageEvent|MessagePort|MouseEvent\n  |MutationObserver|MutationRecord|NamedNodeMap|Navigator|NavigatorConcurrentHardware|NavigatorGeolocation|NavigatorID\n  |NavigatorLanguage|NavigatorOnLine|Node|NodeFilter|NodeIterator|NodeList|NonDocumentTypeChildNode|Notification\n  |OfflineAudioCompletionEvent|OfflineAudioContext|OscillatorNode|PageTransitionEvent|PannerNode|ParentNode|PasswordCredential\n  |Path2D|PaymentAddress|PaymentRequest|PaymentResponse|Performance|PerformanceEntry|PerformanceFrameTiming|PerformanceMark\n  |PerformanceMeasure|PerformanceNavigation|PerformanceNavigationTiming|PerformanceObserver|PerformanceObserverEntryList\n  |PerformanceResourceTiming|PerformanceTiming|PeriodicSyncEvent|PeriodicWave|Plugin|Point|PointerEvent|PopStateEvent\n  |PortCollection|Position|PositionError|PositionOptions|PresentationConnectionClosedEvent|PresentationConnectionList\n  |PresentationReceiver|ProcessingInstruction|ProgressEvent|PromiseRejectionEvent|PushEvent|PushRegistrationManager\n  |RTCCertificate|RTCConfiguration|RTCPeerConnection|RTCSessionDescriptionCallback|RTCStatsReport|RadioNodeList|RandomSource\n  |Range|ReadableByteStream|RenderingContext|SVGAElement|SVGAngle|SVGAnimateColorElement|SVGAnimateElement|SVGAnimateMotionElement\n  |SVGAnimateTransformElement|SVGAnimatedAngle|SVGAnimatedBoolean|SVGAnimatedEnumeration|SVGAnimatedInteger|SVGAnimatedLength\n  |SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedPoints|SVGAnimatedPreserveAspectRatio\n  |SVGAnimatedRect|SVGAnimatedString|SVGAnimatedTransformList|SVGAnimationElement|SVGCircleElement|SVGClipPathElement\n  |SVGCursorElement|SVGDefsElement|SVGDescElement|SVGElement|SVGEllipseElement|SVGEvent|SVGFilterElement|SVGFontElement\n  |SVGFontFaceElement|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFontFaceUriElement\n  |SVGForeignObjectElement|SVGGElement|SVGGlyphElement|SVGGradientElement|SVGHKernElement|SVGImageElement|SVGLength\n  |SVGLengthList|SVGLineElement|SVGLinearGradientElement|SVGMPathElement|SVGMaskElement|SVGMatrix|SVGMissingGlyphElement\n  |SVGNumber|SVGNumberList|SVGPathElement|SVGPatternElement|SVGPoint|SVGPolygonElement|SVGPolylineElement|SVGPreserveAspectRatio\n  |SVGRadialGradientElement|SVGRect|SVGRectElement|SVGSVGElement|SVGScriptElement|SVGSetElement|SVGStopElement|SVGStringList\n  |SVGStylable|SVGStyleElement|SVGSwitchElement|SVGSymbolElement|SVGTRefElement|SVGTSpanElement|SVGTests|SVGTextElement\n  |SVGTextPositioningElement|SVGTitleElement|SVGTransform|SVGTransformList|SVGTransformable|SVGUseElement|SVGVKernElement\n  |SVGViewElement|ServiceWorker|ServiceWorkerContainer|ServiceWorkerGlobalScope|ServiceWorkerRegistration|ServiceWorkerState\n  |ShadowRoot|SharedWorker|SharedWorkerGlobalScope|SourceBufferList|StereoPannerNode|Storage|StorageEvent|StyleSheet\n  |StyleSheetList|SubtleCrypto|SyncEvent|Text|TextMetrics|TimeEvent|TimeRanges|Touch|TouchEvent|TouchList|Transferable\n  |TreeWalker|UIEvent|USVString|VRDisplayCapabilities|ValidityState|WaveShaperNode|WebGL|WebGLActiveInfo|WebGLBuffer\n  |WebGLContextEvent|WebGLFramebuffer|WebGLProgram|WebGLRenderbuffer|WebGLRenderingContext|WebGLShader|WebGLShaderPrecisionFormat\n  |WebGLTexture|WebGLTimerQueryEXT|WebGLTransformFeedback|WebGLUniformLocation|WebGLVertexArrayObject|WebGLVertexArrayObjectOES\n  |WebSocket|WebSockets|WebVTT|WheelEvent|Window|WindowBase64|WindowEventHandlers|WindowTimers|Worker|WorkerGlobalScope\n  |WorkerLocation|WorkerNavigator|XMLHttpRequest|XMLHttpRequestEventTarget|XMLSerializer|XPathExpression|XPathResult\n  |XSLTProcessor))\\b(?!\\$)","captures":{"1":{"name":"support.variable.dom.tsx"},"2":{"name":"support.class.dom.tsx"}}},{"match":"(?x) (\\.) \\s* (?:\n  (ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE\n  |DOMSTRING_SIZE_ERR|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|HIERARCHY_REQUEST_ERR|INDEX_SIZE_ERR\n  |INUSE_ATTRIBUTE_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR\n  |NOT_SUPPORTED_ERR|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|WRONG_DOCUMENT_ERR)\n  |\n  (_content|[xyz]|abbr|above|accept|acceptCharset|accessKey|action|align|[av]Link(?:color)?|all|alt|anchors|appCodeName\n  |appCore|applets|appMinorVersion|appName|appVersion|archive|areas|arguments|attributes|availHeight|availLeft|availTop\n  |availWidth|axis|background|backgroundColor|backgroundImage|below|bgColor|body|border|borderBottomWidth|borderColor\n  |borderLeftWidth|borderRightWidth|borderStyle|borderTopWidth|borderWidth|bottom|bufferDepth|callee|caller|caption\n  |cellPadding|cells|cellSpacing|ch|characterSet|charset|checked|childNodes|chOff|cite|classes|className|clear\n  |clientInformation|clip|clipBoardData|closed|code|codeBase|codeType|color|colorDepth|cols|colSpan|compact|complete\n  |components|content|controllers|cookie|cookieEnabled|cords|cpuClass|crypto|current|data|dateTime|declare|defaultCharset\n  |defaultChecked|defaultSelected|defaultStatus|defaultValue|defaultView|defer|description|dialogArguments|dialogHeight\n  |dialogLeft|dialogTop|dialogWidth|dir|directories|disabled|display|docmain|doctype|documentElement|elements|embeds\n  |enabledPlugin|encoding|enctype|entities|event|expando|external|face|fgColor|filename|firstChild|fontFamily|fontSize\n  |fontWeight|form|formName|forms|frame|frameBorder|frameElement|frames|hasFocus|hash|headers|height|history|host\n  |hostname|href|hreflang|hspace|htmlFor|httpEquiv|id|ids|ignoreCase|images|implementation|index|innerHeight|innerWidth\n  |input|isMap|label|lang|language|lastChild|lastIndex|lastMatch|lastModified|lastParen|layer[sXY]|left|leftContext\n  |lineHeight|link|linkColor|links|listStyleType|localName|location|locationbar|longDesc|lowsrc|lowSrc|marginBottom\n  |marginHeight|marginLeft|marginRight|marginTop|marginWidth|maxLength|media|menubar|method|mimeTypes|multiline|multiple\n  |name|nameProp|namespaces|namespaceURI|next|nextSibling|nodeName|nodeType|nodeValue|noHref|noResize|noShade|notationName\n  |notations|noWrap|object|offscreenBuffering|onLine|onreadystatechange|opener|opsProfile|options|oscpu|outerHeight\n  |outerWidth|ownerDocument|paddingBottom|paddingLeft|paddingRight|paddingTop|page[XY]|page[XY]Offset|parent|parentLayer\n  |parentNode|parentWindow|pathname|personalbar|pixelDepth|pkcs11|platform|plugins|port|prefix|previous|previousDibling\n  |product|productSub|profile|profileend|prompt|prompter|protocol|publicId|readOnly|readyState|referrer|rel|responseText\n  |responseXML|rev|right|rightContext|rowIndex|rows|rowSpan|rules|scheme|scope|screen[XY]|screenLeft|screenTop|scripts\n  |scrollbars|scrolling|sectionRowIndex|security|securityPolicy|selected|selectedIndex|selection|self|shape|siblingAbove\n  |siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary\n  |systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead\n  |title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile\n  |vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\\b(?!\\$|\\s*(<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?\\()","captures":{"1":{"name":"punctuation.accessor.tsx"},"2":{"name":"support.constant.dom.tsx"},"3":{"name":"support.variable.property.dom.tsx"}}},{"name":"support.class.node.tsx","match":"(?x)(?<!\\.|\\$)\\b(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream\n  |Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\\b(?!\\$)"},{"match":"(?x)(?<!\\.|\\$)\\b(process)(?:(\\.)(?:\n  (arch|argv|config|connected|env|execArgv|execPath|exitCode|mainModule|pid|platform|release|stderr|stdin|stdout|title|version|versions)\n  |\n  (abort|chdir|cwd|disconnect|exit|[sg]ete?[gu]id|send|[sg]etgroups|initgroups|kill|memoryUsage|nextTick|umask|uptime|hrtime)\n))?\\b(?!\\$)","captures":{"1":{"name":"support.variable.object.process.tsx"},"2":{"name":"punctuation.accessor.tsx"},"3":{"name":"support.variable.property.process.tsx"},"4":{"name":"support.function.process.tsx"}}},{"match":"(?<!\\.|\\$)\\b(?:(exports)|(module)(?:(\\.)(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)","captures":{"1":{"name":"support.type.object.module.tsx"},"2":{"name":"support.type.object.module.tsx"},"3":{"name":"punctuation.accessor.tsx"},"4":{"name":"support.type.object.module.tsx"}}},{"name":"support.variable.object.node.tsx","match":"(?<!\\.|\\$)\\b(global|GLOBAL|root|__dirname|__filename)\\b(?!\\$)"},{"match":"(?x) (\\.) \\s*\n(?:\n (on(?:Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\n   Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\n   Before(?:cut|deactivate|unload|update|paste|print|editfocus|activate)|\n   Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\n   Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\n   Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\n   Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\n   Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\n ) |\n (shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\n   scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\n   sup|sub|substr|substring|splice|split|send|set(?:Milliseconds|Seconds|Minutes|Hours|\n   Month|Year|FullYear|Date|UTC(?:Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\n   Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\n   savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\n   contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\n   createEventObject|to(?:GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\n   test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\n   untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\n   print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\n   fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\n   forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\n   abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\n   releaseCapture|releaseEvents|go|get(?:Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\n   Time|Date|TimezoneOffset|UTC(?:Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\n   Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\n   moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back\n ) |\n (acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\n   appendChild|appendData|before|blur|canPlayType|captureStream|\n   caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\n   cloneContents|cloneNode|cloneRange|close|closest|collapse|\n   compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\n   convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\n   createAttributeNS|createCaption|createCDATASection|createComment|\n   createContextualFragment|createDocument|createDocumentFragment|\n   createDocumentType|createElement|createElementNS|createEntityReference|\n   createEvent|createExpression|createHTMLDocument|createNodeIterator|\n   createNSResolver|createProcessingInstruction|createRange|createShadowRoot|\n   createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\n   deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\n   deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\n   enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\n   exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\n   getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\n   getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\n   getClientRects|getContext|getDestinationInsertionPoints|getElementById|\n   getElementsByClassName|getElementsByName|getElementsByTagName|\n   getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\n   getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\n   hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\n   insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\n   insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\n   isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\n   lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\n   moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\n   parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\n   previousSibling|probablySupportsContext|queryCommandEnabled|\n   queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\n   querySelector|querySelectorAll|registerContentHandler|registerElement|\n   registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\n   removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|\n   removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\n   requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\n   scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\n   setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\n   setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\n   setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\n   slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\n   submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\n   toDataURL|toggle|toString|values|write|writeln\n )\n)(?=\\s*\\()","captures":{"1":{"name":"punctuation.accessor.tsx"},"2":{"name":"support.function.event-handler.tsx"},"3":{"name":"support.function.tsx"},"4":{"name":"support.function.dom.tsx"}}}]},"identifiers":{"patterns":[{"include":"#object-identifiers"},{"match":"(?x)(?:(\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(<*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n  )) |\n  ((async\\s*)?(\n    # sure shot arrow functions even if => is on new line\n(\n  [(]\\s*\n  (\n    ([)]\\s*:) |                                                                 # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                            # [(]param: | [(]...param:\n  )\n) |\n(\n  [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]                                        # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n  (<\\s*[_$[:alpha:]\\{\\(\\[]([^<>=]|=[^<]|\\<\\s*[_$[:alpha:]\\{\\(\\[]([^=<>]|=[^<])+\\>)+>\\s*)?                                                           # typeparameters\n  \\((\\s*[_$[:alpha:]\\{\\(]([^()]|\\((\\s*[_$[:alpha:]\\{\\(]\\{\\(][^()]*)?\\))*)?\\)    # parameteres\n  (\\s*:\\s*([^<>\\(\\)]|\\<[^<>]+\\>|\\([^\\(\\)]+\\))+)?                                # return type\n  \\s*=>                                                                         # arrow operator\n)\n  ))\n))","captures":{"1":{"name":"punctuation.accessor.tsx"},"2":{"name":"entity.name.function.tsx"}}},{"match":"(\\.)\\s*([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])","captures":{"1":{"name":"punctuation.accessor.tsx"},"2":{"name":"variable.other.constant.property.tsx"}}},{"match":"(\\.)\\s*([_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.tsx"},"2":{"name":"variable.other.property.tsx"}}},{"name":"variable.other.constant.tsx","match":"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{"name":"variable.other.readwrite.tsx","match":"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{"patterns":[{"name":"support.class.tsx","match":"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\.\\s*prototype\\b(?!\\$))"},{"match":"(?x)(\\.)\\s*(?:\n  ([[:upper:]][_$[:digit:][:upper:]]*) |\n  ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.tsx"},"2":{"name":"variable.other.constant.object.property.tsx"},"3":{"name":"variable.other.object.property.tsx"}}},{"match":"(?x)(?:\n  ([[:upper:]][_$[:digit:][:upper:]]*) |\n  ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)","captures":{"1":{"name":"variable.other.constant.object.tsx"},"2":{"name":"variable.other.object.tsx"}}}]},"type-annotation":{"patterns":[{"name":"meta.type.annotation.tsx","begin":"(:)(?=\\s*\\S)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.tsx"}},"end":"(?<![:|&])((?=$|^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))","patterns":[{"include":"#type"}]},{"name":"meta.type.annotation.tsx","begin":"(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.tsx"}},"end":"(?<![:|&])((?=[,);\\}\\]]|//)|(?==[^>])|(?=^\\s*$)|((?<=\\S)(?=\\s*$))|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))","patterns":[{"include":"#type"}]}]},"return-type":{"patterns":[{"name":"meta.return.type.tsx","begin":"(?<=\\))\\s*(:)(?=\\s*\\S)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.tsx"}},"end":"(?<![:|&])(?=$|^|[{};,]|//)","patterns":[{"include":"#return-type-core"}]},{"name":"meta.return.type.tsx","begin":"(?<=\\))\\s*(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.tsx"}},"end":"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))","patterns":[{"include":"#return-type-core"}]}]},"return-type-core":{"patterns":[{"include":"#comment"},{"begin":"(?<=[:|&])(?=\\s*\\{)","end":"(?<=\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"arrow-return-type":{"name":"meta.return.type.arrow.tsx","begin":"(?<=\\))\\s*(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.tsx"}},"end":"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))","patterns":[{"begin":"(?<=[:])(?=\\s*\\{)","end":"(?<=\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"type-parameters":{"name":"meta.type.parameters.tsx","begin":"(<)","beginCaptures":{"1":{"name":"punctuation.definition.typeparameters.begin.tsx"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.typeparameters.end.tsx"}},"patterns":[{"include":"#comment"},{"name":"storage.modifier.tsx","match":"(?<!\\.|\\$)\\b(extends)\\b(?!\\$)"},{"name":"keyword.operator.assignment.tsx","match":"\\=(?!>)"},{"include":"#type"},{"include":"#punctuation-comma"}]},"type":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numeric-literal"},{"include":"#type-primitive"},{"include":"#type-builtin-literals"},{"include":"#type-parameters"},{"include":"#type-tuple"},{"include":"#type-object"},{"include":"#type-operators"},{"include":"#type-fn-type-parameters"},{"include":"#type-paren-or-function-parameters"},{"include":"#type-function-return-type"},{"include":"#type-name"}]},"type-primitive":{"name":"support.type.primitive.tsx","match":"(?<!\\.|\\$)\\b(string|number|boolean|symbol|any|void|never)\\b(?!\\$|\\.)"},"type-builtin-literals":{"name":"support.type.builtin.tsx","match":"(?<!\\.|\\$)\\b(this|true|false|undefined|null|object)\\b(?!\\$|\\.)"},"type-tuple":{"name":"meta.type.tuple.tsx","begin":"\\[","beginCaptures":{"0":{"name":"meta.brace.square.tsx"}},"end":"\\]","endCaptures":{"0":{"name":"meta.brace.square.tsx"}},"patterns":[{"include":"#type"},{"include":"#punctuation-comma"}]},"type-object":{"name":"meta.object.type.tsx","begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"patterns":[{"include":"#comment"},{"include":"#method-declaration"},{"include":"#indexer-declaration"},{"include":"#indexer-mapped-type-declaration"},{"include":"#field-declaration"},{"include":"#type-annotation"},{"begin":"\\.\\.\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.tsx"}},"end":"(?=\\}|;|,|$)|(?<=\\})","patterns":[{"include":"#type"}]},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"},{"include":"#type"}]},"type-paren-or-function-parameters":{"name":"meta.type.paren.cover.tsx","begin":"\\(","beginCaptures":{"0":{"name":"meta.brace.round.tsx"}},"end":"\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#type"},{"include":"#function-parameters"}]},"type-fn-type-parameters":{"patterns":[{"name":"meta.type.constructor.tsx","match":"(?<!\\.|\\$)\\b(new)\\b(?=\\s*\\<)","captures":{"1":{"name":"keyword.control.new.tsx"}}},{"name":"meta.type.constructor.tsx","begin":"(?<!\\.|\\$)\\b(new)\\b\\s*(?=\\()","beginCaptures":{"1":{"name":"keyword.control.new.tsx"}},"end":"(?<=\\))","patterns":[{"include":"#function-parameters"}]},{"name":"meta.type.function.tsx","begin":"(?x)(\n  (?=\n    [(]\\s*(\n      ([)]) |\n      (\\.\\.\\.) |\n      ([_$[:alnum:]]+\\s*(\n        ([:,?=])|\n        ([)]\\s*=>)\n      ))\n    )\n  )\n)","end":"(?<=\\))","patterns":[{"include":"#function-parameters"}]}]},"type-function-return-type":{"patterns":[{"name":"meta.type.function.return.tsx","begin":"(=>)(?=\\s*\\S)","beginCaptures":{"1":{"name":"storage.type.function.arrow.tsx"}},"end":"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>]|//|$)","patterns":[{"include":"#type-function-return-type-core"}]},{"name":"meta.type.function.return.tsx","begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.tsx"}},"end":"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))","patterns":[{"include":"#type-function-return-type-core"}]}]},"type-function-return-type-core":{"patterns":[{"include":"#comment"},{"begin":"(?<==>)(?=\\s*\\{)","end":"(?<=\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"type-operators":{"patterns":[{"include":"#typeof-operator"},{"begin":"([&|])(?=\\s*\\{)","beginCaptures":{"0":{"name":"keyword.operator.type.tsx"}},"end":"(?<=\\})","patterns":[{"include":"#type-object"}]},{"begin":"[&|]","beginCaptures":{"0":{"name":"keyword.operator.type.tsx"}},"end":"(?=\\S)"},{"name":"keyword.operator.expression.keyof.tsx","match":"(?<!\\.|\\$)\\bkeyof\\b(?!\\$|\\.)"}]},"type-predicate-operator":{"name":"keyword.operator.expression.is.tsx","match":"(?<!\\.|\\$)\\bis\\b(?!\\$|\\.)"},"type-name":{"patterns":[{"match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\.)","captures":{"1":{"name":"entity.name.type.module.tsx"},"2":{"name":"punctuation.accessor.tsx"}}},{"name":"entity.name.type.tsx","match":"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{"name":"punctuation.separator.comma.tsx","match":","},"punctuation-semicolon":{"name":"punctuation.terminator.statement.tsx","match":";"},"punctuation-accessor":{"name":"punctuation.accessor.tsx","match":"\\."},"string":{"patterns":[{"include":"#qstring-single"},{"include":"#qstring-double"}]},"qstring-double":{"name":"string.quoted.double.tsx","begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.tsx"}},"end":"(\")|((?:[^\\\\\\n])$)","endCaptures":{"1":{"name":"punctuation.definition.string.end.tsx"},"2":{"name":"invalid.illegal.newline.tsx"}},"patterns":[{"include":"#string-character-escape"}]},"qstring-single":{"name":"string.quoted.single.tsx","begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.tsx"}},"end":"(\\')|((?:[^\\\\\\n])$)","endCaptures":{"1":{"name":"punctuation.definition.string.end.tsx"},"2":{"name":"invalid.illegal.newline.tsx"}},"patterns":[{"include":"#string-character-escape"}]},"string-character-escape":{"name":"constant.character.escape.tsx","match":"\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},"template":{"name":"string.template.tsx","begin":"([_$[:alpha:]][_$[:alnum:]]*)?(`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.tsx"},"2":{"name":"punctuation.definition.string.template.begin.tsx"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.template.end.tsx"}},"patterns":[{"include":"#template-substitution-element"},{"include":"#string-character-escape"}]},"template-substitution-element":{"name":"meta.template.expression.tsx","begin":"\\$\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.tsx"}},"end":"\\}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.tsx"}},"patterns":[{"include":"#expression"}],"contentName":"meta.embedded.line.tsx"},"regex":{"patterns":[{"name":"string.regexp.tsx","begin":"(?<=[=(:,\\[?+!]|return|case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/(?![\\/*])[gimuy]*(?!\\s*[a-zA-Z0-9_$]))","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.tsx"}},"end":"(/)([gimuy]*)","endCaptures":{"1":{"name":"punctuation.definition.string.end.tsx"},"2":{"name":"keyword.other.tsx"}},"patterns":[{"include":"#regexp"}]},{"name":"string.regexp.tsx","begin":"(?<![_$[:alnum:])])\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/(?![\\/*])[gimuy]*(?!\\s*[a-zA-Z0-9_$]))","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.tsx"}},"end":"(/)([gimuy]*)","endCaptures":{"1":{"name":"punctuation.definition.string.end.tsx"},"2":{"name":"keyword.other.tsx"}},"patterns":[{"include":"#regexp"}]}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"name":"keyword.other.back-reference.regexp","match":"\\\\[1-9]\\d*"},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!))","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}},"patterns":[{"include":"#regexp"}]},{"name":"meta.group.regexp","begin":"\\((\\?:)?","beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"patterns":[{"include":"#regexp"}]},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"end":"(\\])","endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}},"patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}]},{"include":"#regex-character-class"}]},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"comment":{"patterns":[{"name":"comment.block.documentation.tsx","begin":"/\\*\\*(?!/)","beginCaptures":{"0":{"name":"punctuation.definition.comment.tsx"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.tsx"}},"patterns":[{"include":"#docblock"}]},{"name":"comment.block.tsx","begin":"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?","beginCaptures":{"1":{"name":"punctuation.definition.comment.tsx"},"2":{"name":"storage.type.internaldeclaration.tsx"},"3":{"name":"punctuation.decorator.internaldeclaration.tsx"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.tsx"}}},{"begin":"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.tsx"},"2":{"name":"comment.line.double-slash.tsx"},"3":{"name":"punctuation.definition.comment.tsx"},"4":{"name":"storage.type.internaldeclaration.tsx"},"5":{"name":"punctuation.decorator.internaldeclaration.tsx"}},"end":"(?=^)","contentName":"comment.line.double-slash.tsx"}]},"directives":{"name":"comment.line.triple-slash.directive.tsx","begin":"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")))+\\s*/>\\s*$)","beginCaptures":{"1":{"name":"punctuation.definition.comment.tsx"}},"end":"(?=^)","patterns":[{"name":"meta.tag.tsx","begin":"(<)(reference|amd-dependency|amd-module)","beginCaptures":{"1":{"name":"punctuation.definition.tag.directive.tsx"},"2":{"name":"entity.name.tag.directive.tsx"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.directive.tsx"}},"patterns":[{"name":"entity.other.attribute-name.directive.tsx","match":"path|types|no-default-lib|name"},{"name":"keyword.operator.assignment.tsx","match":"="},{"include":"#string"}]}]},"docblock":{"patterns":[{"match":"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.access-type.jsdoc"}}},{"match":"(?x)\n((@)author)\n\\s+\n(\n  [^@\\s<>*/]\n  (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n  \\s*\n  (<)\n  ([^>\\s]+)\n  (>)\n)?","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{"name":"constant.other.email.link.underline.jsdoc"},"6":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}}},{"match":"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)    # <that namepath>\n\\s+ (as) \\s+              # as\n((?:[^@\\s*/]|\\*[^/])+)    # <this namepath>","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"keyword.operator.control.jsdoc"},"5":{"name":"entity.name.type.instance.jsdoc"}}},{"name":"meta.example.jsdoc","begin":"((@)example)\\s+","end":"(?=@|\\*/)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"patterns":[{"match":"^\\s\\*\\s+"},{"contentName":"constant.other.description.jsdoc","begin":"\\G(<)caption(>)","beginCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}},"end":"(</)caption(>)|(?=\\*/)","endCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}}},{"match":"[^\\s@*](?:[^*]|\\*[^/])*","captures":{"0":{"name":"source.embedded.tsx"}}}]},{"match":"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.symbol-type.jsdoc"}}},{"match":"(?x)\n((@)see)\n\\s+\n(?:\n  # URL\n  (\n    (?=https?://)\n    (?:[^\\s*]|\\*[^/])+\n  )\n  |\n  # JSDoc namepath\n  (\n    (?!\n      # Avoid matching bare URIs (also acceptable as links)\n      https?://\n      |\n      # Avoid matching {@inline tags}; we match those below\n      (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n      {@(?:link|linkcode|linkplain|tutorial)\\b\n    )\n    # Matched namepath\n    (?:[^@\\s*/]|\\*[^/])+\n  )\n)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.link.underline.jsdoc"},"4":{"name":"entity.name.type.instance.jsdoc"}}},{"match":"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n  [A-Za-z_$]         # First character: non-numeric word character\n  [\\w$.\\[\\]]*        # Rest of identifier\n  (?:                # Possible list of additional identifiers\n    \\s* , \\s*\n    [A-Za-z_$]\n    [\\w$.\\[\\]]*\n  )*\n)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}}},{"match":"(?x)\n(\n  (@)\n  (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n  [A-Za-z_$]\n  [\\w$.\\[\\]]*\n)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}}},{"begin":"((@)typedef)\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"name":"entity.name.type.instance.jsdoc","match":"(?:[^@\\s*/]|\\*[^/])+"}]},{"begin":"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"name":"variable.other.jsdoc","match":"([A-Za-z_$][\\w$.\\[\\]]*)"},{"name":"variable.other.jsdoc","match":"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n  (?:\\[\\])?                                        # Foo[ ].bar properties within an array\n  \\.                                                # Foo.Bar namespaced parameter\n  [\\w$]+\n)*\n(?:\n  \\s*\n  (=)                                                # [foo=bar] Default parameter value\n  \\s*\n  (\n    # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n    (?>\n      \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |                      # [foo=\"bar\"] Double-quoted\n      '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |                      # [foo='bar'] Single-quoted\n      \\[ (?:(?:\\*(?!/))|[^*])*? \\] |                                # [foo=[1,2]] Array literal\n      (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*   # Everything else\n    )*\n  )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))","captures":{"1":{"name":"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{"name":"keyword.operator.assignment.jsdoc"},"3":{"name":"source.embedded.tsx"},"4":{"name":"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{"name":"invalid.illegal.syntax.jsdoc"}}}]},{"begin":"(?x)\n(\n  (@)\n  (?:define|enum|exception|export|extends|lends|implements|modifies\n  |namespace|private|protected|returns?|suppress|this|throws|type\n  |yields?)\n)\n\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"}]},{"match":"(?x)\n(\n  (@)\n  (?:alias|augments|callback|constructs|emits|event|fires|exports?\n  |extends|external|function|func|host|lends|listens|interface|memberof!?\n  |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n  (?:\n    [^{}@\\s*] | \\*[^/]\n  )+\n)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"}}},{"contentName":"variable.other.jsdoc","begin":"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"},"4":{"name":"punctuation.definition.string.begin.jsdoc"}},"end":"(\\3)|(?=$|\\*/)","endCaptures":{"0":{"name":"variable.other.jsdoc"},"1":{"name":"punctuation.definition.string.end.jsdoc"}}},{"match":"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)","captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}}},{"name":"storage.type.class.jsdoc","match":"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b","captures":{"1":{"name":"punctuation.definition.block.tag.jsdoc"}}},{"include":"#inline-tags"}]},"brackets":{"patterns":[{"begin":"{","end":"}|(?=\\*/)","patterns":[{"include":"#brackets"}]},{"begin":"\\[","end":"\\]|(?=\\*/)","patterns":[{"include":"#brackets"}]}]},"inline-tags":{"patterns":[{"name":"constant.other.description.jsdoc","match":"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))","captures":{"1":{"name":"punctuation.definition.bracket.square.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.square.end.jsdoc"}}},{"name":"entity.name.type.instance.jsdoc","begin":"({)((@)(?:link(?:code|plain)?|tutorial))\\s*","beginCaptures":{"1":{"name":"punctuation.definition.bracket.curly.begin.jsdoc"},"2":{"name":"storage.type.class.jsdoc"},"3":{"name":"punctuation.definition.inline.tag.jsdoc"}},"end":"}|(?=\\*/)","endCaptures":{"0":{"name":"punctuation.definition.bracket.curly.end.jsdoc"}},"patterns":[{"match":"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?","captures":{"1":{"name":"variable.other.link.underline.jsdoc"},"2":{"name":"punctuation.separator.pipe.jsdoc"}}},{"match":"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?","captures":{"1":{"name":"variable.other.description.jsdoc"},"2":{"name":"punctuation.separator.pipe.jsdoc"}}}]}]},"jsdoctype":{"patterns":[{"name":"invalid.illegal.type.jsdoc","match":"\\G{(?:[^}*]|\\*[^/}])+$"},{"contentName":"entity.name.type.instance.jsdoc","begin":"\\G({)","beginCaptures":{"0":{"name":"entity.name.type.instance.jsdoc"},"1":{"name":"punctuation.definition.bracket.curly.begin.jsdoc"}},"end":"((}))\\s*|(?=\\*/)","endCaptures":{"1":{"name":"entity.name.type.instance.jsdoc"},"2":{"name":"punctuation.definition.bracket.curly.end.jsdoc"}},"patterns":[{"include":"#brackets"}]}]},"jsx":{"patterns":[{"include":"#jsx-tag-without-attributes-in-expression"},{"include":"#jsx-tag-in-expression"},{"include":"#jsx-tag-invalid"}]},"jsx-tag-without-attributes-in-expression":{"begin":"(?x)\n  (?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\Wreturn|^return|\\Wdefault|^)\\s*\n  (?=(<)\\s*((?:[a-z][a-z0-9]*|([_$a-zA-Z][-$\\w.]*))(?<!\\.|-))\\s*(>))","end":"(?!\\s*(<)\\s*((?:[a-z][a-z0-9]*|([_$a-zA-Z][-$\\w.]*))(?<!\\.|-))\\s*(>))","patterns":[{"include":"#jsx-tag-without-attributes"}]},"jsx-tag-without-attributes":{"name":"meta.tag.without-attributes.tsx","begin":"(<)\\s*((?:[a-z][a-z0-9]*|([_$a-zA-Z][-$\\w.]*))(?<!\\.|-))\\s*(>)","end":"(</)\\s*((?:[a-z][a-z0-9]*|([_$a-zA-Z][-$\\w.]*))(?<!\\.|-))\\s*(>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.tsx"},"2":{"name":"entity.name.tag.tsx"},"3":{"name":"support.class.component.tsx"},"4":{"name":"punctuation.definition.tag.end.tsx"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.begin.tsx"},"2":{"name":"entity.name.tag.tsx"},"3":{"name":"support.class.component.tsx"},"4":{"name":"punctuation.definition.tag.end.tsx"}},"contentName":"meta.jsx.children.tsx","patterns":[{"include":"#jsx-children"}]},"jsx-tag-in-expression":{"begin":"(?x)\n  (?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\Wreturn|^return|\\Wdefault|^)\\s*\n  (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n  (?=(<)\\s*\n  ([_$a-zA-Z][-$\\w.]*(?<!\\.|-))\n  (?=\\s+(?!\\?)|/?>))","end":"(/>)|(?:(</)\\s*((?:[a-z][a-z0-9]*|([_$a-zA-Z][-$\\w.]*))(?<!\\.|-))\\s*(>))","endCaptures":{"0":{"name":"meta.tag.tsx"},"1":{"name":"punctuation.definition.tag.end.tsx"},"2":{"name":"punctuation.definition.tag.begin.tsx"},"3":{"name":"entity.name.tag.tsx"},"4":{"name":"support.class.component.tsx"},"5":{"name":"punctuation.definition.tag.end.tsx"}},"patterns":[{"include":"#jsx-tag"}]},"jsx-child-tag":{"begin":"(?x)\n  (?=(<)\\s*\n  ([_$a-zA-Z][-$\\w.]*(?<!\\.|-))\n  (?=\\s+(?!\\?)|/?>))","end":"(/>)|(?:(</)\\s*((?:[a-z][a-z0-9]*|([_$a-zA-Z][-$\\w.]*))(?<!\\.|-))\\s*(>))","endCaptures":{"0":{"name":"meta.tag.tsx"},"1":{"name":"punctuation.definition.tag.end.tsx"},"2":{"name":"punctuation.definition.tag.begin.tsx"},"3":{"name":"entity.name.tag.tsx"},"4":{"name":"support.class.component.tsx"},"5":{"name":"punctuation.definition.tag.end.tsx"}},"patterns":[{"include":"#jsx-tag"}]},"jsx-tag":{"name":"meta.tag.tsx","begin":"(?x)\n  (?=(<)\\s*\n  ([_$a-zA-Z][-$\\w.]*(?<!\\.|-))\n  (?=\\s+(?!\\?)|/?>))","end":"(?=(/>)|(?:(</)\\s*([_$a-zA-Z][-$\\w.]*(?<!\\.|-))\\s*(>)))","patterns":[{"begin":"(?x)\n  (<)\\s*\n  ((?:[a-z][a-z0-9]*|([_$a-zA-Z][-$\\w.]*))(?<!\\.|-))\n  (?=\\s+(?!\\?)|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.tsx"},"2":{"name":"entity.name.tag.tsx"},"3":{"name":"support.class.component.tsx"}},"end":"(?=[/]?>)","contentName":"meta.tag.attributes.tsx","patterns":[{"include":"#comment"},{"include":"#jsx-tag-attributes"},{"include":"#jsx-tag-attributes-illegal"}]},{"begin":"(>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.end.tsx"}},"end":"(?=</)","contentName":"meta.jsx.children.tsx","patterns":[{"include":"#jsx-children"}]}]},"jsx-tag-invalid":{"name":"invalid.illegal.tag.incomplete.tsx","match":"<\\s*>"},"jsx-children":{"patterns":[{"include":"#jsx-tag-without-attributes"},{"include":"#jsx-child-tag"},{"include":"#jsx-tag-invalid"},{"include":"#jsx-evaluated-code"},{"include":"#jsx-entities"}]},"jsx-evaluated-code":{"name":"meta.embedded.expression.tsx","begin":"\\{","end":"\\}","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.tsx"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.tsx"}},"patterns":[{"include":"#expression"}]},"jsx-entities":{"patterns":[{"name":"constant.character.entity.tsx","match":"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","captures":{"1":{"name":"punctuation.definition.entity.tsx"},"3":{"name":"punctuation.definition.entity.tsx"}}},{"name":"invalid.illegal.bad-ampersand.tsx","match":"&"}]},"jsx-tag-attributes":{"patterns":[{"include":"#jsx-tag-attribute-name"},{"include":"#jsx-tag-attribute-assignment"},{"include":"#jsx-string-double-quoted"},{"include":"#jsx-string-single-quoted"},{"include":"#jsx-evaluated-code"}]},"jsx-tag-attribute-name":{"match":"(?x)\n  \\s*\n  ([_$a-zA-Z][-$\\w]*)\n  (?=\\s|=|/?>|/\\*|//)","captures":{"1":{"name":"entity.other.attribute-name.tsx"}}},"jsx-tag-attribute-assignment":{"name":"keyword.operator.assignment.tsx","match":"=(?=\\s*(?:'|\"|{|/\\*|//|\\n))"},"jsx-string-double-quoted":{"name":"string.quoted.double.tsx","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.tsx"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.tsx"}},"patterns":[{"include":"#jsx-entities"}]},"jsx-string-single-quoted":{"name":"string.quoted.single.tsx","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.tsx"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.tsx"}},"patterns":[{"include":"#jsx-entities"}]},"jsx-tag-attributes-illegal":{"name":"invalid.illegal.attribute.tsx","match":"\\S+"}}},"/Users/sadick/github/highlights/deps/language-xml/grammars/xml.cson":{"scopeName":"text.xml","name":"XML","fileTypes":["bpmn","config","cpt","csl","csproj","csproj.user","dtml","fsproj","fxml","isml","jsp","nuspec","opml","proj","pt","pubxml","pubxml.user","rdf","rng","rss","shproj","storyboard","svg","targets","tld","vbproj","vbproj.user","vcxproj","vcxproj.filters","wsdl","xaml","xib","xlf","xliff","xml","xpdl","xsd"],"patterns":[{"begin":"(<\\?)\\s*([-_a-zA-Z0-9]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"}},"end":"(\\?>)","name":"meta.tag.preprocessor.xml","patterns":[{"match":" ([a-zA-Z-]+)","name":"entity.other.attribute-name.xml"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"begin":"(<!)(DOCTYPE)\\s+([:a-zA-Z_][:a-zA-Z0-9_.-]*)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.doctype.xml"},"3":{"name":"variable.language.documentroot.xml"}},"end":"\\s*(>)","name":"meta.tag.sgml.doctype.xml","patterns":[{"include":"#internalSubset"}]},{"begin":"<[!%]--","captures":{"0":{"name":"punctuation.definition.comment.xml"}},"end":"--%?>","name":"comment.block.xml"},{"begin":"(<)((?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?></\\2>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"entity.name.tag.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"}},"end":"(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]+)(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"meta.scope.between-tag-pair.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"entity.name.tag.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"},"7":{"name":"punctuation.definition.tag.xml"}},"name":"meta.tag.no-content.xml","patterns":[{"include":"#tagStuff"}]},{"begin":"(</?)(?:([-\\w\\.]+)((:)))?([-\\w\\.:]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(/?>)","name":"meta.tag.xml","patterns":[{"include":"#tagStuff"}]},{"include":"#entity"},{"include":"#bare-ampersand"},{"begin":"<%@","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java-props.embedded.xml","patterns":[{"match":"page|include|taglib","name":"keyword.other.page-props.xml"}]},{"begin":"<%[!=]?(?!--)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"(?!--)%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java.embedded.xml","patterns":[{"include":"source.java"}]},{"begin":"<!\\[CDATA\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"]]>","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.unquoted.cdata.xml"}],"repository":{"EntityDecl":{"begin":"(<!)(ENTITY)\\s+(%\\s+)?([:a-zA-Z_][:a-zA-Z0-9_.-]*)(\\s+(?:SYSTEM|PUBLIC)\\s+)?","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.entity.xml"},"3":{"name":"punctuation.definition.entity.xml"},"4":{"name":"variable.language.entity.xml"},"5":{"name":"keyword.other.entitytype.xml"}},"end":"(>)","patterns":[{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},"bare-ampersand":{"match":"&","name":"invalid.illegal.bad-ampersand.xml"},"doublequotedString":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"entity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)","name":"constant.character.entity.xml"},"internalSubset":{"begin":"(\\[)","captures":{"1":{"name":"punctuation.definition.constant.xml"}},"end":"(\\])","name":"meta.internalsubset.xml","patterns":[{"include":"#EntityDecl"},{"include":"#parameterEntity"}]},"parameterEntity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)","name":"constant.character.parameter-entity.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"tagStuff":{"patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":" (?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9]+)="},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]}}},"/Users/sadick/github/highlights/deps/language-xml/grammars/xsl.cson":{"scopeName":"text.xml.xsl","name":"XSL","fileTypes":["xsl","xslt"],"patterns":[{"begin":"(<)(xsl)((:))(template)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)","name":"meta.tag.xml.template","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":" (?:([-_a-zA-Z0-9]+)((:)))?([a-zA-Z-]+)"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"include":"text.xml"}],"repository":{"doublequotedString":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml"}}},"/Users/sadick/github/highlights/deps/language-yaml/grammars/yaml.cson":{"scopeName":"source.yaml","name":"YAML","fileTypes":["eyaml","eyml","yaml","yml"],"firstLineMatch":"^#cloud-config","patterns":[{"include":"#erb"},{"begin":"^(\\s*)(?:(-)|(?:(-\\s*)?(\\S+\\s*(:))))\\s*(\\||>)","beginCaptures":{"2":{"name":"punctuation.definition.entry.yaml"},"3":{"name":"punctuation.definition.entry.yaml"},"4":{"name":"entity.name.tag.yaml"},"5":{"name":"punctuation.separator.key-value.yaml"}},"end":"^((?=\\s*#(?!#))|(?!\\1\\s+)(?=\\s*(-|\\S+\\s*:)|#))","name":"string.unquoted.block.yaml","patterns":[{"include":"#erb"}]},{"captures":{"1":{"name":"punctuation.definition.entry.yaml"},"2":{"name":"entity.name.tag.yaml"},"3":{"name":"punctuation.separator.key-value.yaml"},"4":{"name":"punctuation.definition.entry.yaml"}},"match":"(?:(?:(-\\s*)?([^\\s#].*?(:)(?=\\s)))|(-))\\s*((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\s*($|(?=#)(?!#\\{))","name":"constant.numeric.yaml"},{"begin":"(?:(?:(-\\s*)?([^\\s#].*?(:)(?=\\s)))|(-))[ \t]*","beginCaptures":{"1":{"name":"punctuation.definition.entry.yaml"},"2":{"name":"entity.name.tag.yaml"},"3":{"name":"punctuation.separator.key-value.yaml"},"4":{"name":"punctuation.definition.entry.yaml"}},"end":"$|(?=#)(?!#\\{)","patterns":[{"name":"string.unquoted.yaml","match":"\\!\\s*"},{"include":"#double_quoted_string"},{"include":"#single_quoted_string"},{"name":"string.unquoted.yaml","match":"[^\"'#\\n]([^#\\n]|((?<!\\s)#))*"}],"name":"string.unquoted.yaml"},{"captures":{"1":{"name":"punctuation.definition.entry.yaml"},"2":{"name":"entity.name.tag.yaml"},"3":{"name":"punctuation.separator.key-value.yaml"},"4":{"name":"punctuation.definition.entry.yaml"}},"match":"(?:(?:(-\\s*)?(\\w+\\s*(:)))|(-))\\s*([0-9]{4}-[0-9]{2}-[0-9]{2})\\s*($|(?=#)(?!#\\{))","name":"constant.other.date.yaml"},{"captures":{"1":{"name":"entity.name.tag.yaml"},"2":{"name":"punctuation.separator.key-value.yaml"},"3":{"name":"keyword.other.omap.yaml"},"4":{"name":"punctuation.definition.keyword.yaml"}},"match":"(\\w.*?)(:)\\s*((\\!\\!)omap)?","name":"meta.tag.yaml"},{"captures":{"1":{"name":"punctuation.definition.variable.yaml"}},"match":"(\\&|\\*)\\w.*?$","name":"variable.other.yaml"},{"include":"#double_quoted_string"},{"include":"#single_quoted_string"},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.interpolated.yaml","patterns":[{"include":"#escaped_char"},{"include":"#erb"}]},{"captures":{"1":{"name":"entity.name.tag.yaml"},"2":{"name":"keyword.operator.merge-key.yaml"},"3":{"name":"punctuation.definition.keyword.yaml"}},"match":"(\\<\\<): ((\\*).*)$","name":"keyword.operator.merge-key.yaml"},{"disabled":"1","match":"( |\t)+$","name":"invalid.deprecated.trailing-whitespace.yaml"},{"begin":"(^[ \\t]+)?(?<!\\$)(?<=^|[ \\t])(?=#)(?!#\\{)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.yaml"}},"end":"(?!\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.yaml"}},"end":"\\n","name":"comment.line.number-sign.yaml"}]},{"match":"-","name":"keyword.operator.symbol"},{"begin":"^(?=\\t)","end":"(?=[^\\t])","name":"meta.leading-tabs.yaml","patterns":[{"captures":{"1":{"name":"meta.odd-tab"},"2":{"name":"meta.even-tab"}},"match":"(\\t)(\\t)?"}]}],"repository":{"erb":{"begin":"<%+(?!>)=?","beginCaptures":{"0":{"name":"punctuation.definition.embedded.begin.ruby"}},"contentName":"source.ruby.rails","end":"(%)>","endCaptures":{"0":{"name":"punctuation.definition.embedded.end.ruby"},"1":{"name":"source.ruby.rails"}},"name":"meta.embedded.line.ruby","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.ruby"}},"match":"(#).*?(?=%>)","name":"comment.line.number-sign.ruby"},{"include":"source.ruby.rails"}]},"escaped_char":{"match":"\\\\.","name":"constant.character.escape.yaml"},"double_quoted_string":{"begin":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.double.yaml","patterns":[{"include":"#escaped_char"},{"include":"#erb"}]},"single_quoted_string":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.single.yaml","patterns":[{"include":"#escaped_char"},{"include":"#erb"}]}}}}