[{"displayName":"Zig","fileTypes":["zig","zon"],"name":"zig","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#keywords"},{"include":"#operators"},{"include":"#punctuation"},{"include":"#numbers"},{"include":"#support"},{"include":"#variables"}],"repository":{"commentContents":{"patterns":[{"match":"\\b(TODO|FIXME|XXX|NOTE)\\b:?","name":"keyword.todo.zig"}]},"comments":{"patterns":[{"begin":"//[!/](?=[^/])","end":"$","name":"comment.line.documentation.zig","patterns":[{"include":"#commentContents"}]},{"begin":"//","end":"$","name":"comment.line.double-slash.zig","patterns":[{"include":"#commentContents"}]}]},"keywords":{"patterns":[{"match":"\\binline\\b(?!\\s*\\bfn\\b)","name":"keyword.control.repeat.zig"},{"match":"\\b(while|for)\\b","name":"keyword.control.repeat.zig"},{"match":"\\b(extern|packed|export|pub|noalias|inline|comptime|volatile|align|linksection|threadlocal|allowzero|noinline|callconv)\\b","name":"keyword.storage.zig"},{"match":"\\b(struct|enum|union|opaque)\\b","name":"keyword.structure.zig"},{"match":"\\b(asm|unreachable)\\b","name":"keyword.statement.zig"},{"match":"\\b(break|return|continue|defer|errdefer)\\b","name":"keyword.control.flow.zig"},{"match":"\\b(resume|suspend|nosuspend)\\b","name":"keyword.control.async.zig"},{"match":"\\b(try|catch)\\b","name":"keyword.control.trycatch.zig"},{"match":"\\b(if|else|switch|orelse)\\b","name":"keyword.control.conditional.zig"},{"match":"\\b(null|undefined)\\b","name":"keyword.constant.default.zig"},{"match":"\\b(true|false)\\b","name":"keyword.constant.bool.zig"},{"match":"\\b(test|and|or)\\b","name":"keyword.default.zig"},{"match":"\\b(bool|void|noreturn|type|error|anyerror|anyframe|anytype|anyopaque)\\b","name":"keyword.type.zig"},{"match":"\\b(f16|f32|f64|f80|f128|u\\d+|i\\d+|isize|usize|comptime_int|comptime_float)\\b","name":"keyword.type.integer.zig"},{"match":"\\b(c_(?:char|short|ushort|int|uint|long|ulong|longlong|ulonglong|longdouble))\\b","name":"keyword.type.c.zig"}]},"numbers":{"patterns":[{"match":"\\b0x\\h[_\\h]*(\\.\\h[_\\h]*)?([Pp][-+]?[_\\h]+)?\\b","name":"constant.numeric.hexfloat.zig"},{"match":"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([Ee][-+]?[0-9_]+)?\\b","name":"constant.numeric.float.zig"},{"match":"\\b[0-9][0-9_]*\\b","name":"constant.numeric.decimal.zig"},{"match":"\\b0x[_\\h]+\\b","name":"constant.numeric.hexadecimal.zig"},{"match":"\\b0o[0-7_]+\\b","name":"constant.numeric.octal.zig"},{"match":"\\b0b[01_]+\\b","name":"constant.numeric.binary.zig"},{"match":"\\b[0-9](([EPep][-+])|[0-9A-Z_a-z])*(\\.(([EPep][-+])|[0-9A-Z_a-z])*)?([EPep][-+])?[0-9A-Z_a-z]*\\b","name":"constant.numeric.invalid.zig"}]},"operators":{"patterns":[{"match":"(?<=\\[)\\*c(?=])","name":"keyword.operator.c-pointer.zig"},{"match":"\\b((and|or))\\b|(==|!=|<=|>=|[<>])","name":"keyword.operator.comparison.zig"},{"match":"(-%?|\\+%?|\\*%?|[%/])=?","name":"keyword.operator.arithmetic.zig"},{"match":"(<<%?|>>|[!\\&^|~])=?","name":"keyword.operator.bitwise.zig"},{"match":"(==|\\+\\+|\\*\\*|->)","name":"keyword.operator.special.zig"},{"match":"=","name":"keyword.operator.assignment.zig"},{"match":"\\?","name":"keyword.operator.question.zig"}]},"punctuation":{"patterns":[{"match":"\\.","name":"punctuation.accessor.zig"},{"match":",","name":"punctuation.comma.zig"},{"match":":","name":"punctuation.separator.key-value.zig"},{"match":";","name":"punctuation.terminator.statement.zig"}]},"stringcontent":{"patterns":[{"match":"\\\\([\"'\\\\nrt]|(x\\h{2})|(u\\{\\h+}))","name":"constant.character.escape.zig"},{"match":"\\\\.","name":"invalid.illegal.unrecognized-string-escape.zig"}]},"strings":{"patterns":[{"begin":"\"","end":"\"","name":"string.quoted.double.zig","patterns":[{"include":"#stringcontent"}]},{"begin":"\\\\\\\\","end":"$","name":"string.multiline.zig"},{"match":"'([^'\\\\]|\\\\(x\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'","name":"string.quoted.single.zig"}]},"support":{"patterns":[{"match":"@[A-Z_a-z][0-9A-Z_a-z]*","name":"support.function.builtin.zig"}]},"variables":{"patterns":[{"name":"meta.function.declaration.zig","patterns":[{"captures":{"1":{"name":"storage.type.function.zig"},"2":{"name":"entity.name.type.zig"}},"match":"\\b(fn)\\s+([A-Z][0-9A-Za-z]*)\\b"},{"captures":{"1":{"name":"storage.type.function.zig"},"2":{"name":"entity.name.function.zig"}},"match":"\\b(fn)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\b"},{"begin":"\\b(fn)\\s+@\"","beginCaptures":{"1":{"name":"storage.type.function.zig"}},"end":"\"","name":"entity.name.function.string.zig","patterns":[{"include":"#stringcontent"}]},{"match":"\\b(const|var|fn)\\b","name":"keyword.default.zig"}]},{"name":"meta.function.call.zig","patterns":[{"match":"([A-Z][0-9A-Za-z]*)(?=\\s*\\()","name":"entity.name.type.zig"},{"match":"([A-Z_a-z][0-9A-Z_a-z]*)(?=\\s*\\()","name":"entity.name.function.zig"}]},{"name":"meta.variable.zig","patterns":[{"match":"\\b[A-Z_a-z][0-9A-Z_a-z]*\\b","name":"variable.zig"},{"begin":"@\"","end":"\"","name":"variable.string.zig","patterns":[{"include":"#stringcontent"}]}]}]}},"scopeName":"source.zig"}]