]> git.lizzy.rs Git - micro.git/blob - runtime/syntax/zig.yaml
Merge pull request #1315 from matbesancon/patch-1
[micro.git] / runtime / syntax / zig.yaml
1 filetype: zig
2
3 detect:
4     filename: "\\.zig$"
5
6 rules:
7     # function definition
8     - identifier: "fn [a-z0-9_]+"
9       # Reserved words
10     - statement: "\\b(align|and|allowzero|anyerror|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|false|fn|for|if|inline|nakedcc|noalias|null|or|orelse|packed|promise|pub|resume|return|linksection|stdcallcc|struct|suspend|switch|test|threadlocal|true|try|undefined|union|unreachable|use|var|volatile|while)\\b"
11       # builtin functions
12     - special: "@+[a-z_]+"
13       # Constants
14     - constant: "[A-Z][A-Z_]+([0-9]+)?"
15       # Numbers (hexadecimal + decimal)
16     - constant.number: "\\b(0x[A-F0-9]+|[0-9]+)\\b"
17       # Primitive Types / Derived Data Types
18     - type: "([A-Z][a-z]+|(i8|u8|i16|u16|i32|u32|i64|u64|i128|u128|isize|usize|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|c_longlong|c_ulonglong|c_longdouble|c_void|f16|f32|f64|f128|bool|void|noreturn|type|anyerror|comptime_int|comptime_float))"
19
20     - constant.string:
21         start: "\""
22         end: "\""
23         skip: "\\\\."
24         rules:
25             - constant.specialChar: "\\\\."
26
27     - comment:
28         start: "//"
29         end: "$"
30         rules:
31             - todo: "(TODO|XXX|FIXME):?"
32
33     - comment:
34         start: "/\\*"
35         end: "\\*/"
36         rules:
37             - todo: "(TODO|XXX|FIXME):?"