Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,4 @@ Plugin | Description
[`togglesnakecamel`](plugins/togglesnakecamel.lua?raw=1) | Toggles symbols between `snake_case` and `camelCase`
[`unboundedscroll`](plugins/unboundedscroll.lua?raw=1) | Allows scrolling outside the bounds of a document
[`workspace`](plugins/workspace.lua?raw=1) | Retains project's layout and open documents between sessions
[`zig`](plugins/language_zig.lua?raw=1) | Syntax for the [Zig](https://ziglang.org) programming language
210 changes: 210 additions & 0 deletions plugins/language_zig.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
local syntax = require "core.syntax"

syntax.add {
files = { "%.zig$" },
comment = "//",
patterns = {
{ pattern = "//.-\n", type = "comment" },
{ pattern = "%s*\\\\.-\n", type = "string" },
{ pattern = { '"', '"', '\\' }, type = "string" },
{ pattern = { "'", "'", '\\' }, type = "string" },
{ pattern = "-?0x%x+", type = "number" },
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" },
{ pattern = "-?%.?%d+f?", type = "number" },
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" },
{ pattern = "[%a_][%w_]*", type = "symbol" },
{ pattern = "[%a_][%w_]*%f[(]", type = "function" },
{ pattern = "@addWithOverflow", type = "function" },
{ pattern = "@alignCast", type = "function" },
{ pattern = "@alignOf", type = "function" },
{ pattern = "@as", type = "function" },
{ pattern = "@asyncCall", type = "function" },
{ pattern = "@atomicLoad", type = "function" },
{ pattern = "@atomicRmw", type = "function" },
{ pattern = "@atomicStore", type = "function" },
{ pattern = "@bitCast", type = "function" },
{ pattern = "@bitOffsetOf", type = "function" },
{ pattern = "@boolToInt", type = "function" },
{ pattern = "@bitSizeOf", type = "function" },
{ pattern = "@breakpoint", type = "function" },
{ pattern = "@mulAdd", type = "function" },
{ pattern = "@byteSwap", type = "function" },
{ pattern = "@bitReverse", type = "function" },
{ pattern = "@byteOffsetOf", type = "function" },
{ pattern = "@call", type = "function" },
{ pattern = "@cDefine", type = "function" },
{ pattern = "@cImport", type = "function" },
{ pattern = "@cInclude", type = "function" },
{ pattern = "@clz", type = "function" },
{ pattern = "@cmpxchgStrong", type = "function" },
{ pattern = "@cmpxchgWeak", type = "function" },
{ pattern = "@compileError", type = "function" },
{ pattern = "@compileLog", type = "function" },
{ pattern = "@ctz", type = "function" },
{ pattern = "@cUndef", type = "function" },
{ pattern = "@divExact", type = "function" },
{ pattern = "@divFloor", type = "function" },
{ pattern = "@divTrunc", type = "function" },
{ pattern = "@embedFile", type = "function" },
{ pattern = "@enumToInt", type = "function" },
{ pattern = "@errorName", type = "function" },
{ pattern = "@errorReturnTrace", type = "function" },
{ pattern = "@errorToInt", type = "function" },
{ pattern = "@errSetCast", type = "function" },
{ pattern = "@export", type = "function" },
{ pattern = "@fence", type = "function" },
{ pattern = "@field", type = "function" },
{ pattern = "@fieldParentPtr", type = "function" },
{ pattern = "@floatCast", type = "function" },
{ pattern = "@floatToInt", type = "function" },
{ pattern = "@frame", type = "function" },
{ pattern = "@Frame", type = "function" },
{ pattern = "@frameAddress", type = "function" },
{ pattern = "@frameSize", type = "function" },
{ pattern = "@hasDecl", type = "function" },
{ pattern = "@hasField", type = "function" },
{ pattern = "@import", type = "function" },
{ pattern = "@intCast", type = "function" },
{ pattern = "@intToEnum", type = "function" },
{ pattern = "@intToError", type = "function" },
{ pattern = "@intToFloat", type = "function" },
{ pattern = "@intToPtr", type = "function" },
{ pattern = "@memcpy", type = "function" },
{ pattern = "@memset", type = "function" },
{ pattern = "@wasmMemorySize", type = "function" },
{ pattern = "@wasmMemoryGrow", type = "function" },
{ pattern = "@mod", type = "function" },
{ pattern = "@mulWithOverflow", type = "function" },
{ pattern = "@panic", type = "function" },
{ pattern = "@popCount", type = "function" },
{ pattern = "@ptrCast", type = "function" },
{ pattern = "@ptrToInt", type = "function" },
{ pattern = "@rem", type = "function" },
{ pattern = "@returnAddress", type = "function" },
{ pattern = "@setAlignStack", type = "function" },
{ pattern = "@setCold", type = "function" },
{ pattern = "@setEvalBranchQuota", type = "function" },
{ pattern = "@setFloatMode", type = "function" },
{ pattern = "@setRuntimeSafety", type = "function" },
{ pattern = "@shlExact", type = "function" },
{ pattern = "@shlWithOverflow", type = "function" },
{ pattern = "@shrExact", type = "function" },
{ pattern = "@shuffle", type = "function" },
{ pattern = "@sizeOf", type = "function" },
{ pattern = "@splat", type = "function" },
{ pattern = "@src", type = "function" },
{ pattern = "@sqrt", type = "function" },
{ pattern = "@sin", type = "function" },
{ pattern = "@cos", type = "function" },
{ pattern = "@exp", type = "function" },
{ pattern = "@exp2", type = "function" },
{ pattern = "@log", type = "function" },
{ pattern = "@log2", type = "function" },
{ pattern = "@log10", type = "function" },
{ pattern = "@fabs", type = "function" },
{ pattern = "@floor", type = "function" },
{ pattern = "@ceil", type = "function" },
{ pattern = "@trunc", type = "function" },
{ pattern = "@round", type = "function" },
{ pattern = "@subWithOverflow", type = "function" },
{ pattern = "@tagName", type = "function" },
{ pattern = "@TagType", type = "function" },
{ pattern = "@This", type = "function" },
{ pattern = "@truncate", type = "function" },
{ pattern = "@Type", type = "function" },
{ pattern = "@typeInfo", type = "function" },
{ pattern = "@typeName", type = "function" },
{ pattern = "@TypeOf", type = "function" },
{ pattern = "@unionInit", type = "function" },
},
symbols = {
["fn"] = "keyword",
["pub"] = "keyword",
["var"] = "keyword",
["align"] = "keyword",
["allowzero"] = "keyword",
["and"] = "keyword",
["or"] = "keyword",
["asm"] = "keyword",
["async"] = "keyword",
["await"] = "keyword",
["cancel"] = "keyword",
["catch"] = "keyword",
["comptime"] = "keyword",
["catch"] = "keyword",
["defer"] = "keyword",
["errdefer"] = "keyword",
["error"] = "keyword",
["export"] = "keyword",
["linksection"] = "keyword",
["nakedcc"] = "keyword",
["noalias"] = "keyword",
["orelse"] = "keyword",
["packed"] = "keyword",
["promise"] = "keyword",
["resume"] = "keyword",
["stdcallcc"] = "keyword",
["suspend"] = "keyword",
["test"] = "keyword",
["threadlocal"] = "keyword",
["try"] = "keyword",
["unreachable"] = "keyword",
["usingnamespace"] = "keyword",
["if"] = "keyword",
["then"] = "keyword",
["else"] = "keyword",
["elseif"] = "keyword",
["do"] = "keyword",
["while"] = "keyword",
["for"] = "keyword",
["break"] = "keyword",
["continue"] = "keyword",
["return"] = "keyword",
["struct"] = "keyword",
["union"] = "keyword",
["enum"] = "keyword",
["extern"] = "keyword",
["volatile"] = "keyword",
["const"] = "keyword",
["inline"] = "keyword",
["switch"] = "keyword",
["const"] = "keyword",
["void"] = "keyword",
["i8"] = "keyword2",
["u8"] = "keyword2",
["i16"] = "keyword2",
["u16"] = "keyword2",
["i32"] = "keyword2",
["u32"] = "keyword2",
["i64"] = "keyword2",
["u64"] = "keyword2",
["i128"] = "keyword2",
["u128"] = "keyword2",
["isize"] = "keyword2",
["usize"] = "keyword2",
["c_short"] = "keyword2",
["c_ushort"] = "keyword2",
["c_int"] = "keyword2",
["c_uint"] = "keyword2",
["c_long"] = "keyword2",
["c_ulong"] = "keyword2",
["c_longlong"] = "keyword2",
["c_ulonglong"] = "keyword2",
["c_longdouble"] = "keyword2",
["f16"] = "keyword2",
["f32"] = "keyword2",
["f64"] = "keyword2",
["f128"] = "keyword2",
["bool"] = "keyword2",
["f64"] = "keyword2",
["noreturn"] = "keyword2",
["type"] = "keyword2",
["anyerror"] = "keyword2",
["comptime_int"] = "keyword2",
["comptime_float"] = "keyword2",
["undefined"] = "keyword2",
["true"] = "keyword2",
["false"] = "keyword2",
["null"] = "keyword2",
},
}