diff options
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/queries/zig/highlights.scm | 197 | ||||
-rw-r--r-- | runtime/queries/zig/indents.toml | 9 | ||||
-rw-r--r-- | runtime/themes/nord.toml | 84 |
3 files changed, 206 insertions, 84 deletions
diff --git a/runtime/queries/zig/highlights.scm b/runtime/queries/zig/highlights.scm index 5a3d62dc..404a8682 100644 --- a/runtime/queries/zig/highlights.scm +++ b/runtime/queries/zig/highlights.scm @@ -4,82 +4,89 @@ (line_comment) ] @comment -; field in top level decl, and in struct, union... -(ContainerField - (IDENTIFIER) @property - (SuffixExpr (IDENTIFIER) @type)? -) +[ + variable: (IDENTIFIER) + variable_type_function: (IDENTIFIER) +] @variable -; error.OutOfMemory; -(SuffixExpr - "error" - "." - (IDENTIFIER) @constant +parameter: (IDENTIFIER) @variable.parameter + +[ + field_member: (IDENTIFIER) + field_access: (IDENTIFIER) +] @variable.property + +;; assume TitleCase is a type +( + [ + variable_type_function: (IDENTIFIER) + field_access: (IDENTIFIER) + parameter: (IDENTIFIER) + ] @type + (#match? @type "^[A-Z]([a-z]+[A-Za-z0-9]*)*$") +) +;; assume camelCase is a function +( + [ + variable_type_function: (IDENTIFIER) + field_access: (IDENTIFIER) + parameter: (IDENTIFIER) + ] @function + (#match? @function "^[a-z]+([A-Z][a-z0-9]*)+$") ) -; var x: IDENTIFIER -type: (SuffixExpr (IDENTIFIER) @type) +;; assume all CAPS_1 is a constant +( + [ + variable_type_function: (IDENTIFIER) + field_access: (IDENTIFIER) + ] @constant + (#match? @constant "^[A-Z][A-Z_0-9]+$") +) -; IDENTIFIER{} -constructor: (SuffixExpr (IDENTIFIER) @constructor) +[ + function_call: (IDENTIFIER) + function: (IDENTIFIER) +] @function -; fields -(FieldInit (IDENTIFIER) @property) +exception: "!" @function.macro -; foo.bar.baz.function() calls ( - (SuffixOp - (IDENTIFIER) @function - ) - . - (FnCallArguments) + (IDENTIFIER) @variable.builtin + (#eq? @variable.builtin "_") ) -; function() calls +(PtrTypeStart "c" @variable.builtin) + ( - ( - (IDENTIFIER) @function + (ContainerDeclType + [ + (ErrorUnionExpr) + "enum" + ] ) - . - (FnCallArguments) + (ContainerField (IDENTIFIER) @constant) ) -; functionn decl -(FnProto - (IDENTIFIER) @function - (SuffixExpr (IDENTIFIER) @type)? - ("!")? @function.macro -) +field_constant: (IDENTIFIER) @constant -; function parameters and types -(ParamDecl - (IDENTIFIER) @variable.parameter - ":" - [ - (ParamType (SuffixExpr (IDENTIFIER) @type)) - (ParamType) - ] -) +(BUILTINIDENTIFIER) @function.builtin -; switch -(SwitchItem - (SuffixExpr - "." - . - (IDENTIFIER) @constant - ) -) +((BUILTINIDENTIFIER) @keyword.control.import + (#any-of? @keyword.control.import "@import" "@cImport")) (INTEGER) @number (FLOAT) @number [ - (STRINGLITERAL) + (LINESTRING) (STRINGLITERALSINGLE) ] @string -(CHAR_LITERAL) @string +(CHAR_LITERAL) @constant.character +(EscapeSequence) @escape +(FormatSequence) @string.special [ "allowzero" @@ -95,6 +102,9 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor) [ "true" "false" +] @constant.builtin.boolean + +[ "undefined" "unreachable" "null" @@ -104,21 +114,18 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor) "else" "if" "switch" +] @keyword.control.conditional + +[ "for" "while" - "return" - "break" - "continue" - "defer" - "errdefer" - "async" - "nosuspend" - "await" - "suspend" - "resume" - "try" - "catch" -] @keyword.control +] @keyword.control.repeat + +[ + "or" + "and" + "orelse" +] @operator [ "struct" @@ -127,21 +134,48 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor) "error" "packed" "opaque" - "test" - "usingnamespace" - "export" - "extern" - "const" - "var" - "comptime" - "threadlocal" ] @keyword [ - "pub" + "try" + "error" + "catch" +] @function.macro + +; VarDecl +[ + "comptime" + "threadlocal" "fn" ] @keyword.function +[ + "const" + "var" + "test" + "pub" + "usingnamespace" +] @keyword + +[ + "return" + "break" + "continue" +] @keyword.control + +; Macro +[ + "defer" + "errdefer" + "async" + "nosuspend" + "await" + "suspend" + "resume" + "export" + "extern" +] @function.macro + ; PrecProc [ "inline" @@ -149,10 +183,9 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor) "asm" "callconv" "noalias" -] @attribute +] @keyword.directive [ - (BUILTINIDENTIFIER) "linksection" "align" ] @function.builtin @@ -164,9 +197,6 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor) (AdditionOp) (MultiplyOp) (PrefixOp) - "or" - "and" - "orelse" "*" "**" "->" @@ -174,6 +204,7 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor) ".?" ".*" "=" + "?" ] @operator [ @@ -186,6 +217,9 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor) [ ".." "..." +] @punctuation.special + +[ "[" "]" "(" @@ -195,4 +229,7 @@ constructor: (SuffixExpr (IDENTIFIER) @constructor) (Payload "|") (PtrPayload "|") (PtrIndexPayload "|") -] @punctuation +] @punctuation.bracket + +; Error +(ERROR) @keyword diff --git a/runtime/queries/zig/indents.toml b/runtime/queries/zig/indents.toml index e119078b..88f88e16 100644 --- a/runtime/queries/zig/indents.toml +++ b/runtime/queries/zig/indents.toml @@ -1,8 +1,9 @@ indent = [ - "block", - "match_block", - "arguments", - "parameters" + "Block", + "BlockExpr", + "ContainerDecl", + "SwitchExpr", + "InitList" ] outdent = [ diff --git a/runtime/themes/nord.toml b/runtime/themes/nord.toml new file mode 100644 index 00000000..c6a0e172 --- /dev/null +++ b/runtime/themes/nord.toml @@ -0,0 +1,84 @@ +# Author : RayGervais<raygervais@hotmail.ca> + +# "ui.linenr.selected" = { fg = "#d8dee9" } +# "ui.text.focus" = { fg = "#e5ded6", modifiers= ["bold"] } +# "ui.menu.selected" = { fg = "#e5ded6", bg = "#313f4e" } + +# "info" = "#b48ead" +# "hint" = "#a3be8c" + +# Polar Night +# nord0 - background color +"ui.background" = { bg = "#2e3440" } +"ui.statusline.inactive" = { fg = "#d8dEE9", bg = "#2e3440" } + + +# nord1 - status bars, panels, modals, autocompletion +"ui.statusline" = { fg = "#88c0d0", bg = "#3b4252" } +"ui.popup" = { bg = "#232d38" } +"ui.window" = { bg = "#232d38" } +"ui.help" = { bg = "#232d38", fg = "#e5ded6" } + +# nord2 - active line, highlighting +"ui.selection" = { bg = "#434c5e" } +"ui.cursor.match" = { bg = "434c5e" } + +# nord3 - comments +"comment" = "#4c566a" +"ui.linenr" = { fg = "#4c566a" } + +# Snow Storm +# nord4 - cursor, variables, constants, attributes, fields +"ui.cursor.primary" = { fg = "#d8dee9", modifiers = ["reversed"] } +"attribute" = "#d8dee9" +"variable" = "#d8dee9" +"constant" = "#d8dee9" +"variable.builtin" = "#d8dee9" +"constant.builtin" = "#d8dee9" +"namespace" = "#d8dee9" + +# nord5 - suble UI text + +# nord6 - base text, punctuation +"ui.text" = { fg = "#eceff4" } +"punctuation" = "#eceff4" + +# Frost +# nord7 - classes, types, primiatives +"type" = "#8fbcbb" +"type.builtin" = { fg = "#8fbcbb"} +"label" = "#8fbcbb" + +# nord8 - declaration, methods, routines +"constructor" = "#88c0d0" +"function" = "#88c0d0" +"function.macro" = { fg = "#88c0d0" } +"function.builtin" = { fg = "#88c0d0" } + +# nord9 - operator, tags, units, punctuations +"punctuation.delimiter" = "#81a1c1" +"operator" = { fg = "#81a1c1" } +"property" = "#81a1c1" + +# nord10 - keywords, special +"keyword" = { fg = "#5e81ac" } +"keyword.directive" = "#5e81ac" +"variable.parameter" = "#5e81ac" + +# Aurora +# nord11 - error +"error" = "#bf616a" + +# nord12 - annotations, decorators +"special" = "#d08770" +"module" = "#d08770" + +# nord13 - warnings, escape characters, regex +"warning" = "#ebcb8b" +"escape" = { fg = "#ebcb8b" } + +# nord14 - strings +"string" = "#a3be8c" + +# nord15 - integer, floating point +"number" = "#b48ead" |