diff options
-rw-r--r-- | plugins/language_zig.lua | 160 |
1 files changed, 30 insertions, 130 deletions
diff --git a/plugins/language_zig.lua b/plugins/language_zig.lua index 2c098af..fdd4d1a 100644 --- a/plugins/language_zig.lua +++ b/plugins/language_zig.lua @@ -5,31 +5,38 @@ syntax.add { files = { "%.zig$" }, comment = "//", patterns = { - { pattern = "//.-\n", type = "comment" }, - { pattern = "#!.-\n", type = "comment" }, - { pattern = { '"', '"', '\\' }, type = "string" }, - { pattern = { "'", "'", '\\' }, type = "string" }, - { pattern = "-?[iuf][%d_]+", type = "keyword2" }, - { pattern = "-?\\x[%x_]+", type = "number" }, - { pattern = "-?\\u{[%x_]+}", type = "number" }, - { pattern = "-?%d+[%d%.eE]*f?", type = "number" }, - { pattern = "-?%.?%d+f?", type = "number" }, - { pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, - { pattern = "[%a_][%w_]*%f[(]", type = "function" }, - { pattern = "@?[%a_][%w_]*", type = "symbol" }, + { pattern = "//.-\n", type = "comment" }, + { pattern = "\\\\.-\n", type = "string" }, + { pattern = { '"', '"', '\\' }, type = "string" }, + { pattern = { "'", "'", '\\' }, type = "string" }, + { pattern = "[iu][%d_]+", type = "keyword2" }, + { pattern = "0b[01_]+", type = "number" }, + { pattern = "0o[0-7_]+", type = "number" }, + { pattern = "0x[%x_]+", type = "number" }, + { pattern = "0x[%x_]+%.[%x_]*[pP][-+]?%d+", type = "number" }, + { pattern = "0x[%x_]+%.[%x_]*", type = "number" }, + { pattern = "0x%.[%x_]+[pP][-+]?%d+", type = "number" }, + { pattern = "0x%.[%x_]+", type = "number" }, + { pattern = "0x[%x_]+[pP][-+]?%d+", type = "number" }, + { pattern = "0x[%x_]+", type = "number" }, + { pattern = "%d[%d_]*%.[%d_]*[eE][-+]?%d+", type = "number" }, + { pattern = "%d[%d_]*%.[%d_]*", type = "number" }, + { pattern = "%d[%d_]*", type = "number" }, + { pattern = "[%+%-=/%*%^%%<>!~|&%.%?]", type = "operator" }, + { pattern = "[%a_][%w_]*()%s*%(", type = {"function", "normal"} }, + { pattern = "[A-Z][%w_]*", type = "keyword2" }, + { pattern = "[%a_][%w_]*", type = "symbol" }, + { pattern = "@()[%a_][%w_]*", type = {"operator", "function"} }, }, symbols = { ["fn"] = "keyword", - ["asm"] = "keyword", ["volatile"] = "keyword", - ["continue"] = "keyword", ["break"] = "keyword", ["switch"] = "keyword", ["for"] = "keyword", ["while"] = "keyword", - ["var"] = "keyword", ["anytype"] = "keyword", ["const"] = "keyword", @@ -42,146 +49,39 @@ syntax.add { ["errdefer"] = "keyword", ["align"] = "keyword", ["usingnamespace"] = "keyword", - ["noasync"] = "keyword", ["async"] = "keyword", ["await"] = "keyword", ["cancel"] = "keyword", ["suspend"] = "keyword", ["resume"] = "keyword", - ["threadlocal"] = "keyword", - ["linksection"] = "keyword", - ["callconv"] = "keyword", - ["try"] = "keyword", ["catch"] = "keyword", ["orelse"] = "keyword", ["unreachable"] = "keyword", - ["noreturn"] = "keyword", ["error"] = "keyword", ["if"] = "keyword", ["else"] = "keyword", ["return"] = "keyword", ["comptime"] = "keyword", - ["stdcallcc"] = "keyword", ["ccc"] = "keyword", ["nakedcc"] = "keyword", - ["and"] = "keyword", ["or"] = "keyword", - - -- std - ["@import"] = "keyword", - ["@cImport"] = "keyword", - - [ "@addWithOverflow" ] = "function", - [ "@alignCast" ] = "function", - [ "@alignOf" ] = "function", - [ "@as" ] = "function", - [ "@asyncCall" ] = "function", - [ "@atomicLoad" ] = "function", - [ "@atomicRmw" ] = "function", - [ "@atomicStore" ] = "function", - [ "@bitCast" ] = "function", - [ "@bitOffsetOf" ] = "function", - [ "@boolToInt" ] = "function", - [ "@bitSizeOf" ] = "function", - [ "@breakpoint" ] = "function", - [ "@mulAdd" ] = "function", - [ "@byteSwap" ] = "function", - [ "@bitReverse" ] = "function", - [ "@byteOffsetOf" ] = "function", - [ "@call" ] = "function", - [ "@cDefine" ] = "function", - [ "@cImport" ] = "function", - [ "@cInclude" ] = "function", - [ "@clz" ] = "function", - [ "@cmpxchgStrong" ] = "function", - [ "@cmpxchgWeak" ] = "function", - [ "@compileError" ] = "function", - [ "@compileLog" ] = "function", - [ "@ctz" ] = "function", - [ "@cUndef" ] = "function", - [ "@divExact" ] = "function", - [ "@divFloor" ] = "function", - [ "@divTrunc" ] = "function", - [ "@embedFile" ] = "function", - [ "@enumToInt" ] = "function", - [ "@errorName" ] = "function", - [ "@errorReturnTrace" ] = "function", - [ "@errorToInt" ] = "function", - [ "@errSetCast" ] = "function", - [ "@export" ] = "function", - [ "@fence" ] = "function", - [ "@field" ] = "function", - [ "@fieldParentPtr" ] = "function", - [ "@floatCast" ] = "function", - [ "@floatToInt" ] = "function", - [ "@Frame" ] = "function", - [ "@frame" ] = "function", - [ "@frameAddress" ] = "function", - [ "@frameSize" ] = "function", - [ "@hasDecl" ] = "function", - [ "@hasField" ] = "function", - [ "@import" ] = "function", - [ "@intCast" ] = "function", - [ "@intToEnum" ] = "function", - [ "@intToError" ] = "function", - [ "@intToFloat" ] = "function", - [ "@intToPtr" ] = "function", - [ "@memcpy" ] = "function", - [ "@memset" ] = "function", - [ "@wasmMemorySize" ] = "function", - [ "@wasmMemoryGrow" ] = "function", - [ "@mod" ] = "function", - [ "@mulWithOverflow" ] = "function", - [ "@panic" ] = "function", - [ "@popCount" ] = "function", - [ "@ptrCast" ] = "function", - [ "@ptrToInt" ] = "function", - [ "@rem" ] = "function", - [ "@returnAddress" ] = "function", - [ "@setAlignStack" ] = "function", - [ "@setCold" ] = "function", - [ "@setEvalBranchQuota" ] = "function", - [ "@setFloatMode" ] = "function", - [ "@setRuntimeSafety" ] = "function", - [ "@shlExact" ] = "function", - [ "@shlWithOverflow" ] = "function", - [ "@shrExact" ] = "function", - [ "@shuffle" ] = "function", - [ "@sizeOf" ] = "function", - [ "@splat" ] = "function", - [ "@src" ] = "function", - [ "@sqrt" ] = "function", - [ "@sin" ] = "function", - [ "@cos" ] = "function", - [ "@exp" ] = "function", - [ "@exp2" ] = "function", - [ "@log" ] = "function", - [ "@log2" ] = "function", - [ "@log10" ] = "function", - [ "@fabs" ] = "function", - [ "@floor" ] = "function", - [ "@ceil" ] = "function", - [ "@trunc" ] = "function", - [ "@round" ] = "function", - [ "@subWithOverflow" ] = "function", - [ "@tagName" ] = "function", - [ "@TagType" ] = "function", - [ "@This" ] = "function", - [ "@truncate" ] = "function", - [ "@Type" ] = "function", - [ "@typeInfo" ] = "function", - [ "@typeName" ] = "function", - [ "@TypeOf" ] = "function", - [ "@unionInit" ] = "function", + ["struct"] = "keyword", + ["enum"] = "keyword", + ["union"] = "keyword", + ["opaque"] = "keyword", -- types + ["f16"] = "keyword2", + ["f32"] = "keyword2", + ["f64"] = "keyword2", + ["f128"] = "keyword2", ["void"] = "keyword2", ["c_void"] = "keyword2", ["isize"] = "keyword2", |