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