diff --git a/manifest.json b/manifest.json index dc29433e..d0cd89e4 100644 --- a/manifest.json +++ b/manifest.json @@ -1319,7 +1319,7 @@ "tags": [ "language" ], - "version": "0.1.1" + "version": "0.2" }, { "description": "Syntax for [MARTe2](https://vcis.f4e.europa.eu/marte2-docs/master/html/index.html) configuration language", diff --git a/plugins/language_make.lua b/plugins/language_make.lua index eed01f5d..5993bc8c 100644 --- a/plugins/language_make.lua +++ b/plugins/language_make.lua @@ -11,9 +11,28 @@ syntax.add { { pattern = "$[@^<%%?+|*]", type = "keyword2" }, { pattern = "$%(.-%)", type = "symbol" }, { pattern = "%f[%w_][%d%.]+%f[^%w_]", type = "number" }, - { pattern = "%..*:", type = "keyword2" }, - { pattern = ".*:", type = "function" }, + { regex = [[^\s*+[^:#=\s]+\s*+()(?::{1,3}|[?+!])?=]], type = { "literal", "operator" } }, + { regex = [[^\s*+\.[^:=]+\s*+()::?]], type = { "keyword2", "operator" } }, + { regex = [[^\s*+[^:=]+\s*+()::?]], type = { "function", "operator" } }, + { pattern = "-?[^%s:#=+?!]+%f[%s]", type = "normal" }, }, symbols = { + ["define"] = "keyword", + ["endef"] = "keyword", + ["undefine"] = "keyword", + ["ifdef"] = "keyword", + ["ifndef"] = "keyword", + ["ifeq"] = "keyword", + ["ifneq"] = "keyword", + ["else"] = "keyword", + ["endif"] = "keyword", + ["include"] = "keyword", + ["-include"] = "keyword", + ["sinclude"] = "keyword", + ["override"] = "keyword", + ["export"] = "keyword", + ["unexport"] = "keyword", + ["private"] = "keyword", + ["vpath"] = "keyword", }, }