mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-07 05:50:04 -04:00
Added Zig grammar
This commit is contained in:
parent
74234bc0e0
commit
597ec69378
7 changed files with 266 additions and 0 deletions
15
queries/zig/folds.scm
Normal file
15
queries/zig/folds.scm
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
[
|
||||
(block)
|
||||
(comptime_block)
|
||||
(defer_block)
|
||||
(suspend_block)
|
||||
(resume_block)
|
||||
(if_expression)
|
||||
(switch_block)
|
||||
(for_expression)
|
||||
(test_expression)
|
||||
(struct_expression)
|
||||
(anonymous_struct_enum)
|
||||
(union_expression)
|
||||
(enum_expression)
|
||||
] @fold
|
||||
183
queries/zig/highlights.scm
Normal file
183
queries/zig/highlights.scm
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
;; Assume all-caps names are constants
|
||||
|
||||
; (identifier) @variable
|
||||
|
||||
(parameter (identifier) @variable)
|
||||
|
||||
; ((identifier) @constant
|
||||
; (#vim-match? @constant "^[A-Z][A-Z\\d_]+$'"))
|
||||
|
||||
; function definition
|
||||
(function_signature
|
||||
(identifier) @function
|
||||
)
|
||||
|
||||
(function_declaration (identifier) @function)
|
||||
|
||||
; Function calls
|
||||
(call_expression
|
||||
function: (identifier) @function)
|
||||
|
||||
(build_in_call_expr
|
||||
function: (identifier) @attribute)
|
||||
|
||||
;; other identifiers
|
||||
(type_identifier) @type
|
||||
(primitive_type) @type.builtin
|
||||
(field_identifier) @property
|
||||
|
||||
(line_comment) @comment
|
||||
(doc_comment) @comment
|
||||
|
||||
(char_literal) @number
|
||||
(integer_literal) @number
|
||||
(float_literal) @number
|
||||
|
||||
(boolean_literal) @constant.builtin
|
||||
(undefined_literal) @constant.builtin
|
||||
(null_literal) @constant.builtin
|
||||
|
||||
(string_literal) @string
|
||||
(multiline_string_literal) @string
|
||||
|
||||
(escape_sequence) @constant.builtin
|
||||
|
||||
|
||||
|
||||
[
|
||||
"align"
|
||||
"allowzero"
|
||||
; "and"
|
||||
; "anyframe"
|
||||
; "anytype"
|
||||
;"asm"
|
||||
; "async"
|
||||
"await"
|
||||
"break"
|
||||
; "callconv"
|
||||
; "catch"
|
||||
"comptime"
|
||||
"const"
|
||||
"continue"
|
||||
"defer"
|
||||
"else"
|
||||
"enum"
|
||||
"errdefer"
|
||||
"error"
|
||||
"export"
|
||||
"extern"
|
||||
"false"
|
||||
; "fn"
|
||||
"for"
|
||||
"if"
|
||||
"inline"
|
||||
; "noalias"
|
||||
; "nosuspend"
|
||||
; "noinline"
|
||||
"null"
|
||||
; "opaque"
|
||||
; "or"
|
||||
; "orelse"
|
||||
; "packed"
|
||||
"pub"
|
||||
"resume"
|
||||
"return"
|
||||
; "linksection"
|
||||
"struct"
|
||||
"suspend"
|
||||
"switch"
|
||||
"test"
|
||||
; "threadlocal"
|
||||
"true"
|
||||
"try"
|
||||
; "undefined"
|
||||
"union"
|
||||
;"unreachable"
|
||||
"usingnamespace"
|
||||
"var"
|
||||
"volatile"
|
||||
"while"
|
||||
] @keyword
|
||||
|
||||
"fn" @keyword.function
|
||||
|
||||
[
|
||||
"continue"
|
||||
"else"
|
||||
"if"
|
||||
"switch"
|
||||
] @conditional
|
||||
|
||||
[
|
||||
"for"
|
||||
"while"
|
||||
] @repeat
|
||||
|
||||
(assignment_modifier) @attribute
|
||||
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"["
|
||||
"]"
|
||||
"{"
|
||||
"}"
|
||||
] @punctuation.bracket
|
||||
|
||||
[
|
||||
"&"
|
||||
"&="
|
||||
"*"
|
||||
"*="
|
||||
;"*%"
|
||||
"*%="
|
||||
;"^"
|
||||
"^="
|
||||
":"
|
||||
","
|
||||
"."
|
||||
".."
|
||||
"..."
|
||||
".*"
|
||||
".?"
|
||||
"="
|
||||
;"=="
|
||||
"=>"
|
||||
"!"
|
||||
;"!="
|
||||
;"<"
|
||||
;"<<"
|
||||
"<<="
|
||||
;"<="
|
||||
"-"
|
||||
"-="
|
||||
"-%"
|
||||
"-%="
|
||||
;"->"
|
||||
;"%"
|
||||
"%="
|
||||
"|"
|
||||
;"||"
|
||||
"|="
|
||||
;"+"
|
||||
;"++"
|
||||
"+="
|
||||
;"+%"
|
||||
"+%="
|
||||
"c\""
|
||||
"?"
|
||||
;">"
|
||||
;">>"
|
||||
">>="
|
||||
;">="
|
||||
;"/"
|
||||
"/="
|
||||
"~"
|
||||
] @operator
|
||||
|
||||
[
|
||||
";"
|
||||
"."
|
||||
","
|
||||
] @punctuation.delimiter
|
||||
|
||||
30
queries/zig/indents.scm
Normal file
30
queries/zig/indents.scm
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
[
|
||||
(block)
|
||||
(comptime_block)
|
||||
(defer_block)
|
||||
(suspend_block)
|
||||
(resume_block)
|
||||
(if_expression)
|
||||
(while_expression)
|
||||
(for_expression)
|
||||
(test_expression)
|
||||
(struct_expression)
|
||||
(struct_construction)
|
||||
(anonymous_struct_enum)
|
||||
(enum_expression)
|
||||
(union_expression)
|
||||
] @indent
|
||||
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"["
|
||||
"]"
|
||||
"{"
|
||||
"}"
|
||||
] @branch
|
||||
|
||||
[
|
||||
(line_comment)
|
||||
(multiline_string_literal)
|
||||
] @ignore
|
||||
25
queries/zig/locals.scm
Normal file
25
queries/zig/locals.scm
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
(function_declaration
|
||||
name: (identifier) @definition.function
|
||||
)
|
||||
|
||||
((type_identifier) @reference
|
||||
(set! reference.kind "type"))
|
||||
|
||||
(assignment_statement
|
||||
name: (identifier) @definition.var
|
||||
)
|
||||
|
||||
(identifier) @reference
|
||||
|
||||
; Scopes
|
||||
[
|
||||
(block)
|
||||
(comptime_block)
|
||||
(defer_block)
|
||||
(suspend_block)
|
||||
(resume_block)
|
||||
(if_expression)
|
||||
(while_expression)
|
||||
(for_expression)
|
||||
(test_expression)
|
||||
] @scope
|
||||
Loading…
Add table
Add a link
Reference in a new issue