From f22e0aa2ae4169851b43d2225e6a43ef36442659 Mon Sep 17 00:00:00 2001 From: voroskoi Date: Sat, 28 Aug 2021 06:32:01 +0200 Subject: Add zig tree-sitter support (#631) * Add initial zig tree-sitter support * zig/highlights.scm: remove unnecessary queries * Add zig/indents.toml--- runtime/queries/zig/highlights.scm | 198 +++++++++++++++++++++++++++++++++++++ runtime/queries/zig/indents.toml | 12 +++ 2 files changed, 210 insertions(+) create mode 100644 runtime/queries/zig/highlights.scm create mode 100644 runtime/queries/zig/indents.toml (limited to 'runtime/queries/zig') diff --git a/runtime/queries/zig/highlights.scm b/runtime/queries/zig/highlights.scm new file mode 100644 index 00000000..5a3d62dc --- /dev/null +++ b/runtime/queries/zig/highlights.scm @@ -0,0 +1,198 @@ +[ + (container_doc_comment) + (doc_comment) + (line_comment) +] @comment + +; field in top level decl, and in struct, union... +(ContainerField + (IDENTIFIER) @property + (SuffixExpr (IDENTIFIER) @type)? +) + +; error.OutOfMemory; +(SuffixExpr + "error" + "." + (IDENTIFIER) @constant +) + +; var x: IDENTIFIER +type: (SuffixExpr (IDENTIFIER) @type) + +; IDENTIFIER{} +constructor: (SuffixExpr (IDENTIFIER) @constructor) + +; fields +(FieldInit (IDENTIFIER) @property) + +; foo.bar.baz.function() calls +( + (SuffixOp + (IDENTIFIER) @function + ) + . + (FnCallArguments) +) + +; function() calls +( + ( + (IDENTIFIER) @function + ) + . + (FnCallArguments) +) + +; functionn decl +(FnProto + (IDENTIFIER) @function + (SuffixExpr (IDENTIFIER) @type)? + ("!")? @function.macro +) + +; function parameters and types +(ParamDecl + (IDENTIFIER) @variable.parameter + ":" + [ + (ParamType (SuffixExpr (IDENTIFIER) @type)) + (ParamType) + ] +) + +; switch +(SwitchItem + (SuffixExpr + "." + . + (IDENTIFIER) @constant + ) +) + +(INTEGER) @number + +(FLOAT) @number + +[ + (STRINGLITERAL) + (STRINGLITERALSINGLE) +] @string + +(CHAR_LITERAL) @string + +[ + "allowzero" + "volatile" + "anytype" + "anyframe" + (BuildinTypeExpr) +] @type.builtin + +(BreakLabel (IDENTIFIER) @label) +(BlockLabel (IDENTIFIER) @label) + +[ + "true" + "false" + "undefined" + "unreachable" + "null" +] @constant.builtin + +[ + "else" + "if" + "switch" + "for" + "while" + "return" + "break" + "continue" + "defer" + "errdefer" + "async" + "nosuspend" + "await" + "suspend" + "resume" + "try" + "catch" +] @keyword.control + +[ + "struct" + "enum" + "union" + "error" + "packed" + "opaque" + "test" + "usingnamespace" + "export" + "extern" + "const" + "var" + "comptime" + "threadlocal" +] @keyword + +[ + "pub" + "fn" +] @keyword.function + +; PrecProc +[ + "inline" + "noinline" + "asm" + "callconv" + "noalias" +] @attribute + +[ + (BUILTINIDENTIFIER) + "linksection" + "align" +] @function.builtin + +[ + (CompareOp) + (BitwiseOp) + (BitShiftOp) + (AdditionOp) + (MultiplyOp) + (PrefixOp) + "or" + "and" + "orelse" + "*" + "**" + "->" + "=>" + ".?" + ".*" + "=" +] @operator + +[ + ";" + "." + "," + ":" +] @punctuation.delimiter + +[ + ".." + "..." + "[" + "]" + "(" + ")" + "{" + "}" + (Payload "|") + (PtrPayload "|") + (PtrIndexPayload "|") +] @punctuation diff --git a/runtime/queries/zig/indents.toml b/runtime/queries/zig/indents.toml new file mode 100644 index 00000000..e119078b --- /dev/null +++ b/runtime/queries/zig/indents.toml @@ -0,0 +1,12 @@ +indent = [ + "block", + "match_block", + "arguments", + "parameters" +] + +outdent = [ + "}", + "]", + ")" +] -- cgit v1.2.3-70-g09d2