context default
    keyword $(*) yellow/24
    keyword ${*} brightgreen/16
    keyword whole linestart include magenta
    keyword whole linestart ifdef magenta
    keyword whole linestart endif magenta
    keyword whole linestart ifeq magenta
    keyword whole linestart ifneq magenta
    keyword whole linestart else magenta
    keyword linestart \t lightgray/13 red
    keyword whole .PHONY white/25
    keyword whole .NOEXPORT white/25
    keyword = white/25
    keyword : yellow/24
    keyword \\\n yellow/24
# this handles strange cases like @something@@somethingelse@ properly
    keyword whole @+@ brightmagenta/23 black/0
    keyword @+@ brightmagenta/23 black/0

context linestart # \n brown/22
    keyword whole @+@ brightmagenta/23 black/0
    keyword @+@ brightmagenta/23 black/0

context exclusive = \n brightcyan/17
    keyword \\\n yellow/24
    keyword $(*) yellow/24
    keyword ${*} brightgreen/16
    keyword linestart \t lightgray/13 red
    keyword whole @+@ brightmagenta/23 black/0
    keyword @+@ brightmagenta/23 black/0

context exclusive linestart \t \n
    keyword \\\n yellow/24
    keyword $(*) yellow/24
    keyword ${*} brightgreen/16
    keyword linestart \t lightgray/13 red
    keyword whole @+@ brightmagenta/23 black/0
    keyword @+@ brightmagenta/23 black/0

###############################################################################