{"name":"Nim","scopeName":"source.nim","patterns":[{"include":"source.nim.comment"},{"name":"source.c.embedded.nim","patterns":[{"begin":"\\{\\.(emit:) ?(\\\"\\\"\\\")","end":"(\\\"\\\"\\\")\\.?","patterns":[{"name":"keyword.operator.nim","begin":"\\`","end":"\\`"},{"include":"source.c"}],"captures":{"1":{"name":"keyword.other.nim"},"2":{"name":"comment.syntax.nim"}},"endCaptures":{"1":{"name":"comment.syntax.nim"}}}]},{"name":"source.asm.embedded.nim","patterns":[{"begin":"(asm )(\\\"\\\"\\\")","end":"\\\"\\\"\\\"","patterns":[{"name":"keyword.operator.nim","begin":"\\`","end":"\\`"},{}],"captures":{"1":{"name":"keyword.other.nim"},"2":{"name":"comment.syntax.nim"}},"endCaptures":{"0":{"name":"comment.syntax.nim"}}}]},{"name":"meta.proc.nim","patterns":[{"begin":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(proc|func|method|template|macro|iterator|converter)\\s+((\\`[^\\s\\`]+\\`)|([\\w\\x{80}-\\x{10FFFF}]+))(\\*)?","end":"(\\=)","patterns":[{"match":"\\[[\\w\\x{80}-\\x{10FFFF}]+\\]"},{"begin":"\\{","end":"\\}","patterns":[{"name":"string.something.nim","begin":"\\\"","end":"\\\""},{"name":"entity.other.attribute-name.pattern.nim","match":"([\\w\\x{80}-\\x{10FFFF}]+)"}]},{"begin":"\\(","end":"\\)","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"name":"string.something.nim","begin":"\\\"","end":"\\\""},{"name":"entity.other.attribute-name.pattern.nim","match":"([\\[\\]\\w\\x{80}-\\x{10FFFF}]+)"}]},{"include":"source.nim"}]},{"include":"source.nim"}],"beginCaptures":{"1":{"name":"storage.type.proc.nim"},"2":{"name":"entity.name.function.nim"},"5":{"name":"keyword.operator.secondary.kw-public.nim"}},"endCaptures":{"1":{"name":"keyword.operator.nim"}}}]},{"name":"pragma","begin":"\\{\\.","end":"\\.?\\}","patterns":[{"name":"string.something.nim","begin":"\\\"","end":"\\\""},{"name":"entity.other.attribute-name.pragma.nim","match":"([\\w\\x{80}-\\x{10FFFF}]+)"}]},{"name":"comment.line.discarded.nim","begin":"discard \\\"\\\"\\\"","end":"\\\"\\\"\\\""},{"name":"constant.numeric.float.decimal.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(\\d[_\\d]*((\\.[_\\d]+([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*)))('?([fF](32|64|128))|[fFdD])?"},{"name":"constant.numeric.integer.hexadecimal.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(0[xX][0-9A-Fa-f][_0-9A-Fa-f]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?"},{"name":"constant.numeric.integer.octal.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(0[ocC][0-7][_0-7]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?"},{"name":"constant.numeric.integer.binary.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(0(b|B)[01][_01]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?"},{"name":"constant.numeric.integer.decimal.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(\\d[_\\d]*)('?(([iIuUfF](8|16|32|64))|[uUfFdD]))?"},{"name":"constant.language.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(true|false|inf|nil)(?![\\w\\x{80}-\\x{10FFFF}])"},{"begin":"(?:^|\\s+|=)(when|if)\\b","end":"(?=:)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.control.primary.nim"}},"endCaptures":{"1":{"name":"control.variable.parameter.nim"}}},{"begin":"(?:^|\\s+|=)(case)\\b","end":"(?=\\bof\\b)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.control.primary.nim"}},"endCaptures":{"1":{"name":"control.variable.parameter.nim"}}},{"begin":"(?:^|\\s+)(of|else|elif)\\b","end":"(?=:)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.control.secondary.nim"}},"endCaptures":{"1":{"name":"control.variable.parameter.nim"}}},{"name":"keyword.control.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(await|block|break|continue|do|end|except|finally|raise|return|try|while|yield)(?![\\w\\x{80}-\\x{10FFFF}])"},{"name":"keyword.operator.boolean.nim","match":"((?\u003c![\\w\\x{80}-\\x{10FFFF}])(and|in|is|isnot|not|notin|or|xor)(?![\\w\\x{80}-\\x{10FFFF}]))"},{"name":"keyword.other.nim","match":"((?\u003c![\\w\\x{80}-\\x{10FFFF}])(addr|as|bind|cast|concept|const|converter|defer|discard|distinct|div|enum|export|from|import|include|let|mixin|object|of|out|ptr|ref|shl|shr|static|type|using|var)(?![\\w\\x{80}-\\x{10FFFF}]))"},{"name":"keyword.operator.nim","match":"(\\b()\\b|(=|\\+|-|\\*|/|\u003c|\u003e|@|\\$|~|\u0026|%|!|\\?|\\^|\\.|:|\\\\)+)"},{"name":"meta.forloop.nim","begin":"(for)\\s+","end":"(?=:)","patterns":[{"match":"\\ [\\w\\x{80}-\\x{10FFFF},]+\\s+(in)\\s+","captures":{"1":{"name":"keyword.control.nim"}}},{"include":"source.nim"}],"captures":{"1":{"name":"keyword.control.nim"}}},{"match":"((import)\\s+[\\.|\\w|\\/]+,?)","captures":{"2":{"name":"keyword.control.nim"}}},{"match":"(from)\\s+[\\/\\w]+(?:\\s+(?:as)\\s+[\\/\\w]+)?\\s+(?=import)","captures":{"1":{"name":"keyword.control.nim"}}},{"begin":"(var|let)\\s*\\(","end":"\\)","captures":{"1":{"name":"keyword.other.nim"}}},{"name":"keyword.invalid.nim","match":"((?\u003c![\\w\\x{80}-\\x{10FFFF}])(interface)(?![\\w\\x{80}-\\x{10FFFF}]))"},{"name":"keyword.other.common.function.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(new|GC_ref|GC_unref|assert|echo|defined|declared|newException|countup|countdown|len|high|low)(?![\\w\\x{80}-\\x{10FFFF}])"},{"name":"storage.type.concrete.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(((uint|int|float)(8|16|32|64)?)|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringArray|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)(?![\\w\\x{80}-\\x{10FFFF}])"},{"name":"storage.type.generic.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(range|array|seq|tuple|Natural|set|ref|ptr|pointer)(?![\\w\\x{80}-\\x{10FFFF}])"},{"name":"storage.type.function.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(proc|func|iterator|method|template|macro)(?![\\w\\x{80}-\\x{10FFFF}])"},{"name":"storage.type.generic.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(openarray|varargs|void)(?![\\w\\x{80}-\\x{10FFFF}])"},{"name":"support.constant.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])([A-Z][A-Z0-9_]+)(?![\\w\\x{80}-\\x{10FFFF}])"},{"name":"support.type.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])([A-Z]\\w+)(?![\\w\\x{80}-\\x{10FFFF}])"},{"name":"support.function.any-method.nim","match":"(?\u003c![\\w\\x{80}-\\x{10FFFF}])(\\w+)(?![\\w\\x{80}-\\x{10FFFF}])(?=\\()"},{"name":"string.quoted.triple.nim","begin":"\\w*\\\"\\\"\\\"","end":"\\\"\\\"\\\"[^\\\"]"},{"name":"string.quoted.double.raw.nim","begin":"\\w+\\\"","end":"\\\"","patterns":[{"match":"\\\"\\\""}]},{"name":"string.quoted.double.nim","begin":"\\\"","end":"\\\"","patterns":[{"include":"#escaped_char"}]},{"name":"string.quoted.single.nim","begin":"\\'","end":"\\'","patterns":[{"include":"#escaped_char"},{"name":"invalid.illegal.character.nim","match":"([^\\'][^\\']+?)"}]},{"begin":"([\\w\\x{80}-\\x{10FFFF}\\`]+)\\s*(?=\\(|\\[.+?\\]\\s*\\()","end":"\\)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"support.function.any-method.nim"}}},{"match":"([\\w\\x{80}-\\x{10FFFF}]+)(?=\\s+[\\w](?![\\w\\x{80}-\\x{10FFFF}]+((?!\\n)\\s)+))","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"support.function.any-method.nim"}}},{"match":"([\\w\\x{80}-\\x{10FFFF}]+)(?=\\s+[\\\"\\'\\`])","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"support.function.any-method.nim"}}},{"match":"(tmpl(i)?)(?=( (nim|html|xml|js|css|glsl|md))?\\\"\\\"\\\")","captures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"keyword.operator.nim"}}},{"name":"source.nim.embedded.nim","patterns":[{"begin":"(nim)(\\\"\\\"\\\")","end":"\\\"\\\"\\\"","patterns":[{"begin":"(?\u003c!\\$)(\\$)\\(","end":"\\)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)\\{","end":"\\}","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )","end":"(\\{|\\n)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.control.nim"}},"endCaptures":{"1":{"name":"plain"}}},{"name":"keyword.operator.nim","match":"(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"},{"include":"source.nim"}],"captures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"comment.syntax.nim"}},"endCaptures":{"0":{"name":"comment.syntax.nim"}}}]},{"name":"source.html.embedded.nim","patterns":[{"begin":"(html)(\\\"\\\"\\\")","end":"\\\"\\\"\\\"","patterns":[{"begin":"(?\u003c!\\$)(\\$)\\(","end":"\\)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)\\{","end":"\\}","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )","end":"(\\{|\\n)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.control.nim"}},"endCaptures":{"1":{"name":"plain"}}},{"name":"keyword.operator.nim","match":"(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"},{"include":"text.xml"}],"captures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"comment.syntax.nim"}},"endCaptures":{"0":{"name":"comment.syntax.nim"}}}]},{"name":"source.xml.embedded.nim","patterns":[{"begin":"(xml)(\\\"\\\"\\\")","end":"\\\"\\\"\\\"","patterns":[{"begin":"(?\u003c!\\$)(\\$)\\(","end":"\\)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)\\{","end":"\\}","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )","end":"(\\{|\\n)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.control.nim"}},"endCaptures":{"1":{"name":"plain"}}},{"name":"keyword.operator.nim","match":"(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"},{"include":"text.xml"}],"captures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"comment.syntax.nim"}},"endCaptures":{"0":{"name":"comment.syntax.nim"}}}]},{"name":"source.js.embedded.nim","patterns":[{"begin":"(js)(\\\"\\\"\\\")","end":"\\\"\\\"\\\"","patterns":[{"begin":"(?\u003c!\\$)(\\$)\\(","end":"\\)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)\\{","end":"\\}","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )","end":"(\\{|\\n)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.control.nim"}},"endCaptures":{"1":{"name":"plain"}}},{"name":"keyword.operator.nim","match":"(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"},{"include":"source.js"}],"captures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"comment.syntax.nim"}},"endCaptures":{"0":{"name":"comment.syntax.nim"}}}]},{"name":"source.css.embedded.nim","patterns":[{"begin":"(css)(\\\"\\\"\\\")","end":"\\\"\\\"\\\"","patterns":[{"begin":"(?\u003c!\\$)(\\$)\\(","end":"\\)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)\\{","end":"\\}","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )","end":"(\\{|\\n)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.control.nim"}},"endCaptures":{"1":{"name":"plain"}}},{"name":"keyword.operator.nim","match":"(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"},{"include":"source.css"}],"captures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"comment.syntax.nim"}},"endCaptures":{"0":{"name":"comment.syntax.nim"}}}]},{"name":"source.glsl.embedded.nim","patterns":[{"begin":"(glsl)(\\\"\\\"\\\")","end":"\\\"\\\"\\\"","patterns":[{"begin":"(?\u003c!\\$)(\\$)\\(","end":"\\)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)\\{","end":"\\}","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )","end":"(\\{|\\n)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.control.nim"}},"endCaptures":{"1":{"name":"plain"}}},{"name":"keyword.operator.nim","match":"(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"},{"include":"source.glsl"}],"captures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"comment.syntax.nim"}},"endCaptures":{"0":{"name":"comment.syntax.nim"}}}]},{"name":"source.markdown.embedded.nim","patterns":[{"begin":"(md)(\\\"\\\"\\\")","end":"\\\"\\\"\\\"","patterns":[{"begin":"(?\u003c!\\$)(\\$)\\(","end":"\\)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)\\{","end":"\\}","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.operator.nim"}}},{"begin":"(?\u003c!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )","end":"(\\{|\\n)","patterns":[{"include":"source.nim"}],"captures":{"1":{"name":"keyword.operator.nim"},"2":{"name":"keyword.control.nim"}},"endCaptures":{"1":{"name":"plain"}}},{"name":"keyword.operator.nim","match":"(?\u003c!\\$)(\\$[a-zA-Z0-9_]+)"},{}],"captures":{"1":{"name":"storage.type.function.nim"},"2":{"name":"comment.syntax.nim"}},"endCaptures":{"0":{"name":"comment.syntax.nim"}}}]}],"repository":{"escaped_char":{"patterns":[{"name":"constant.character.escape.newline.nim","match":"\\\\[nN]"},{"name":"constant.character.escape.carriagereturn.nim","match":"\\\\[cC]|\\\\[rR]"},{"name":"constant.character.escape.linefeed.nim","match":"\\\\[lL]"},{"name":"constant.character.escape.formfeed.nim","match":"\\\\[fF]"},{"name":"constant.character.escape.tabulator.nim","match":"\\\\[tT]"},{"name":"constant.character.escape.verticaltabulator.nim","match":"\\\\[vV]"},{"name":"constant.character.escape.double-quote.nim","match":"\\\\\\\""},{"name":"constant.character.escape.single-quote.nim","match":"\\\\'"},{"name":"constant.character.escape.chardecimalvalue.nim","match":"\\\\[0-9]+"},{"name":"constant.character.escape.alert.nim","match":"\\\\[aA]"},{"name":"constant.character.escape.backspace.nim","match":"\\\\[bB]"},{"name":"constant.character.escape.escape.nim","match":"\\\\[eE]"},{"name":"constant.character.escape.hex.nim","match":"\\\\[xX][0-9A-Fa-f]{2}"},{"name":"constant.character.escape.backslash.nim","match":"\\\\\\\\"}]}}}