{"name":"Nim Config","scopeName":"source.nimcfg","patterns":[{"include":"#comments"},{"include":"#directives"},{"include":"#assignements"}],"repository":{"assignements":{"patterns":[{"begin":"(--?)?[A-Za-z]\\w*","end":"(?:(\\[)([A-Za-z]\\w*)(]))? *(?=:|%?=)|$\\n?","patterns":[{"include":"#comments"},{"match":"(\\.)[A-Za-z]\\w*","captures":{"1":{"name":"punctuation.accessor.dot.nimcfg"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.variable.nimcfg"}},"endCaptures":{"1":{"name":"punctuation.section.brackets.begin.nimcfg"},"2":{"name":"entity.other.attribute-name.nimcfg"},"3":{"name":"punctuation.section.brackets.end.nimcfg"}}},{"begin":":|%?=","end":"$\\n?","patterns":[{"include":"#comments"},{"include":"#exprs"},{"name":"keyword.operator.nimcfg","match":"\u0026"},{"name":"punctuation.separator.key-value.nimcfg","match":"[:=]"}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.nimcfg"}}}]},"block-comments":{"patterns":[{"name":"comment.block.nimcfg","begin":"#\\[","end":"]#","patterns":[{"include":"#block-comments"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.nimcfg"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.nimcfg"}}}]},"comments":{"patterns":[{"include":"#block-comments"},{"name":"comment.line.number-sign.nimcfg","begin":"(#)(?: *(TODO|todo)\\b)?","end":"$\\n?","beginCaptures":{"1":{"name":"punctuation.definition.comment.nimcfg"},"2":{"name":"invalid.deprecated.nimcfg"}}}]},"cond-expr":{"patterns":[{"include":"#groups"},{"include":"#language-constants"},{"name":"keyword.operator.logical.nimcfg","match":"(?:and|or|not)\\b"},{"match":"[A-Za-z]\\w*"}]},"directives":{"patterns":[{"include":"#if-stmt"},{"match":"(@) *(else)(?: *(:))?","captures":{"1":{"name":"punctuation.definition.keyword.nimcfg"},"2":{"name":"keyword.control.conditional.else.nimcfg"},"3":{"name":"punctuation.section.block.begin.nimcfg"}}},{"match":"(@) *(end)","captures":{"1":{"name":"punctuation.definition.keyword.nimcfg"},"2":{"name":"keyword.control.conditional.end.nimcfg"}}},{"include":"#env-stmt"}]},"env-stmt":{"patterns":[{"begin":"(@) *((?:put|append|prepend)[Ee]nv|write)\\b","end":"$\\n?","patterns":[{"include":"#exprs"}],"beginCaptures":{"1":{"name":"punctuation.definition.keyword.nimcfg"},"2":{"name":"keyword.other.nimcfg"}}}]},"exprs":{"patterns":[{"include":"#str-lits"},{"include":"#numbers"},{"include":"#language-constants"},{"name":"string.unquoted.nimcfg","match":"[A-Za-z]\\w*"}]},"groups":{"patterns":[{"name":"meta.group.nimcfg","begin":"\\(","end":"\\)","patterns":[{"include":"#cond-expr"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.nimcfg"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.nimcfg"}}}]},"if-stmt":{"patterns":[{"begin":"(@)(?:(elif)|(if))\\b","end":"(:)|$","patterns":[{"include":"#cond-expr"}],"beginCaptures":{"1":{"name":"punctuation.definition.keyword.nimcfg"},"2":{"name":"keyword.control.conditional.elseif.nimcfg"},"3":{"name":"keyword.control.conditional.if.nimcfg"}},"endCaptures":{"1":{"name":"punctuation.section.block.begin.nimcfg"}}}]},"language-constants":{"patterns":[{"name":"constant.language.boolean.nimcfg","match":"\\b(?:true|false|on|off)\\b"}]},"numbers":{"patterns":[{"match":"(?x: \\b(0[Xx]) ([[:xdigit:]](?:_?[[:xdigit:]])*) ('?[Ii](?:8|16|32|64))? )","captures":{"0":{"name":"meta.number.integer.hexadecimal.nimcfg"},"1":{"name":"constant.numeric.base.nimcfg"},"2":{"name":"constant.numeric.value.nimcfg"},"3":{"name":"constant.numeric.suffix.nimcfg"}}},{"match":"(?x: \\b(0o) ([0-7](?:_?[0-7])*) ('?[Ii](?:8|16|32|64))? )","captures":{"0":{"name":"meta.number.integer.octal.nimcfg"},"1":{"name":"constant.numeric.base.nimcfg"},"2":{"name":"constant.numeric.value.nimcfg"},"3":{"name":"constant.numeric.suffix.nimcfg"}}},{"match":"(?x: \\b(0[Bb]) ([01](?:_?[01])*) ('?[Ii](?:8|16|32|64))? )","captures":{"0":{"name":"meta.number.integer.binary.nimcfg"},"1":{"name":"constant.numeric.base.nimcfg"},"2":{"name":"constant.numeric.value.nimcfg"},"3":{"name":"constant.numeric.suffix.nimcfg"}}},{"match":"(?x: \\b(\\d(?:_?\\d)*) ('?[Ii](?:8|16|32|64))? )","captures":{"0":{"name":"meta.number.integer.decimal.nimcfg"},"1":{"name":"constant.numeric.value.nimcfg"},"2":{"name":"constant.numeric.suffix.nimcfg"}}}]},"rstr-lit":{"patterns":[{"contentName":"string.quoted.double.nimcfg","begin":"([Rr])(\")","end":"(\"(?!\"))|(\\n)","patterns":[{"name":"constant.character.escape.nimcfg","match":"\"\""}],"beginCaptures":{"1":{"name":"storage.type.nimcfg"},"2":{"name":"string.quoted.double.nimcfg punctuation.definition.string.begin.nimcfg"}},"endCaptures":{"1":{"name":"string.quoted.double.nimcfg punctuation.definition.string.end.nimcfg"},"2":{"name":"string.quoted.double.nimcfg invalid.illegal.unclosed-string.nimcfg"}}}]},"str-lit":{"patterns":[{"name":"string.quoted.double.nimcfg","begin":"\"","end":"(\")|(\\n)","patterns":[{"name":"constant.character.escape.nimcfg","match":"\\\\(?:[ABCEFLNPRTVabceflnprtv\"'\\\\]|\\d+|[Xx][[:xdigit:]]{2}|[Uu](?:[[:xdigit:]]{4}|\\{[[:xdigit:]]+}))"},{"name":"invalid.illegal.lone-escape.nimcfg","match":"\\\\"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.nimcfg"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.nimcfg"},"2":{"name":"invalid.illegal.nimcfg"}}}]},"str-lits":{"patterns":[{"include":"#triplestr-lit"},{"include":"#rstr-lit"},{"include":"#str-lit"}]},"triplestr-lit":{"patterns":[{"contentName":"string.quoted.triple.nimcfg","begin":"([Rr])?(\"\"\")","end":"\"\"\"(?!\")","beginCaptures":{"1":{"name":"storage.type.nimcfg"},"2":{"name":"string.quoted.triple.nimcfg punctuation.definition.string.begin.nimcfg"}},"endCaptures":{"0":{"name":"string.quoted.triple.nimcfg punctuation.definition.string.end.nimcfg"}}}]}}}