Files
tree-sitter-mc/queries/highlights.scm
Matthias Unterrainer 72dacc5291
Some checks failed
Check Build / build (pull_request) Failing after 13s
Run Tests / test (pull_request) Failing after 5s
added highlights
2026-01-17 16:48:23 +01:00

193 lines
3.2 KiB
Scheme

; Keywords
"function" @keyword
"if" @keyword.conditional
"else" @keyword.conditional
"while" @keyword.repeat
"for" @keyword.repeat
"return" @keyword.return
"break" @keyword
"continue" @keyword
"print" @keyword
"const" @keyword
"mut" @keyword
; Type keywords
"void" @type.builtin
"bool" @type.builtin
"char" @type.builtin
"string" @type.builtin
"int" @type.builtin
"uint" @type.builtin
"I8" @type.builtin
"int8_t" @type.builtin
"I16" @type.builtin
"int16_t" @type.builtin
"I32" @type.builtin
"int32_t" @type.builtin
"I64" @type.builtin
"int64_t" @type.builtin
"U8" @type.builtin
"uint8_t" @type.builtin
"U16" @type.builtin
"uint16_t" @type.builtin
"U32" @type.builtin
"uint32_t" @type.builtin
"U64" @type.builtin
"uint64_t" @type.builtin
; Predefined constants
"NULL" @constant.builtin
"true" @boolean
"false" @boolean
; Identifiers
(identifier) @variable
; Function names
(function_definition
name: (identifier) @function)
; Type specifiers
(type_specifier) @type
(int_type) @type.builtin
(uint_type) @type.builtin
(array_specifier) @type
; Type qualifiers
(type_qualifier) @type.qualifier
; Parameters
(parameter_declaration
name: (identifier) @parameter)
; Literals
(integer_literal) @number
(signed_integer_literal) @number
(unsigned_integer_literal) @number
(string_literal) @string
(char_literal) @string.special
; Operators
[
"+"
"-"
"*"
"/"
"="
"+="
"-="
"*="
"/="
"=="
"!="
"<"
">"
"&&"
"||"
"!"
"++"
"--"
] @operator
(leq_operator) @operator
(geq_operator) @operator
; Punctuation
[
"("
")"
"["
"]"
"{"
"}"
","
";"
"->"
] @punctuation.delimiter
; Comments
(comment) @comment
; Function calls
(postfix_expression
(base_expression (identifier) @function.call)
"(" (argument_expression_list)? ")")
; Array access
(postfix_expression
(base_expression (identifier) @variable)
"[" (expression) @variable "]")
; Variable declarations
(declaration
declarator: (init_declarator
name: (identifier) @variable))
; Variable assignments
(assignment_expression
(unary_expression
(postfix_expression
(base_expression (identifier) @variable)))
_ @operator)
; Return statements
(jump_statement
"return" @keyword.return
(expression)? @variable)
; Print statements
(print_statement
"print" @keyword
(expression) @variable)
; If statements
(selection_statement
"if" @keyword.conditional
(expression) @variable
(statement_block) @block
(statement_block)? @block)
; While loops
(iteration_statement
"while" @keyword.repeat
(expression) @variable
(secondary_block) @block)
; For loops
(iteration_statement
"for" @keyword.repeat
(_)? @variable
(expression)? @variable
(expression)? @variable
(secondary_block) @block)
; Function signatures
(function_signature
(parameter_list)? @parameter
(return_list)? @type)
; Cast expressions
(cast_expression
(type_specifier_qualifier) @type
(cast_expression) @variable)
; Binary expressions
[
(additive_expression)
(multiplicative_expression)
(relational_expression)
(equality_expression)
(logical_expression)
] @operator
; Unary expressions
(unary_expression
[
"++"
"--"
"+"
"-"
"!"
] @operator
(unary_expression) @variable)