aboutsummaryrefslogtreecommitdiff
path: root/plugins/language_cpp.lua
diff options
context:
space:
mode:
authorjgmdev <jgmdev@gmail.com>2022-02-09 19:09:26 -0400
committerjgmdev <jgmdev@gmail.com>2022-02-09 19:09:26 -0400
commit301b27c775cc37b9547aebdb905f4c1600950781 (patch)
tree280a979e77c62ec8da62eb3a55296cdc6a1c4272 /plugins/language_cpp.lua
parent92bbbeaab6a5ceec903d022c5e6fd864b05f5b81 (diff)
downloadlite-xl-plugins-301b27c775cc37b9547aebdb905f4c1600950781.tar.gz
lite-xl-plugins-301b27c775cc37b9547aebdb905f4c1600950781.zip
Fixes to language_cpp and some additions.
Diffstat (limited to 'plugins/language_cpp.lua')
-rw-r--r--plugins/language_cpp.lua12
1 files changed, 11 insertions, 1 deletions
diff --git a/plugins/language_cpp.lua b/plugins/language_cpp.lua
index 8cd36a4..e3de669 100644
--- a/plugins/language_cpp.lua
+++ b/plugins/language_cpp.lua
@@ -20,7 +20,16 @@ syntax.add {
{ pattern = "-?%.?%d+f?", type = "number" },
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" },
{ pattern = "[%a_][%w_]*%f[(]", type = "function" },
- { pattern = "#[%a_][%w_]*", type = "symbol" },
+ -- Match scope operator element access
+ { pattern = "[%a_][%w_]*[%s]*%f[:]",type = "literal" },
+ -- Uppercase constants of at least 3 characters in len
+ { pattern = "%u[%u_][%u%d_]+", type = "number" },
+ -- Magic constants
+ { pattern = "__[%u]+__", type = "number" },
+ -- Somehow makes macros properly work
+ { pattern = "#[%a_][%w_]*", type = "symbol" },
+ -- Everything else to make the tokenizer work properly
+ { pattern = "[%a_][%w_]*", type = "symbol" },
},
symbols = {
["alignof"] = "keyword",
@@ -122,6 +131,7 @@ syntax.add {
["#if"] = "keyword",
["#ifdef"] = "keyword",
["#ifndef"] = "keyword",
+ ["#elif"] = "keyword",
["#else"] = "keyword",
["#elseif"] = "keyword",
["#endif"] = "keyword",