{"name":"Ninja","scopeName":"source.ninja","patterns":[{"name":"comment.line.number-sign.ninja","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.ninja"}}},{"name":"meta.$1.ninja","begin":"^(rule|pool)\\s+(\\S+)","end":"^(?=\\S)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.$1.ninja"},"2":{"name":"entity.name.function.$1.ninja","patterns":[{"include":"#escapes"}]}}},{"name":"meta.build.ninja","begin":"(?x)\n^ (build) \\s+\n((?:[^\\s:|$]|\\$.)+)\n(?:\n (\\|{1,2})\n ((?:[^:$]|\\$.)*)\n (?=:)\n)?","end":"(?\u003c!\\$)$","patterns":[{"name":"keyword.operator.build.ninja","match":"\\|{2}"},{"name":"variable.reference.ninja","match":"(?:[^\\s:|$]|\\$.)+"},{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.build.ninja"},"2":{"name":"entity.name.function.build.ninja","patterns":[{"include":"#escapes"}]},"3":{"name":"keyword.operator.build.ninja"},"4":{"patterns":[{"include":"#escapes"},{"name":"variable.reference.ninja","match":"(?:[^\\s:|$]|\\$.)+","captures":{"0":{"patterns":[{"include":"#escapes"}]}}}]}}},{"match":"(?\u003c=:)\\s*(phony)\\b","captures":{"1":{"name":"storage.modifier.phony.build.ninja"}}},{"match":"(?\u003c==)\\s*(\\.\\d+|\\d+(?:\\.\\d+)?)","captures":{"1":{"name":"constant.numeric.ninja"}}},{"name":"meta.default.ninja","begin":"^(default)(?=\\s|$)","end":"(?\u003c!\\$)$","patterns":[{"name":"entity.name.function.build.ninja","match":"\\S+"},{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.build.default.ninja"}}},{"name":"meta.command.ninja","begin":"^\\s*(command)\\s*(=)","end":"(?\u003c!\\$)$","patterns":[{"include":"$self"},{"match":"(?:\\G|^)(.+)(?=$)","captures":{"1":{"name":"embedded.source.shell","patterns":[{"include":"source.shell"}]}}}],"beginCaptures":{"1":{"name":"variable.language.rule.ninja"},"2":{"name":"keyword.operator.assignment.ninja"}}},{"name":"meta.property.ninja","match":"(?x) ^ \\s* (depfile|deps|msvc_deps_prefix|description|generator|in |in_newline|out|restat|rspfile|rspfile_content) \\s* (=)","captures":{"1":{"name":"support.variable.language.rule.ninja"},"2":{"name":"keyword.operator.assignment.ninja"}}},{"name":"meta.$1.ninja","contentName":"string.unquoted.filename.ninja","begin":"^(subninja|include)\\s+","end":"(?\u003c!\\$)$","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.operator.$1.ninja"}}},{"name":"punctuation.separator.dictionary.key-value.ninja","match":":"},{"match":"^\\s*(\\w+)\\s*(=)","captures":{"1":{"name":"variable.parameter.reference.ninja"},"2":{"name":"keyword.operator.assignment.ninja"}}},{"name":"variable.parameter.reference.ninja","match":"(\\$)\\w+","captures":{"1":{"name":"punctuation.definition.variable.ninja"}}},{"name":"constant.character.escape.newline.ninja","match":"\\$$\\n?"},{"name":"variable.other.bracket.ninja","match":"(\\${)\\s*[^{}]+\\s*(})","captures":{"1":{"name":"punctuation.definition.variable.begin.ninja"},"2":{"name":"punctuation.definition.variable.end.ninja"}}},{"include":"#escapes"}],"repository":{"escapes":{"patterns":[{"name":"constant.character.escape.dollar-sign.ninja","match":"\\${2}"},{"name":"constant.character.escape.whitespace.ninja","match":"\\$[ \\t]"},{"name":"constant.character.escape.colon.ninja","match":"\\$:"}]}}}