{"name":"Hy","scopeName":"source.hy","patterns":[{"include":"#comment"},{"include":"#shebang"},{"include":"#quoted-sexp"},{"include":"#sexp"},{"include":"#keyfn"},{"include":"#string"},{"include":"#vector"},{"include":"#set"},{"include":"#map"},{"include":"#regexp"},{"include":"#var"},{"include":"#constants"},{"include":"#dynamic-variables"},{"include":"#metadata"},{"include":"#namespace-symbol"},{"include":"#symbol"}],"repository":{"comment":{"name":"comment.line.semicolon.hy","begin":"(?\u003c!\\\\);(;{1,3})?","end":"$","patterns":[{"name":"keyword.codetag.hy","match":"(?\u003c=;)\\s+\\K(TODO|FIXME|XXX|BUG|HACK|NOTE):"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.hy"}}},"constants":{"patterns":[{"name":"constant.language.null.hy","match":"(None)(?=(\\s|\\)|\\]|\\}))"},{"name":"constant.language.boolean.hy","match":"(True|False)"},{"name":"constant.numeric.fraction.hy","match":"(-?\\d+/\\d+)"},{"name":"constant.numeric.hexadecimal.hy","match":"(-?0[xX][0-9a-fA-F]+)"},{"name":"constant.numeric.octal.hy","match":"(-?0[oO][0-7]+)"},{"name":"constant.numeric.float.hy","match":"(-?\\d+\\.\\d+([eE][+-]?\\d+)?)"},{"name":"constant.numeric.complex.hy","match":"((-?\\d+(\\.(\\d+([eE][+-]?\\d+)?)?)?)[+-](\\d+(\\.(\\d+([eE][+-]?\\d+)?)?)?)?[jJ])"},{"name":"constant.numeric.int.hy","match":"(-?\\d+)"},{"include":"#keyword"}]},"dynamic-variables":{"name":"meta.symbol.dynamic.hy","match":"\\*[\\w\\.\\-\\_\\:\\+\\=\\\u003e\\\u003c\\!\\?\\d]+\\*"},"keyfn":{"patterns":[{"name":"keyword.control.hy","match":"(?\u003c=(\\s|\\(|\\[|\\{))(break|continue)|((if|set[vx])(-[-\\p{Ll}\\?]*)?|(unless|when|while|[dgls]?for)(-[-\\p{Ll}]*)?|cond|do|fn(/a)?|raise[\\p{Ll}\\-]*|try|except|finally|return|yield)(?=(\\s|\\)|\\]|\\}))"},{"name":"keyword.operator.hy","match":"(?\u003c=(\\s|\\(|\\[|\\{))(and|cmp|not|or|xor)(?=(\\s|\\)|\\]|\\}))"},{"name":"keyword.other.hy","match":"^#@(?=\\()|(?\u003c=(\\s|\\(|\\[|\\{))(\\.\\s|__\\p{Ll}+__|(as)?-\u003e\u003e?|as(sert)?|async|await|def(class|n(/a)?|main|macro(/g\\!|\\!)?|tag)|del|doto|eval-(and|when)-compile|gensym|in|import|pys?|quasiquote|quote|require|unquote(-splice)?|with(-decorator|-gensyms|/a)?|yield-from)(?=(\\s|\\)|\\]|\\}))"},{"name":"storage.modifier.hy","match":"(?\u003c=(\\s|\\(|\\[|\\{))(global|nonlocal)(?=(\\s|\\)|\\]|\\}))"}]},"keyword":{"name":"constant.keyword.hy","match":"(?\u003c=(\\s|\\(|\\[|\\{)):[\\w\\#\\.\\-\\_\\:\\+\\=\\\u003e\\\u003c\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))"},"map":{"name":"meta.map.hy","begin":"(\\{)","end":"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.map.begin.hy"}},"endCaptures":{"1":{"name":"punctuation.section.map.end.trailing.hy"},"2":{"name":"punctuation.section.map.end.hy"}}},"metadata":{"patterns":[{"name":"meta.metadata.map.hy","begin":"(\\^\\{)","end":"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.metadata.map.begin.hy"}},"endCaptures":{"1":{"name":"punctuation.section.metadata.map.end.trailing.hy"},"2":{"name":"punctuation.section.metadata.map.end.hy"}}},{"name":"meta.metadata.simple.hy","begin":"(\\^)","end":"(\\s)","patterns":[{"include":"#keyword"},{"include":"$self"}]}]},"namespace-symbol":{"patterns":[{"match":"([\\p{L}\\.\\-\\_\\+\\=\\\u003e\\\u003c\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\\u003e\\\u003c\\!\\?\\*\\d]*)/","captures":{"1":{"name":"meta.symbol.namespace.hy"}}}]},"quoted-sexp":{"name":"meta.quoted-expression.hy","begin":"(['`]\\()","end":"(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.expression.begin.hy"}},"endCaptures":{"1":{"name":"punctuation.section.expression.end.trailing.hy"},"2":{"name":"punctuation.section.expression.end.trailing.hy"},"3":{"name":"punctuation.section.expression.end.hy"}}},"regexp":{"name":"string.regexp.hy","begin":"#\"","end":"\"","patterns":[{"include":"#regexp_escaped_char"}],"beginCaptures":{"0":{"name":"punctuation.definition.regexp.begin.hy"}},"endCaptures":{"0":{"name":"punctuation.definition.regexp.end.hy"}}},"regexp_escaped_char":{"name":"constant.character.escape.hy","match":"\\\\."},"set":{"name":"meta.set.hy","begin":"(\\#\\{)","end":"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.set.begin.hy"}},"endCaptures":{"1":{"name":"punctuation.section.set.end.trailing.hy"},"2":{"name":"punctuation.section.set.end.hy"}}},"sexp":{"name":"meta.expression.hy","begin":"(\\()","end":"(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))","patterns":[{"name":"meta.definition.global.hy","begin":"(?\u003c=\\()(set[vx]|def[\\w\\d._:+=\u003e\u003c!?*-]*|[\\w._:+=\u003e\u003c!?*-][\\w\\d._:+=\u003e\u003c!?*-]*/def[\\w\\d._:+=\u003e\u003c!?*-]*)\\s+","end":"(?=\\))","patterns":[{"include":"#metadata"},{"include":"#dynamic-variables"},{"name":"entity.global.hy","match":"([\\p{L}\\.\\-\\_\\+\\=\\\u003e\\\u003c\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\\u003e\\\u003c\\!\\?\\*\\d]*)"},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.hy"}}},{"include":"#keyfn"},{"include":"#constants"},{"include":"#vector"},{"include":"#map"},{"include":"#set"},{"include":"#sexp"},{"match":"(?\u003c=\\()(.+?)(?=\\s|\\))","patterns":[{"include":"$self"}],"captures":{"1":{"name":"entity.name.function.hy"}}},{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.expression.begin.hy"}},"endCaptures":{"1":{"name":"punctuation.section.expression.end.trailing.hy"},"2":{"name":"punctuation.section.expression.end.trailing.hy"},"3":{"name":"punctuation.section.expression.end.hy"}}},"shebang":{"name":"comment.line.shebang.hy","begin":"^(#!)","end":"$","beginCaptures":{"1":{"name":"punctuation.definition.comment.shebang.hy"}}},"string":{"patterns":[{"name":"string.quoted.double.hy","begin":"(?\u003c!\\\\)(\")","end":"(\")","patterns":[{"name":"constant.character.escape.hy","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.hy"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.hy"}}},{"name":"string.quoted.bracket-string.hy","begin":"(?\u003c!\\\\)(\\#\\[\\[)","end":"(\\]\\])","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.hy"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.hy"}}}]},"symbol":{"patterns":[{"name":"meta.symbol.hy","match":"([\\p{L}\\.\\-\\_\\+\\=\\\u003e\\\u003c\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\\u003e\\\u003c\\!\\?\\*\\d]*)"}]},"var":{"name":"meta.var.hy","match":"(?\u003c=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\\u003e\\\u003c\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))"},"vector":{"name":"meta.vector.hy","begin":"(\\[)","end":"(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.vector.begin.hy"}},"endCaptures":{"1":{"name":"punctuation.section.vector.end.trailing.hy"},"2":{"name":"punctuation.section.vector.end.hy"}}}}}