Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 18 additions & 6 deletions languages/zig/brackets.scm
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
("(" @open ")" @close)
("[" @open "]" @close)
("{" @open "}" @close)
("\"" @open "\"" @close)
(payload "|" @open "|" @close)
("'" @open "'" @close)
("(" @open
")" @close)

("[" @open
"]" @close)

("{" @open
"}" @close)

("\"" @open
"\"" @close)

(payload
"|" @open
"|" @close)

("'" @open
"'" @close)
88 changes: 64 additions & 24 deletions languages/zig/debugger.scm
Original file line number Diff line number Diff line change
@@ -1,41 +1,81 @@
(variable_declaration
(identifier) @debug-variable
(#not-eq? @debug-variable "_"))
(assignment_expression right: (identifier) @debug-variable)

(initializer_list (identifier) @debug-variable)
(assignment_expression
right: (identifier) @debug-variable)

(for_statement (identifier) @debug-variable)
(if_statement condition: (identifier) @debug-variable)
(while_statement condition: (identifier) @debug-variable)
(initializer_list
(identifier) @debug-variable)

(for_expression (identifier) @debug-variable)
(switch_expression (identifier) @debug-variable)
(if_expression condition: (identifier) @debug-variable)
(while_expression condition: (identifier) @debug-variable)
(for_statement
(identifier) @debug-variable)

(binary_expression (identifier) @debug-variable)
(catch_expression (identifier) @debug-variable)
(unary_expression argument: (identifier) @debug-variable)
(if_statement
condition: (identifier) @debug-variable)

(while_statement
condition: (identifier) @debug-variable)

(for_expression
(identifier) @debug-variable)

(switch_expression
(identifier) @debug-variable)

(if_expression
condition: (identifier) @debug-variable)

(while_expression
condition: (identifier) @debug-variable)

(binary_expression
(identifier) @debug-variable)

(catch_expression
(identifier) @debug-variable)

(unary_expression
argument: (identifier) @debug-variable)

(call_expression
(identifier) @debug-variable)

(call_expression (identifier) @debug-variable)
(builtin_function
(arguments (identifier) @debug-variable))
(parameter name: (identifier) @debug-variable)
(arguments
(identifier) @debug-variable))

(parameter
name: (identifier) @debug-variable)

(parenthesized_expression
(identifier) @debug-variable)

(payload
(identifier) @debug-variable)

(parenthesized_expression (identifier) @debug-variable)
(index_expression
index: (identifier) @debug-variable)

(payload (identifier) @debug-variable)
(range_expression
(identifier) @debug-variable)

(index_expression index: (identifier) @debug-variable)
(range_expression (identifier) @debug-variable)
(break_expression
(identifier) @debug-variable)

(break_expression (identifier) @debug-variable)
(continue_expression (identifier) @debug-variable)
(return_expression (identifier) @debug-variable)
(try_expression (identifier) @debug-variable)
(continue_expression
(identifier) @debug-variable)

(switch_case "=>" (identifier) @debug-variable)
(return_expression
(identifier) @debug-variable)

(try_expression
(identifier) @debug-variable)

(switch_case
"=>"
(identifier) @debug-variable)

(block) @debug-scope

(function_declaration) @debug-scope
32 changes: 11 additions & 21 deletions languages/zig/highlights.scm
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
; Variables

(identifier) @variable

; Parameters

(parameter
name: (identifier) @variable.parameter)

; Types

(parameter
type: (identifier) @type)

Expand All @@ -31,7 +28,6 @@
] @type.builtin

; Constants

((identifier) @constant
(#match? @constant "^[A-Z][A-Z_0-9]+$"))

Expand All @@ -50,13 +46,13 @@
type: (identifier) @constant))

; Labels
(block_label
(identifier) @label)

(block_label (identifier) @label)

(break_label (identifier) @label)
(break_label
(identifier) @label)

; Fields

(field_initializer
.
(identifier) @variable.member)
Expand All @@ -67,19 +63,19 @@

(field_expression
(_)
member: (identifier) @type (#match? @type "^[A-Z_][a-zA-Z0-9_]*"))
member: (identifier) @type
(#match? @type "^[A-Z_][a-zA-Z0-9_]*"))

(container_field
name: (identifier) @property)

(initializer_list
(assignment_expression
left: (field_expression
.
member: (identifier) @property)))
left: (field_expression
.
member: (identifier) @property)))

; Functions

(builtin_identifier) @function.builtin

(call_expression
Expand All @@ -93,15 +89,13 @@
name: (identifier) @function)

; Modules

(variable_declaration
(identifier) @module
(builtin_function
(builtin_identifier) @keyword.import
(#any-of? @keyword.import "@import" "@cImport")))

; Builtins

[
"c"
"..."
Expand All @@ -114,7 +108,6 @@
(identifier) @variable.builtin)

; Keywords

[
"asm"
"defer"
Expand Down Expand Up @@ -191,7 +184,6 @@
] @keyword.modifier

; Operator

[
"="
"*="
Expand Down Expand Up @@ -248,7 +240,6 @@
] @operator

; Literals

(character) @string

([
Expand All @@ -266,7 +257,6 @@
(escape_sequence) @string.escape

; Punctuation

[
"["
"]"
Expand All @@ -285,10 +275,10 @@
"->"
] @punctuation.delimiter

(payload "|" @punctuation.bracket)
(payload
"|" @punctuation.bracket)

; Comments

(comment) @comment

((comment) @comment.documentation
Expand Down
14 changes: 11 additions & 3 deletions languages/zig/indents.scm
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,17 @@
(block
"}" @indent.end)

(_ "[" "]" @end) @indent
(_ "{" "}" @end) @indent
(_ "(" ")" @end) @indent
(_
"["
"]" @end) @indent

(_
"{"
"}" @end) @indent

(_
"("
")" @end) @indent

[
(comment)
Expand Down
28 changes: 17 additions & 11 deletions languages/zig/outline.scm
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
(test_declaration
(test_declaration
"test" @context
[
(string)
(identifier)
] @name) @item
(string)
(identifier)
] @name) @item

(function_declaration
(function_declaration
"pub"? @context
[
"extern"
Expand All @@ -20,31 +20,37 @@
(variable_declaration
"pub"? @context
(identifier) @name
"=" (_) @context) @item)
"="
(_) @context) @item)

(struct_declaration
(variable_declaration
"pub"? @context
(identifier) @name
"=" (_) @context) @item)
"="
(_) @context) @item)

(union_declaration
(variable_declaration
"pub"? @context
(identifier) @name
"=" (_) @context) @item)
"="
(_) @context) @item)

(enum_declaration
(variable_declaration
"pub"? @context
(identifier) @name
"=" (_) @context) @item)
"="
(_) @context) @item)

(opaque_declaration
(variable_declaration
"pub"? @context
(identifier) @name
"=" (_) @context) @item)
"="
(_) @context) @item)

(container_field
. (_) @name) @item
.
(_) @name) @item
21 changes: 8 additions & 13 deletions languages/zig/runnables.scm
Original file line number Diff line number Diff line change
@@ -1,16 +1,11 @@
; Tag unit tests
(
(test_declaration
(string (string_content) @name @ZIG_TEST_NAME)
) @run
(#set! tag zig-test)
)
((test_declaration
(string
(string_content) @name @ZIG_TEST_NAME)) @run
(#set! tag zig-test))

; Tag main
(
(function_declaration
name: (identifier) @_name
) @run
(#match? @_name "main")
(#set! tag zig-build-run)
)
((function_declaration
name: (identifier) @_name) @run
(#match? @_name "main")
(#set! tag zig-build-run))
21 changes: 12 additions & 9 deletions languages/zig/textobjects.scm
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
(function_declaration
body: (_
"{"
(_)* @function.inside
"}")) @function.around
body: (_
"{"
(_)* @function.inside
"}")) @function.around

(test_declaration
(block
"{"
(_)* @function.inside
"}")) @function.around
(block
"{"
(_)* @function.inside
"}")) @function.around

(variable_declaration
(struct_declaration
"struct"
"{"
[(_) ","]* @class.inside
[
(_)
","
]* @class.inside
"}")) @class.around

(variable_declaration
Expand Down
Loading