From 4df2871a46647a5b2d98508e3548241430b68822 Mon Sep 17 00:00:00 2001 From: ThaCuber <70547062+thacuber2a03@users.noreply.github.com> Date: Wed, 19 Jun 2024 22:02:12 -0400 Subject: [PATCH] improve number highlighting for c (#1752) * improve number highlighting for c * add unsigned suffix * add long suffixes * reorder octal literals and add suffix for hex numbers * fix integer and float suffixes too many characters, send help --- data/plugins/language_c.lua | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/data/plugins/language_c.lua b/data/plugins/language_c.lua index c15466be..2804fb7b 100644 --- a/data/plugins/language_c.lua +++ b/data/plugins/language_c.lua @@ -1,6 +1,11 @@ -- mod-version:3 local syntax = require "core.syntax" +-- integer suffix combinations as a regex +local isuf = [[(?:[lL][uU]|ll[uU]|LL[uU]|[uU][lL]\b|[uU]ll|[uU]LL|[uU]|[lL]\b|ll|LL)?]] +-- float suffix combinations as a Lua pattern / regex +local fsuf = "[fFlL]?" + syntax.add { name = "C", files = { "%.c$" }, @@ -11,9 +16,13 @@ syntax.add { { pattern = { "/%*", "%*/" }, type = "comment" }, { pattern = { '"', '"', '\\' }, type = "string" }, { pattern = { "'", "'", '\\' }, type = "string" }, - { pattern = "0x%x+", type = "number" }, - { pattern = "%d+[%d%.eE]*f?", type = "number" }, - { pattern = "%.?%d+f?", type = "number" }, + { regex = "0x[0-9a-fA-f]+"..isuf, type = "number" }, + { regex = "0()[0-7]+"..isuf, type = { "keyword", "number" } }, + { pattern = "%d+%.%d*[Ee]%d+"..fsuf, type = "number" }, + { pattern = "%d+[Ee]%d+"..fsuf, type = "number" }, + { pattern = "%d+%.%d*"..fsuf, type = "number" }, + { pattern = "%.%d+"..fsuf, type = "number" }, + { regex = "\\d+"..isuf, type = "number" }, { pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, { pattern = "##", type = "operator" }, { pattern = "struct%s()[%a_][%w_]*", type = {"keyword", "keyword2"} },