{ "information_for_contributors": [ "This file has been converted from https://github.com/fadeevab/make.tmbundle/blob/master/Syntaxes/bakefile.plist", "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/fadeevab/make.tmbundle/commit/fa280d2f20b0b63dc7c11b6001e9257e2c67f826", "name": "bakefile", "scopeName": "source.bakefile", "patterns": [ { "include": "#comment" }, { "include": "#target" }, { "include": "#task" }, { "include": "#directives" } ], "repository": { "comment": { "begin": "(^[ \\t]+)?(?=#)", "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.bakefile" } }, "end": "(?!\\G)", "patterns": [ { "begin": "#", "beginCaptures": { "0": { "name": "punctuation.definition.comment.bakefile" } }, "end": "(?=[^\\\\])$", "name": "comment.line.number-sign.bakefile", "patterns": [ { "match": "\\\\\\n", "name": "constant.character.escape.continuation.bakefile" } ] } ] }, "directives": { "patterns": [ { "begin": "^[ ]*([s\\-]?include)\\b", "beginCaptures": { "1": { "name": "keyword.control.include.bakefile" } }, "end": "^", "patterns": [ { "include": "#comment" }, { "match": "%", "name": "constant.other.placeholder.bakefile" } ] }, { "begin": "^[ ]*(vpath)\\b", "beginCaptures": { "1": { "name": "keyword.control.vpath.bakefile" } }, "end": "^", "patterns": [ { "include": "#comment" }, { "match": "%", "name": "constant.other.placeholder.bakefile" } ] }, { "begin": "^\\s*(?:(override)\\s*)?(define)\\s*([^\\s]+)\\s*(=|\\?=|:=|\\+=)?(?=\\s)", "captures": { "1": { "name": "keyword.control.override.bakefile" }, "2": { "name": "keyword.control.define.bakefile" }, "3": { "name": "variable.other.bakefile" }, "4": { "name": "punctuation.separator.key-value.bakefile" } }, "end": "^\\s*(endef)\\b", "name": "meta.scope.conditional.bakefile", "patterns": [ { "begin": "\\G(?!\\n)", "end": "^", "patterns": [ { "include": "#comment" } ] }, { "include": "#variables" }, { "include": "#comment" }, { "include": "#directives" } ] }, { "begin": "^[ ]*(export)\\b", "beginCaptures": { "1": { "name": "keyword.control.$1.bakefile" } }, "end": "^", "patterns": [ { "include": "#comment" }, { "include": "#variable-assignment" }, { "match": "[^\\s]+", "name": "variable.other.bakefile" } ] }, { "begin": "^[ ]*(override|private)\\b", "beginCaptures": { "1": { "name": "keyword.control.$1.bakefile" } }, "end": "^", "patterns": [ { "include": "#comment" }, { "include": "#variable-assignment" } ] }, { "begin": "^[ ]*(unexport|undefine)\\b", "beginCaptures": { "1": { "name": "keyword.control.$1.bakefile" } }, "end": "^", "patterns": [ { "include": "#comment" }, { "match": "[^\\s]+", "name": "variable.other.bakefile" } ] }, { "begin": "^\\s*(ifdef|ifndef)\\s*([^\\s]+)(?=\\s)", "captures": { "1": { "name": "keyword.control.$1.bakefile" }, "2": { "name": "variable.other.bakefile" }, "3": { "name": "punctuation.separator.key-value.bakefile" } }, "end": "^\\s*(endif)\\b", "name": "meta.scope.conditional.bakefile", "patterns": [ { "begin": "\\G(?!\\n)", "end": "^", "patterns": [ { "include": "#comment" } ] }, { "include": "$self" } ] }, { "begin": "^\\s*(ifeq|ifneq)(?=\\s)", "captures": { "1": { "name": "keyword.control.$1.bakefile" } }, "end": "^\\s*(endif)\\b", "name": "meta.scope.conditional.bakefile", "patterns": [ { "begin": "\\G", "end": "^", "name": "meta.scope.condition.bakefile", "patterns": [ { "include": "#variables" }, { "include": "#comment" } ] }, { "begin": "^\\s*else(?=\\s)", "beginCaptures": { "0": { "name": "keyword.control.else.bakefile" } }, "end": "^" }, { "include": "$self" } ] } ] }, "target": { "begin": "^(?!\\t)([^:]*)(:)(?!\\=)", "beginCaptures": { "1": { "patterns": [ { "captures": { "1": { "name": "support.function.target.$1.bakefile" } }, "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.bakefile", "patterns": [ { "include": "#variables" }, { "match": "%", "name": "constant.other.placeholder.bakefile" } ] } ] }, "2": { "name": "punctuation.separator.key-value.bakefile" } }, "end": "[^\\\\]$", "name": "meta.scope.target.bakefile", "patterns": [ { "begin": "\\G", "end": "(?=[^\\\\])$", "name": "meta.scope.prerequisites.bakefile", "patterns": [ { "match": "\\\\\\n", "name": "constant.character.escape.continuation.bakefile" }, { "match": "%|\\*", "name": "constant.other.placeholder.bakefile" }, { "include": "#comment" }, { "include": "#variables" } ] } ] }, "task": { "begin": "^(\\t| {4})([+\\-@]*)", "beginCaptures": { "1": { "name": "keyword.control.$1.bakefile" } }, "end": "[^\\\\]$", "name": "task", "patterns": [ { "match": "\\\\\\n", "name": "constant.character.escape.continuation.bakefile" }, { "include": "#variables" } ] }, "interpolation": { "patterns": [ { "include": "#parentheses-interpolation" } ] }, "parentheses-interpolation": { "begin": "\\(", "end": "\\)", "patterns": [ { "include": "#interpolation" } ] }, "braces-interpolation": { "begin": "{", "end": "}", "patterns": [ { "include": "#interpolation" } ] } } }